Dynamics 365 CRM (Dataverse)
Cómo se conecta el servidor MCP de Plur-e para Dynamics 365 CRM a Dataverse, sus herramientas genéricas, las campañas de Customer Insights - Journeys, roles MCP y límites.
Respuesta rápida
El servidor /crm se conecta a cualquier entorno de Dataverse — Sales, Customer Service
o las tablas propias de un tenant — mediante el consentimiento único de un administrador, y
expone herramientas genéricas (listar, describir, consultar, crear, actualizar…) guiadas por
una skill por tabla. Donde Customer Insights - Journeys está instalado, un puñado de
herramientas de alto nivel y una skill pensada para negocio dejan que tu asistente de IA redacte segmentos
y journeys, y los publique tras confirmación. Cada llamada queda sujeta a los roles MCP
del usuario (entidad más Read / New / Update / Delete) y con auditoría completa —
deny-by-absence, sin cola de aprobación.
Conectar un entorno
Connect with Microsoft (recomendado): en el Admin Center, AI & MCP → Dynamics 365 CRM → Connect with Microsoft, un administrador del tenant inicia sesión una vez con su cuenta de administrador de Dynamics 365 y consiente; el callback lista los entornos del tenant de Microsoft Entra ID y el administrador elige cuál (o cuáles) conectar. Plur-e pide entonces, en segundo plano, un token para el entorno elegido con el inicio de sesión en caché y crea un usuario de aplicación en él — la identidad que usa el servidor a partir de ahí, independiente de la cuenta propia del administrador.
El alta manual sigue funcionando para administradores que la prefieran o cuya política de tenant bloquee la pantalla de consentimiento: se introduce la URL del entorno directamente en la misma página, luego se crea el usuario de aplicación en el Power Platform admin center con el application id que muestra el Admin Center, y se pulsa Verify connection.
Dos modos de identidad, por conexión:
- AppOnly (por defecto) — cada llamada se ejecuta como el usuario de aplicación; se aplican los roles de seguridad de Dataverse que el administrador asignó a ese usuario.
- AppOnlyImpersonate — el servidor añade el
oidde Dataverse del usuario que llama como caller, de modo que se aplican sus propios roles de seguridad (propiedad del registro, seguridad a nivel de campo). Requiere que el usuario de aplicación tenga el privilegio Act on Behalf of Another User.
Si la petición silenciosa del token falla (el inicio de sesión en caché caducó, o la cuenta del administrador perdió acceso al entorno), el Admin Center muestra Grant access para esa conexión en concreto, para repetir el consentimiento sin rehacer el descubrimiento de las demás.
Herramientas genéricas
Cada tabla del entorno conectado — estándar o personalizada — se alcanza con el mismo conjunto
pequeño de herramientas; una skill (se lee con crm_get_skill) documenta los campos, las
relaciones y las particularidades de cada tabla.
| Herramienta | Ámbito | Qué hace |
|---|---|---|
crm_list_entities | lectura | Tablas del entorno conectado |
crm_describe_entity | lectura | Metadatos en vivo de una tabla, con su skill como guía |
crm_query | lectura | Consulta OData — filtro, expand, orden, paginación |
crm_fetchxml | lectura | Consulta FetchXML para agregados o joins que OData no puede expresar |
crm_get_record | lectura | Un registro por id |
crm_search | lectura | Búsqueda de Dataverse entre tablas, con alternativa OData |
crm_create_record | escritura | Crea un registro |
crm_update_record | escritura | Actualiza campos de un registro |
crm_delete_record | escritura | Elimina un registro |
crm_set_state | escritura | Cambia el estado y el motivo de estado |
crm_assign | escritura | Reasigna un registro a un usuario o equipo |
crm_associate | escritura | Enlaza dos registros mediante una relación |
crm_execute_action | escritura | Ejecuta una acción o función de Dataverse de una lista blanca explícita |
crm_whoami | lectura | El usuario de aplicación y los roles de seguridad en uso |
crm_list_connections / crm_select_connection | lectura | Los entornos conectados del tenant, y cuál usar a continuación |
Ver Flujos móviles de Business Central para el mismo patrón
en el servidor /bc: skills como contexto autoritativo, llamadas con el estilo
{ method, parameters } y avisos de contabilización/publicación conservados tal cual.
Customer Insights - Journeys
Donde un entorno conectado tiene Customer Insights - Journeys instalado, el servidor añade
guías bajo journeys/ (overview, segments, content-and-emails, triggers-and-events,
forms-and-consent, analytics) y fichas de sus tablas (entities/msdynmkt_*: journeys,
plantillas, segmentos, correos, formularios, disparadores, consentimiento…), sobre las
herramientas genéricas de arriba. Un puñado de herramientas de alto nivel cubre las acciones del
día a día sin escribir OData a mano:
| Herramienta | Ámbito | Qué hace |
|---|---|---|
crm_marketing_overview | lectura | Si Customer Insights - Journeys está instalado (journeysInstalled), si los eventos personalizados lo están (eventsInstalled) y si hay campañas clásicas disponibles (classicCampaignsAvailable), además de las listas journeys, segments, emails, forms, triggers y classicCampaigns, y un array warnings[] |
crm_segment_members | lectura | Miembros de un segmento y por qué califica cada uno |
crm_journey_create_from_template | escritura | Redacta un journey en tiempo real a partir de una plantilla — segmento, contenido, disparador — sin publicarlo |
crm_journey_publish | escritura | Publica un journey; necesita Update en msdynmkt_journey |
crm_segment_publish | escritura | Publica un segmento para que Customer Insights - Journeys empiece a evaluar miembros; necesita Update en msdynmkt_segment |
tu asistente de IA llama siempre primero a crm_marketing_overview para comprobar si el entorno tiene
Customer Insights - Journeys antes de ofrecer acciones específicas de journeys o segmentos; en
entornos sin él, solo aplica el camino de campañas clásicas de abajo.
Campañas
La skill flows/campaign-management está escrita para un usuario de negocio, no para un
desarrollador: guía a tu asistente de IA para convertir un brief en lenguaje natural ("envía un correo a
nuestras cuentas de Texas sobre la nueva lista de precios") en una audiencia, un mensaje y, en
entornos con Customer Insights - Journeys, un journey — o, en tenants sin él, una campaña
clásica (tablas campaign, list, campaignactivity, campaignresponse de Dynamics 365
Sales).
Qué decirle a tu asistente de IA: para quién es la campaña (con tus propias palabras — una lista de cuentas,
la definición de un segmento, una lista de criterios), qué enviar y por qué canal, y cuándo. La
skill sigue un orden fijo para que nada salga sin que lo hayas visto: tu asistente de IA previsualiza la
audiencia con crm_query sobre tus criterios y te muestra a quién incluye; cuando confirmas,
llama a crm_segment_publish; después llama a crm_segment_members para verificar el tamaño
real del segmento ya publicado antes de seguir; cuando vuelves a confirmar, redacta el journey
con crm_journey_create_from_template y solo llama a crm_journey_publish tras una confirmación
final. crm_segment_publish y crm_journey_publish son herramientas de escritura: solo se
ejecutan si el rol MCP del usuario concede Update en msdynmkt_segment /
msdynmkt_journey — deny-by-absence, no una cola de aprobación, así que confirma que el rol está
concedido antes de hacer una demo de campaña. El Plur-e Plugin incluye
un comando dedicado /plure-campaign <brief> que sigue esta skill de principio a fin.
Roles
Cada herramienta genérica comprueba los roles MCP del usuario que llama para
la entidad que toca: crm_query / crm_get_record / crm_describe_entity / crm_fetchxml
(incluida cada tabla unida mediante un link-entity) necesitan Read; crm_search solo ofrece las
entidades que el usuario puede leer; crm_create_record necesita New; crm_update_record /
crm_set_state / crm_assign / crm_associate necesitan Update en la entidad;
crm_execute_action necesita Update en la entidad bound, o, para una acción unbound, al menos una
entidad con Update en la conexión; crm_delete_record necesita Delete. Sin un rol que conceda la
entidad y la acción, la llamada deniega de inmediato — ver Roles MCP para las
entidades por defecto y los mensajes exactos de denegación, y Modelo de seguridad de
MCP para la visión general del modelo.
Límites y qué no cubre
- Las analíticas no se exponen como filas. Customer Insights - Journeys guarda las métricas
de interacción (aperturas, clics, conversiones) en un almacén de analítica fuera de la Web API
estándar de Dataverse;
crm_marketing_overviewy la guíajourneys/analyticsresumen lo que es alcanzable, pero no hay un equivalente acrm_querypara analítica a nivel de evento. - Outbound marketing (la app clásica) está retirada por Microsoft; las skills y herramientas apuntan solo a Customer Insights - Journeys (journeys en tiempo real) y a las campañas clásicas de Sales.
crm_execute_actionsolo ejecuta acciones y funciones de una lista blanca explícita; una acción de un plugin personalizado que no esté en ella no es alcanzable hasta que Plur-e la añada.- El acceso Delegated (por conexión, en nombre del usuario) está en el roadmap; hoy toda llamada es AppOnly o AppOnlyImpersonate.
Roles MCP
El modelo completo, las entidades por defecto y los mensajes de denegación que verás tú y tu asistente de IA.
Flujos móviles de Business Central
El mismo patrón de herramientas y skills para Business Central.
Memoria del tenant
Cómo el servidor recuerda términos y preferencias por tenant, también para CRM y campañas.
Relacionado: Conecta tu cliente de IA · Roles MCP · Memoria del tenant · Modelo de seguridad · Página de producto
Last updated on
Edit on GitHubHerramientas de Dynamics 365 CRM
El catálogo de herramientas MCP de Dynamics 365 CRM vive en la guía de Dynamics 365 CRM (Dataverse) — herramientas genéricas de tabla más las herramientas de campañas de Customer Insights - Journeys.
Memoria del tenant
Una memoria pequeña, explícita y auditable por tenant que usan los dos servidores MCP de Plur-e para recordar correcciones, términos y preferencias — qué guarda, cómo revisarla y sus límites.