Integración · ERP y sistemas de gestión

Conectar Microsoft · Dynamics 365 Business Central a Igniten

Conecte su Dynamics 365 Business Central para que Igniten pueda contestar sobre clientes, proveedores, artículos, stock, pedidos, facturas y cuentas contables, y —si lo habilita— preparar documentos con su confirmación: dar de alta un cliente, crear un pedido de venta o de compra, una factura en borrador, registrarla, o enviar y facturar un pedido. Nada se copia a un índice aparte: cada pregunta se contesta leyendo su compañía en el momento, por módulo y sólo de los módulos que contrató.

¿Qué puede preguntarle a Business Central por WhatsApp o Teams?

Con Business Central conectado, cualquier persona autorizada le escribe a Igniten en español, por WhatsApp o Teams, y la respuesta sale de leer Business Central en el momento, sólo de los módulos que habilitó. Algunos ejemplos:

  • ¿Cuánto stock hay de <artículo>?
  • ¿Qué facturas de venta de <cliente> están pendientes?
  • ¿Qué pedidos de compra a <proveedor> siguen abiertos?
  • ¿Qué notas de crédito se le emitieron a <cliente>?
  • Cree un pedido de venta para <cliente> (si lo habilita; se graba sólo con su confirmación).

Las sumas por período, como cuánto vendimos por mes, salen de la base que conectó como fuente de datos, no de esta conexión. Las respuestas llegan en 10 a 30 segundos por WhatsApp, Microsoft Teams, Google Chat o Slack. Vea también analítica conversacional por WhatsApp e integración con Microsoft Teams.

  • Consulta por WhatsApp: ¿Qué clientes tienen facturas vencidas hace más de 30 días? Igniten lista los clientes con el monto y los días de atraso, con datos de Business Central (ejemplo)
    Facturas vencidas por WhatsApp sobre Business Central (ejemplo)

Qué lee Igniten, y qué no

Lee

  • Clientes, proveedores, artículos y contactos
  • Presupuestos, pedidos, facturas y notas de crédito de venta, con sus líneas
  • Pedidos y facturas de compra
  • Plan de cuentas, movimientos contables y cuentas bancarias
  • Stock por artículo y movimientos de inventario

No lee

  • Nada agregado: «cuánto vendimos por mes» no sale por acá, sale de la base que conectó como fuente de datos
  • Otras compañías del entorno: se consulta sólo la que cargó
  • Nada que los conjuntos de permisos de la aplicación no permitan ver
  • Los documentos no se copian ni se guardan: se leen cuando alguien pregunta

Cómo se conecta

7 pasos · ≈ 22 min

  1. Registrar la aplicación en Microsoft Entra ID

    Si ya conectó Dynamics 365 CRM, es la MISMA app registration: no hace falta otra. Si no, en portal.azure.com: Microsoft Entra ID → App registrations → New registration, con el nombre de Igniten y «Accounts in this organizational directory only». De la pantalla Overview anote el Directory (tenant) ID y el Application (client) ID.

    portal.azure.com → Microsoft Entra ID → App registrations → New registration
    • Hace falta alguien con permiso para registrar aplicaciones en su directorio (Application Administrator, o un administrador global).
    • En «Supported account types» elija la primera opción, «Accounts in this organizational directory only»: la app es sólo de su empresa.
    • La Redirect URI déjela vacía por ahora: sólo hace falta si va a usar el modo persona, y se carga en un paso de más adelante.
    • Los dos identificadores están arriba de todo en Overview, cada uno con un botón de copiar al lado.

    Salió bien si La app aparece en App registrations → All applications con el nombre que le puso, y tiene anotados los dos identificadores.

  2. Crear el client secret

    En la misma app registration: Certificates & secrets → Client secrets → New client secret. Copie el Value en ese momento: Azure no lo vuelve a mostrar. Anote cuándo vence: ese día la conexión deja de responder, y hay que cargar uno nuevo acá.

    portal.azure.com → App registrations → Certificates & secrets → New client secret
    • Copie la columna «Value», no «Secret ID»: el Secret ID no sirve para conectarse, y es el error más común de este paso.
    • El vencimiento lo elige usted (hasta 24 meses). Anótelo: ese día las consultas empiezan a fallar y hay que crear otro y cargarlo acá.
    • Si cerró la pantalla sin copiarlo, no se recupera: cree uno nuevo y borre el que quedó sin usar.

    Salió bien si El secret figura en la lista con su fecha de vencimiento y tiene copiado su Value completo.

  3. Darle a la aplicación el permiso de la API de Business Central

    En la app registration: API permissions → Add a permission → Microsoft APIs → Dynamics 365 Business Central → Application permissions → API.ReadWrite.All, y después Grant admin consent. Sin el consentimiento el token sale sin permisos y Business Central contesta 401.

    portal.azure.com → Microsoft Entra ID → App registrations → API permissions
    • Elija «Application permissions», no «Delegated»: el delegado es sólo para el modo persona, y es otro paso.
    • «Grant admin consent» lo puede tocar un administrador global o un Privileged Role Administrator. Sin eso el permiso queda pedido pero no otorgado.
    • Este permiso dice que la app PUEDE usar la API de Business Central; qué datos ve lo decide el paso siguiente, adentro de Business Central.

    Salió bien si API.ReadWrite.All figura bajo Dynamics 365 Business Central, de tipo Application, con el tilde verde de «Granted».

  4. Autorizar la aplicación adentro de Business Central

    Lo de Azure dice que la aplicación puede usar la API; esto dice qué ve adentro. Busque «Microsoft Entra Applications» → New, pegue el Application (client) ID del paso 1, ponga el State en Enabled, asígnele conjuntos de permisos y toque Grant Consent. Sin esto el token es válido y las consultas contestan 401.

    • Client ID: el Application (client) ID del paso 1
    • State: Enabled
    • Para consultar: un conjunto de lectura de las áreas que va a usar
    • Para que Igniten cree y registre documentos: el conjunto de escritura de esas áreas
    • Grant Consent, en la misma ficha
    • Lo que no le des a esta aplicación, Igniten no lo ve
    businesscentral.dynamics.com → Microsoft Entra Applications → New
    • «Microsoft Entra Applications» se busca con la lupa de Business Central (Alt+Q); en versiones anteriores se llamaba «Azure Active Directory Applications».
    • Para una prueba sirve el conjunto D365 BUS FULL ACCESS. Para producción conviene uno de lectura (D365 READ) más la escritura sólo de las áreas que Igniten vaya a tocar.
    • Los permisos se dan por compañía: si tiene varias, deje en blanco el campo Company de cada conjunto o cárguelo para la que Igniten consulta.
    • Grant Consent abre un inicio de sesión de Microsoft: lo tiene que aceptar un administrador.

    Salió bien si La ficha queda con State en Enabled, al menos un conjunto de permisos y sin avisos de consentimiento pendiente.

  5. Si elige el modo persona: el permiso delegado y la vuelta

    Sólo si en «Cómo se conecta cada persona» va a poner «persona». En la app registration: API permissions → Add a permission → Microsoft APIs → Dynamics 365 Business Central → Financials.ReadWrite.All (Delegated permissions), y después Grant admin consent (sin eso cada persona tendría que consentir sola, y la mayoría no llega). Y en Authentication → Add a platform → Web, agregue como Redirect URI la dirección con la que entra a Igniten seguida de /auth/dynamics/callback (por ejemplo https://tuempresa.igniten.io/auth/dynamics/callback). Cada persona conecta su cuenta una vez desde el enlace que le da el asistente la primera vez que pregunta por su ERP.

    portal.azure.com → App registrations → API permissions → Grant admin consent
    • Si todos van a consultar con la aplicación (el modo por omisión), saltee este paso entero.
    • La Redirect URI tiene que ser EXACTAMENTE la de su Igniten, con https y sin barra al final: si difiere en una letra, Microsoft rechaza el login con el error AADSTS50011.
    • En este modo cada persona ve lo que ve en Dynamics con su propio usuario; quien no conectó su cuenta recibe el enlace y no consulta hasta hacerlo.

    Salió bien si En API permissions el permiso delegado figura con el tilde verde de «Granted», y en Authentication está la Redirect URI con su dirección.

  6. Cargar el entorno, la compañía y la app registration

    Business Central no tiene una dirección propia por cliente: lo que cambia es el entorno y la compañía. Los dos se leen en su Business Central y no son secretos.

    • El entorno también se ve en la dirección del navegador: businesscentral.dynamics.com/<su tenant>/<ENTORNO>.
    • La compañía se escribe como figura en la lista Companies, con sus espacios y mayúsculas. Si dos se llaman igual, Igniten no elige: avisa.
    • El client secret es el Value del paso 2, no el Secret ID.

    Salió bien si Los campos obligatorios quedaron cargados y el botón de guardar se habilitó.

  7. Queda guardada y en uso

    Desde que la guarda, lo que se le pregunte a su ERP sale de Business Central. Acá no se comprueba contra Microsoft: si el entorno, la compañía, el client secret o los permisos del paso 3 están mal, se ve en la primera consulta.

    • No hay botón de probar en este recorrido, y es a propósito: lo único que sabríamos contestar es si la fila quedó guardada, no si Microsoft le deja entrar.
    • Si la compañía no existe en ese entorno, la primera respuesta lo dice y nombra las compañías que sí hay.
    • Para cambiar el client secret se carga uno nuevo: el anterior no se puede volver a ver.

    Salió bien si Business Central figura conectado, con los últimos cuatro caracteres del client secret.

Qué permisos pide

Permiso Para qué Cuándo hace falta
Dynamics 365 Business Central → API.ReadWrite.All (Application) Que la app pueda usar la API de Business Central; sin él, todo contesta 401 Siempre
Microsoft Entra Application con State en Enabled y Grant Consent Que la app exista adentro de Business Central Siempre
Un conjunto de lectura (por ejemplo D365 READ) Responder sobre los módulos que contrató Siempre
Conjuntos de escritura de ventas y compras Crear clientes, pedidos y facturas, y registrarlas quiere que Igniten prepare documentos
Dynamics 365 Business Central → Financials.ReadWrite.All (Delegated) Que cada persona consulte con su propia cuenta y sus propios permisos elige que cada persona conecte su cuenta

Los dos niveles de permiso que recomendamos, y qué habilita cada uno, están en Permisos recomendados.

Qué puede salir mal

Nada de Business Central responde, aunque la credencial está bien cargada

Por qué Falta uno de los dos lados del permiso: API.ReadWrite.All con consentimiento en Azure, o la ficha Microsoft Entra Application habilitada adentro de Business Central.

Qué hacer Revise los pasos 3 y 4: hacen falta los dos.

La respuesta dice que la compañía no existe y nombra otras

Por qué El nombre cargado no coincide con el de la lista Companies de ese entorno.

Qué hacer Cargue el nombre tal como figura en Companies, con espacios y mayúsculas.

Registrar una factura falla con un mensaje de Business Central

Por qué Business Central valida la factura al registrarla: un cliente sin grupo contable, un artículo bloqueado o un período cerrado la frenan.

Qué hacer El mensaje es el de Business Central y dice qué falta: corríjalo allá y pida registrarla de nuevo. La factura sigue en borrador mientras tanto.

Pide «cuánto facturamos el mes pasado» y le manda a otra parte

Por qué Es a propósito: esa pregunta es analítica y la API de Business Central no agrega.

Qué hacer Conecte como fuente de datos la base donde tenga la analítica y pregunte de nuevo.

Nada responde y la nota habla de la credencial de Microsoft

Por qué El client secret está mal copiado (se pegó el Secret ID en vez del Value), venció, o el tenant id / client id no son los de la app.

Qué hacer Cree un client secret nuevo, copie su Value y cárguelo de nuevo acá junto con los dos identificadores de la pantalla Overview.

Le pide que conecte su cuenta de Microsoft y el enlace da un error AADSTS50011

Por qué El modo es «persona» y la Redirect URI registrada no coincide con la de su Igniten.

Qué hacer En la app registration → Authentication, cargue exactamente https://<su empresa>.igniten.io/auth/dynamics/callback, sin barra al final.

Los límites, dichos

  • Una búsqueda por texto trae hasta veinte registros por entidad.
  • Un listado trae hasta cien registros por pregunta.
  • Un listado de documentos sin ningún filtro se rechaza: es una pregunta analítica.
  • No hay módulo de producción: la API estándar de Business Central no lo expone.

Preguntas frecuentes

¿Qué datos tengo que cargar?

El nombre del entorno (Production, o el de su sandbox), el nombre de la compañía tal como figura en Companies, y los tres datos de la app registration: tenant id, client id y client secret.

¿Igniten puede registrar facturas?

Sí, si le da ese permiso, y siempre con su confirmación. Registrar asienta en el libro mayor y no se deshace con un borrado —se corrige con una nota de crédito—, así que el borrador muestra el cliente y el total antes de que confirme.

¿Igniten puede borrar algo?

No hay ninguna acción de borrado. La única excepción es interna: si crear un documento falla a mitad de camino, Igniten borra el borrador que acaba de crear para no dejarlo a medias, y se lo dice.

¿Tengo varias compañías: puedo conectar todas?

Hoy se conecta una compañía por cliente de Igniten: la que carga en el campo Compañía. Si necesita consultar más de una, escríbanos.

¿Conviene que se conecte la aplicación o cada persona?

Con la aplicación es lo más simple: una sola configuración y todos consultan con los permisos que le dio. Por persona, cada uno ve exactamente lo que ve en Dynamics y lo que escribe queda a su nombre, pero cada uno tiene que conectar su cuenta una vez. Se elige en el campo «Cómo se conecta cada persona» y se puede cambiar cuando quiera.

¿Qué pasa cuando vence el client secret?

Las consultas empiezan a fallar ese día. Cree uno nuevo en la app registration, cárguelo acá, y borre el vencido en Azure.

Empezar

Elija un plan y empiece hoy.

Self-serve, sin reuniones: se contrata online, 30 días de prueba desde que registra la tarjeta.

Beta privada

¿Quiere acceso a la beta?

Para seguir usando los agentes sobre los datos de su empresa, pida acceso a la beta.

Lo vamos a contactar sobre su acceso a la beta.