Módulo
Inicio
Resumen ejecutivo de la información sincronizada.
Administración de plataforma
Empresas, usuarios y seguridadAlta de una empresa
Sigue este orden para dejar un nuevo cliente listo para consultar su información sincronizada.
- Crea la empresa. Define su Tenant ID y nombre visible en la sección Empresas.
- Asigna el plan. Selecciona Starter, Business o Pro según lo contratado.
- Crea al administrador de la empresa. Así podrá gestionar sus usuarios y configuraciones permitidas.
- Genera la credencial del agente. Cópiala una sola vez y entrégala por un medio seguro.
- Instala Agente eod360 Connect. Configura la conexión local y ejecuta la carga histórica inicial.
- Valida la sincronización. Confirma empresa, último corte y fecha de actualización en Salud de empresas y agentes.
Onboarding y continuidad de servicio
Prueba, configuración inicial y activación de cada empresa| Empresa | Servicio | Prueba / renovación | Checklist | Estado |
|---|
Salud de empresas y agentes
Una empresa requiere atención si no tiene credencial activa, presenta un error o lleva más de 24 horas sin sincronizar.
| Empresa | Estado | Última sincronización | Antigüedad | Agente | Último corte | Detalle |
|---|
Panel comercial de renovaciones
Contratos, cobros y continuidad del servicio| Empresa | Plan | Estado | Total a renovar | Renovación | Situación |
|---|
Información de la empresa seleccionada
Empresas
| Tenant | Nombre visible | Plan | Accesos adicionales | Alta | Estatus | Credencial agente | Último corte | Sincronización |
|---|
Suscripciones y cobranza
Control administrativo; no captura datos bancarios ni tarjetasRegistra el contrato, sus renovaciones y pagos manuales. Los pagos no se editan ni eliminan: sólo pueden anularse dejando su motivo en la bitácora.
| Fecha | Importe pagado | Método | Referencia | Cobertura | Estado |
|---|
| Fecha | Aviso | Destinatario | Resultado | Detalle |
|---|
Historial por empresa
Eventos administrativos y sincronizaciones recibidas| Fecha | Responsable | Tipo de evento | Resultado | Detalle |
|---|
Crear usuario global
Todos los usuarios
| Nombre | Correo | Tipo | Empresas | Estatus |
|---|
Editar usuario
Bitácora reciente
| Fecha | Administrador | Acción | Destino | Empresa |
|---|
Usuarios de la empresa
La invitación se enviará al correo indicado. La persona definirá su propia contraseña desde un enlace de un solo uso.
| Nombre | Correo | Rol | Estatus |
|---|
Invitaciones
| Nombre | Correo | Rol | Estado | Vence |
|---|
API técnica
Abrir en otra pestañaDocumentación técnica destinada sólo al administrador de plataforma.
CRM
Nuevo prospecto
| Prospecto | Empresa | Correo | Estado |
|---|
Embudo comercial
Seguimiento comercial
Una actividad está vencida cuando sigue pendiente después de su fecha compromiso. Una oportunidad sin movimiento tiene 14 días o más sin actualización.
Bandeja comercial
Filtra pendientes y reprograma sin salir de la bandeja.| Prioridad | Oportunidad | Etapa | Actividad | Compromiso | Responsable |
|---|
Nueva oportunidad
| Oportunidad | Cliente / prospecto | Etapa | Importe | Ventas SAE | Última compra | Cierre |
|---|
Editar oportunidad
Ventas SAE
| Documento | Fecha | Importe | Estatus |
|---|
Seguimiento de oportunidad
Selecciona “Seguimiento” en una oportunidad.
| Tipo | Asunto | Compromiso | Estado |
|---|
BI Comercial
Ventas SAE detalladas por clienteClientes con mayor venta
Importe vigente en el periodo| Cliente | Ventas | Docs. | Última compra |
|---|
Clientes sin compra reciente
Según el periodo seleccionado| Cliente | Última compra | Situación |
|---|
Crear seguimiento reutiliza una oportunidad abierta de ese cliente cuando exista; evita duplicarla. La información se consulta desde la nube; Connect no modifica Aspel.
Ventas acumuladas entre cortes
Historial completoAntigüedad de cartera
Saldo netoDisponibilidad por almacén
Sin informaciónAlertas operativas
Último corte disponibleReporte ejecutivo
Información sincronizadaBI Operativo
| Cliente | Documento | Saldo | Días vencido |
|---|
| Producto | Almacén | Existencia | Disponible |
|---|
Programar envío por correo
Automatizaciones
Se evalúan cada cinco minutosEl modo gratuito abre WhatsApp con el mensaje preparado. El modo oficial usa la API de Meta y sólo se activa con presupuesto, plantilla aprobada y credenciales válidas. Los destinatarios oficiales se definen en cada automatización.
Reglas de inventario preventivas
Define el mínimo general de disponible por producto-almacén. El valor cero conserva sólo la alerta por falta total; un valor mayor activa la alerta preventiva de inventario bajo.
Productos críticos con mínimo especial
Historial central de automatizaciones
Consulta cada entrega de correo y WhatsApp oficial, su destinatario, resultado y costo estimado.
| Fecha | Alerta | Canal | Destinatario | Resultado | Costo | Detalle |
|---|
Rangos de vencimiento de cartera
Define dos o tres rangos. La plataforma agregará automáticamente el aviso para los vencimientos posteriores al último rango.
Integraciones API Pro
Consultas externas de sólo lectura sobre información sincronizadaURL base de la API
Cada solicitud usa X-API-Key. No envíes X-Tenant-ID: la llave determina automáticamente la empresa autorizada.
Llaves API Pro
Genera y administra accesos por empresa y recurso| Empresa | Identificación | Permisos | Terminación | Última utilización | Estado | Seguridad |
|---|
Ejemplos de conexión
Usa una llave con el permiso correspondienteGuía de integración API Pro
Referencia visible para configurar consultas y receptores de Webhooks1. Autenticación y permisos
URL base oficial: https://connect.eod360.net/api/v1/external. Todas las rutas son de sólo lectura y la llave determina la empresa autorizada.
curl -H "X-API-Key: eod360_pro_tu_llave" \ "https://connect.eod360.net/api/v1/external/customers?limit=100&offset=0"
X-Tenant-ID. Asigna a la llave únicamente el permiso del recurso: clientes, productos, inventario, ventas, cartera o BI.2. n8n · consulta de información
- Agrega el nodo HTTP Request.
- Selecciona método GET.
- Pega la URL del recurso y agrega el encabezado.
Method: GET
URL: https://connect.eod360.net/api/v1/external/customers?limit=100
Header name: X-API-Key
Header value: {{ $env.EOD360_API_KEY }}EOD360_API_KEY como credencial o variable de n8n; no la escribas dentro de un nodo ni la compartas en capturas.3. Power BI · ventas detalladas
Crea el parámetro pEod360ApiKey y usa /sales/documents. La consulta obtiene páginas de 500 documentos hasta llegar a total.
let
GetPage=(Offset as number)=>Json.Document(Web.Contents("https://connect.eod360.net",[RelativePath="api/v1/external/sales/documents",Query=[limit="500",offset=Text.From(Offset)],Headers=[#"X-API-Key"=pEod360ApiKey]])),
First=GetPage(0),
Pages=List.Generate(()=>First,each [offset]<[total],each GetPage([offset]+[count]),each [data]),
Data=Table.FromRecords(List.Combine(Pages))
in Datasales. En Power BI Desktop define el origen como Anónimo.4. Power BI · clientes, productos, inventario y CxC
Usa la misma consulta paginada. Sólo cambia Resource y asigna el permiso de la llave correspondiente.
let
Resource="customers",
GetPage=(Offset as number)=>Json.Document(Web.Contents("https://connect.eod360.net",[RelativePath="api/v1/external/" & Resource,Query=[limit="500",offset=Text.From(Offset)],Headers=[#"X-API-Key"=pEod360ApiKey]])),
First=GetPage(0), Pages=List.Generate(()=>First,each [offset]<[total],each GetPage([offset]+[count]),each [data]),
Data=Table.FromRecords(List.Combine(Pages))
in Datacustomers, products, inventory o receivables. Para CxC puedes agregar as_of_date=AAAA-MM-DD a la URL.5. BI Comercial · resumen
Crea una consulta para los indicadores globales: total de ventas, documentos, clientes activos y ticket promedio.
let
Source=Json.Document(Web.Contents("https://connect.eod360.net/api/v1/external/bi/commercial",[Headers=[#"X-API-Key"=pEod360ApiKey]])),
Summary=Record.RemoveFields(Source,{"monthly_sales","top_customers","inactive_customers"}),
Data=Table.FromRecords({Summary})
in Databi. Este recurso no usa data ni paginación.6. BI Comercial · ventas mensuales
Crea una segunda consulta para alimentar gráficas de tendencia mensual.
let
Source=Json.Document(Web.Contents("https://connect.eod360.net/api/v1/external/bi/commercial",[Headers=[#"X-API-Key"=pEod360ApiKey]])),
Data=Table.FromRecords(Source[monthly_sales])
in Dataperiod_start, total, document_count y customer_count.7. BI Comercial · clientes con mayor venta
Crea una tercera consulta para ranking, última compra y acciones de reactivación.
let
Source=Json.Document(Web.Contents("https://connect.eod360.net/api/v1/external/bi/commercial?customer_limit=100",[Headers=[#"X-API-Key"=pEod360ApiKey]])),
Data=Table.FromRecords(Source[top_customers])
in Datatop_customers por inactive_customers.8. Validar firma de Webhook
El receptor debe responder HTTP 2xx. Verifica el cuerpo original sin volver a serializarlo con el secreto configurado en Connect.
raw_body = request.get_data()
received = request.headers.get("X-EOD360-Signature", "")
expected = "sha256=" + hmac.new(WEBHOOK_SECRET.encode(), raw_body, hashlib.sha256).hexdigest()
if not hmac.compare_digest(received, expected): abort(401)X-EOD360-Delivery-ID para evitar procesar dos veces un evento reenviado. También llegan X-EOD360-Event y X-EOD360-Attempt.Webhooks confiables
Entrega firmada, bitácora, reintentos y reenvío manualRegistra una URL HTTPS y un secreto que se guarda cifrado. El secreto nunca vuelve a mostrarse; déjalo vacío para conservarlo al actualizar.
Bitácora de entregas
Las respuestas 2xx se marcan como entregadas; los errores se reintentan automáticamente hasta 5 veces.| Fecha | Empresa | Evento | Estado | Intentos | HTTP / error |
|---|
Fidelidad y procedencia
Perfil sin cargar| Métrica | Tipo | Fuente | Grano | Valor |
|---|
Inventario que requiere atención
Sin información| Clave | Almacén | Existencia | Disponible |
|---|
Documentos por cobrar
Sin información| Cliente | Documento | Vencimiento | Días | Saldo |
|---|
Productos
Sin información| Clave | Descripción | Precio |
|---|