Resumen #
La integración con Dynamics 365 permite a tu equipo abrir conversaciones de WhatsApp directamente desde una ficha Contact de Dynamics. En resumen, ofrece:
- Open Spoki Chat desde cualquier Contact — un único botón en el Contact form de Dynamics abre una conversación de WhatsApp incrustada, pre-filtrada para ese contacto.
- Experiencia de chat incrustada — lee el historial y envía respuestas dentro de un iframe modal, directamente en el Contact form, o saca el chat a su propia ventana.
- Matching automático de contactos — los contactos de Dynamics se emparejan con los contactos de Spoki por teléfono o email, de modo que el historial de conversación queda vinculado a la persona correcta.
- Provisioning automático de usuarios — los usuarios de Dynamics se mapean a operadores de chat de Spoki en el primer uso; no se requiere configuración manual de usuarios.
- Sincronización de contactos opcional — vincula las marketing lists de Dynamics con las listas de Spoki para una sincronización bidireccional continua de contactos (ver Contact Sync).
La integración es read-only sobre tu entorno Dynamics. Spoki nunca puede modificar, eliminar ni crear registros de Dynamics — solo lee el teléfono, el email y el nombre de un contacto cuando haces clic en el botón del chat.
Cuándo usarla #
Usa esta integración cuando tu equipo trabaja principalmente dentro de Dynamics 365 y necesita contactar a sus contactos por WhatsApp.
| Caso de uso | Ejemplo |
|---|---|
| Sales outreach | Escribe a un prospect por WhatsApp directamente desde su ficha Contact |
| Customer support | Abre el historial de conversaciones existente mientras revisas un contacto |
| Follow-ups | Responde a un lead sin salir del Dynamics Sales Hub |
| Account management | Mantén una única fuente de verdad para los contactos entre Dynamics y Spoki |
| Equipos field/mobile | Usa el chat incrustado desde la app móvil de Dynamics |
Requisitos previos #
Antes de usar la integración con Dynamics 365 necesitas:
- Una cuenta de Spoki con un número de WhatsApp Business activo.
- Un entorno Microsoft Dynamics 365 con la entidad Contact (Sales, Customer Service o cualquier model-driven app).
- Derechos de admin en Dynamics — para instalar la solution, editar el Contact form y publicar los cambios.
- Derechos de admin en Spoki — solo el propietario de la cuenta puede conectar la integración y obtener la signing key.
Los Contacts de Spoki se indexan por WhatsApp y requieren un número de teléfono. Un contacto de Dynamics debe tener un mobile phone o un business phone rellenado para poder abrir un chat — el email por sí solo no basta.
Configuración #
La configuración es un proceso único por cada tenant de Dynamics, en cuatro pasos.
Paso 1 — Conecta tu tenant de Dynamics 365 #
En Spoki, ve a Integrations → Microsoft Dynamics 365 y conecta la integración.
- Serás redirigido a Microsoft para autorizar Spoki (OAuth 2.0 mediante Microsoft Entra ID).
- Inicia sesión con una cuenta de admin de Dynamics y aprueba los permisos solicitados.
- Si tiene éxito, vuelves a la página de la integración en Spoki y la conexión queda activa.
«By connecting Dynamics 365, you will be able to view the Spoki chat directly in the Dynamics CRM contact form. You will be redirected to Microsoft to authorize Spoki.»
Paso 2 — Instala la solution de Spoki #
Desde la página de la integración, haz clic en Install Spoki Dynamics 365 para descargar el paquete de la managed solution (SpokiDynamicsApp.zip).
- Impórtalo en Dynamics mediante Power Apps Maker → Solutions → Import (Soon ⇒ from Microsoft AppSource).
- La solution añade el control SpokiContactCard (namespace
Spoki) a tu entorno.
Paso 3 — Añade el control al Contact form #
En el Power Apps form designer, edita el Contact main form:
- Añade el componente SpokiContactCard al form, en el punto donde quieras que aparezca el panel de chat.
- Save y Publish del form.
Paso 4 — Instala la signing key #
La signing key autentica cada solicitud de chat enviada desde tu tenant de Dynamics a Spoki. Cópiala desde Spoki y pégala en el control.
En la página de la integración de Spoki, copia la Spoki signing key, luego en Dynamics:
| # | Paso | Qué hacer |
|---|---|---|
| 1 | Abre el Contact form | En el Power Apps form designer, edita el Contact form donde está instalado el Spoki PCF. |
| 2 | Selecciona el control SpokiContactCard | Haz clic en el control incrustado para abrir su panel de propiedades a la derecha. |
| 3 | Pega la key | En el panel de la derecha, pega el valor de la signing key en la propiedad spokiSigningKey. |
| 4 | Save and publish | Publica tus cambios para que cada usuario de tu organización reciba la actualización. |
La signing key es per-tenant. Se deriva de un master secret de Spoki que nunca se expone — así que aunque la key se filtre, solo se ve afectado tu tenant. Cualquiera con acceso de account-owner de Spoki puede volver a obtenerla en cualquier momento.
Usar el chat incrustado #
Una vez completada la configuración, abre cualquier Contact en Dynamics 365. La Spoki card aparece en el form.
Open Spoki Chat #
Haz clic en Open Spoki Chat. Qué ocurre:
- Spoki lee el teléfono/email y el nombre del contacto desde el registro.
- Empareja (o crea) el contacto de Spoki correspondiente y carga la conversación de WhatsApp.
- El chat se renderiza incrustado en un iframe directamente en el Contact form.
- El permiso del micrófono se solicita por adelantado para que las llamadas de voz de WhatsApp funcionen dentro del chat.
Sacar el chat a otra ventana #
Haz clic en WhatsApp By Spoki ↗ en la toolbar del chat para abrir la misma conversación en una ventana del navegador separada y con el tamaño correcto — útil para hacer multitasking mientras navegas por otros registros.
Cerrar el chat #
Haz clic en Close para colapsar el chat y devolver la card a su estado inicial.
La conversación es la misma ya se vea incrustada, sacada a otra ventana o dentro de la app principal de Spoki. Las tres comparten un único historial.
Matching de contactos y datos #
Qué lee Spoki de Dynamics #
Cuando haces clic en Open Spoki Chat, Spoki solo lee estos campos del registro Contact:
| Campo de Dynamics | Usado para | Obligatorio |
|---|---|---|
mobilephone | Teléfono primario para el matching de WhatsApp | Al menos un teléfono obligatorio |
telephone1 | Business phone de fallback | — |
emailaddress1 | Matching por email (secundario) | No |
firstname | Nombre del contacto | No |
lastname | Apellido del contacto | No |
Spoki también lee el email/username del usuario de Dynamics que hizo clic en el botón (para access control y audit). Ningún otro campo o entidad de Dynamics (Opportunities, Cases, Accounts, etc.) se lee jamás.
Cómo funciona el matching #
- El teléfono tiene prioridad: primero se usa
mobilephone, luegotelephone1. - El teléfono se normaliza (se eliminan espacios, paréntesis y guiones) antes del matching con tus contactos de Spoki.
- Si no existe ningún contacto de Spoki, se crea uno a partir de los datos de Dynamics (teléfono, email, nombre/apellido).
- Si el contacto no tiene teléfono, el chat no puede abrirse — añade
mobilephoneotelephone1en Dynamics e inténtalo de nuevo.
Acceso de usuarios y provisioning #
El usuario de Dynamics que hace clic en el botón se mapea automáticamente a un usuario de Spoki.
- Usuarios de Spoki existentes (emparejados por email dentro de la cuenta) conservan su rol y sus permisos existentes.
- Usuarios nuevos se auto-provisionan como Chat Operator — nunca como admin.
- Seguridad cross-account: un usuario real de Spoki que pertenece a una cuenta diferente nunca se vincula de forma silenciosa. El acceso cross-account sigue siendo solo por invitación.
- La desactivación se respeta: si un admin desactiva a un usuario provisionado desde Dynamics, ese usuario no puede recuperar el acceso volviendo a hacer clic en el botón.
Para conceder a un usuario de Dynamics más que el acceso de chat-operator, invítalo en Spoki (Users & Roles) usando el mismo email que utiliza en Dynamics.
Seguridad y privacidad #
- OAuth 2.0 mediante Microsoft Entra ID — Spoki nunca ve tu contraseña de Microsoft. Los access token y refresh token se almacenan cifrados y nunca se exponen al navegador.
- HMAC signing per-tenant — cada solicitud de chat se firma; el backend la verifica contra la key de tu tenant, con una ventana temporal corta para bloquear los replay attacks. Como alternativa, el control puede autenticarse con un Dataverse bearer token, validado del lado del servidor contra tu organización.
- Read-only sobre Dynamics — Spoki no puede modificar, eliminar ni crear registros de Dynamics.
- EU data residency — todo el processing de esta integración ocurre en la infraestructura EU de Spoki (AWS Frankfurt,
eu-central-1). - Audit logging — cada solicitud de apertura de chat (timestamp, organización, usuario, teléfono hasheado) se registra con fines de security forensics y se conserva durante 90 días.
Para los detalles completos del data-flow y la disclosure, consulta el párrafo Privacy de la integración Dynamics y https://spoki.com/en/security.
Ejemplos #
Ejemplo 1 — Un sales rep contacta a un prospect #
Escenario: un rep abre la ficha Contact de un lead en el Dynamics Sales Hub y quiere enviar un mensaje de WhatsApp.
- Abre el Contact → la Spoki card muestra Open Spoki Chat.
- Haz clic → el chat incrustado se carga, filtrado por el número móvil del contacto.
- Escribe y envía el mensaje — se entrega vía WhatsApp Business y la conversación se guarda en Spoki.
Ejemplo 2 — Un support agent revisa el historial #
Escenario: un support agent quiere el historial completo de WhatsApp mientras revisa un contacto.
- Abre el Contact → haz clic en Open Spoki Chat.
- Haz clic en WhatsApp By Spoki ↗ para sacar el chat a su propia ventana.
- Navega por otros registros de Dynamics en paralelo manteniendo abierta la conversación.
Ejemplo 3 — Nuevo contacto creado en el primer chat #
Escenario: un contacto de Dynamics existe pero todavía no tiene contraparte en Spoki.
- Haz clic en Open Spoki Chat en el registro Contact.
- Spoki crea un contacto correspondiente a partir de
mobilephone,emaily el nombre de Dynamics. - La conversación se abre; los chats futuros reutilizan el mismo contacto de Spoki.
Best Practices #
- Rellena un número de teléfono en cada contacto. WhatsApp necesita un teléfono. Estandariza en
mobilephone(otelephone1) en tus reglas de data hygiene de Dynamics para que los reps nunca se topen con el mensaje «no phone». - Usa el formato telefónico internacional. Guarda los teléfonos en formato internacional completo (p. ej.
+39 333 1234567). Spoki normaliza el formato, pero el country code debe estar presente para emparejar el número de WhatsApp correcto. - Mantén los emails coherentes para el mapeo de usuarios. El auto-provisioning empareja a los usuarios de Dynamics con los de Spoki por email. Usa el mismo email primario en ambos sistemas para que los roles y permisos coincidan.
- Publica después de cada cambio en el form. Añadir el control o pegar la signing key solo surte efecto después de hacer Save and Publish del Contact form en Power Apps.
- Asigna los roles con criterio. Los usuarios auto-provisionados obtienen solo Chat Operator. Para team leads o admins, invítalos explícitamente en Spoki Users & Roles antes de que usen el chat.
- Vuelve a obtener la key si los chats dejan de autenticarse. Si los chats de repente no se abren con un auth error, vuelve a copiar la signing key desde la página de la integración de Spoki, pégala de nuevo en el control y publica.
FAQ #
¿Dónde aparece el chat? Incrustado directamente en el Contact form de Dynamics, dentro del control SpokiContactCard. También puedes sacarlo a su propia ventana del navegador.
¿Puede Spoki cambiar mis datos de Dynamics? No. La integración es estrictamente read-only — lee teléfono, email y nombre cuando haces clic en el botón, y nada más. No puede crear, actualizar ni eliminar ningún registro de Dynamics.
¿Qué pasa si un contacto no tiene número de teléfono? El chat no se abre. Los contactos de Spoki requieren un teléfono para WhatsApp. Añade mobilephone o telephone1 al contacto de Dynamics y vuelve a hacer clic en el botón.
Un contacto tiene tanto un mobile como un business phone — ¿cuál se usa? Primero mobilephone, luego telephone1 como fallback.
¿Necesito crear usuarios de Spoki para todos los de Dynamics? No. Los usuarios se auto-provisionan como Chat Operator en el primer uso. Crea/invita usuarios manualmente solo cuando necesites conceder un rol superior.
¿Qué permisos solicita la integración? OAuth scopes para leer tu organización de Dynamics (Dataverse) e identificar al usuario que ha iniciado sesión. No se solicita ningún write scope.
¿Qué ocurre cuando me desconecto? La conexión y sus keys se eliminan del lado de Spoki. También tendrás que eliminar manualmente la solution instalada de Dynamics. Para volver a conectar más tarde, deberás repetir toda la configuración.
¿Mis datos se envían fuera de la EU? No. Todo el processing de la integración Dynamics ocurre en la infraestructura EU de Spoki (AWS Frankfurt). El transporte de los mensajes de WhatsApp en sí lo gestiona la WhatsApp Business API de Meta según los términos de Meta.
¿Por qué el chat pide acceso al micrófono? Para que las llamadas de voz de WhatsApp funcionen dentro del chat incrustado. El prompt aprovecha tu clic en Open Spoki Chat. Denegarlo no bloquea la mensajería.
¿Puedo también sincronizar contactos entre Dynamics y Spoki? Sí. Además del chat incrustado, la integración admite vincular las marketing lists de Dynamics con las listas de Spoki para una sincronización de contactos bidireccional y programada, con dirección y conflict resolution configurables. Configúrala desde los sync settings de la integración.
El chat falla con un authentication error — ¿qué compruebo?
- Que la signing key en el control coincida con la key actual de la página de la integración de Spoki (vuelve a copiarla y republicar si tienes dudas).
- Que el tenant de Dynamics siga conectado en Spoki (vuelve a ejecutar el OAuth si se desconectó).
- Que el contacto tenga un número de teléfono válido.
