Marketing: API y herramientas MCP
API y herramientas MCP de Marketing: informes de campañas, pruebas A/B, cierre comercial, automatizaciones, segmentos y exportación de informes.
Actualizado el . 26 min de lectura
Incluido en los planes Profesional y Avanzado. Hasta 10.000 correos de campaña por ciclo en Profesional y 25.000 en Avanzado. Ver precios
Esta página explica Marketing desde el punto de vista de la API y de las herramientas MCP: para quien integra, para los asistentes de IA que trabajan con Marketing por MCP y para quien quiere entender qué hay detrás de cada acción de la interfaz.
API del panel, no API externa. A diferencia de casi todo el resto de esta sección, las rutas de
Marketing están bajo /api/email-marketing/...: son la API del panel
y se llaman con la sesión de un usuario
(Authorization: Bearer <token>), no con X-Api-Key. No hay API externa
con clave para Marketing: para automatizar estas operaciones se usan las
herramientas MCP de más abajo. El prefijo email-marketing se
mantiene por compatibilidad; en la interfaz el aplicativo se llama
Marketing.
Pruebas A/B
Las pruebas A/B comparan dos o más versiones de un correo enviando cada una a una muestra de la audiencia y, una vez declarado el ganador, envían esa versión al resto. El ciclo está integrado de principio a fin: la muestra se reparte de forma determinista, las variantes no se mezclan con las campañas normales en el listado, y el envío del ganador alcanza de verdad a la audiencia restante.
/api/email-marketing/ab-testing/:campaignId/setupActiva el A/B testing en una campaña en borrador: porcentaje de muestra, criterio de ganador (openRate | clickRate) y duración del test. Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/:campaignId/variantsCrea una variante con cambios sobre la campaña original (asunto, preheader, nombre del remitente, contenido HTML). Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/variants/:variantIdElimina una variante del test. Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/:campaignId/split-recipientsReparte la audiencia de prueba entre las variantes con un split determinista. Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/:campaignId/comparisonDevuelve las métricas de cada variante para compararlas. Solo lectura. Permiso: EMAIL_MARKETING_VIEW.
/api/email-marketing/ab-testing/:campaignId/determine-winnerDeclara la variante ganadora según el criterio configurado. Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/:campaignId/send-winnerEnvía la variante ganadora al resto de la audiencia que no entró en la muestra. Dispara un envío masivo. Permiso: EMAIL_MARKETING_AB_TESTING.
/api/email-marketing/ab-testing/:campaignId/disableDesactiva el A/B testing de la campaña y vuelve a un envío normal. Permiso: EMAIL_MARKETING_AB_TESTING.
El listado de campañas (GET /api/email-marketing/campaigns) trae el campo
isAbTest y la relación de variantes, y no muestra las variantes como
campañas sueltas: así distingues sin error una campaña con prueba A/B de
una normal.
Cierre comercial: clic a oportunidad o lead
Desde los resultados de una campaña, los destinatarios que hicieron clic pueden convertirse en entidades comerciales del CRM. El flujo es asistido: el solicitante decide qué crear, y las entidades se derivan siempre de la propia campaña dentro del ámbito del tenant (el cuerpo nunca acepta identificadores ni correos, para evitar referencias indirectas a recursos ajenos).
/api/email-marketing/campaigns/:id/conversion-candidatesResumen de quienes hicieron clic, separados en candidatos a oportunidad (con ficha de contacto en el CRM) y a lead (sin ficha), con conteos y un listado paginado (page, limit). Permiso: EMAIL_MARKETING_VIEW. Exige además el aplicativo CRM.
/api/email-marketing/campaigns/:id/convert-clicksCrea oportunidades y/o leads del CRM desde los clicantes. Permisos del CRM: al menos uno de LEADS_CREATE u OPPORTUNITIES_CREATE. Exige el aplicativo CRM y confirmación expresa.
Los dos endpoints exigen el aplicativo CRM en el plan, no el de
Marketing, porque lo que se lee y se crea son entidades del CRM.
convert-clicks exige además la capacidad de cada tipo que se pida
(crm.opportunities para las oportunidades, crm.leads para los
leads). Una organización con Marketing pero sin CRM recibe un bloqueo de
plan, no un error de permisos.
Parámetros de consulta de conversion-candidates (ambos opcionales):
- pageentero
- Página del listado detallado. Mínimo 1. Por defecto 1.
- limitentero
- Tamaño de página. Entre 1 y 100. Por defecto 25.
Cuerpo de convert-clicks:
- createOpportunitiesbooleano
- Crea oportunidades para quienes hicieron clic y tienen ficha de contacto. Requiere OPPORTUNITIES_CREATE y la capacidad crm.opportunities.
- createLeadsbooleano
- Crea leads para quienes hicieron clic y no tienen ficha de contacto. Requiere LEADS_CREATE y la capacidad crm.leads.
- opportunityStageenum OpportunityStage
- Etapa inicial de las oportunidades creadas. Por defecto QUALIFICATION. Solo aplica si createOpportunities es true.
- conversionConfirmedbooleano
- Confirmación expresa. Formalmente opcional, pero obligatoria en la práctica: sin ella, cualquier llamada que fuese a crear registros se rechaza. Solo se puede omitir cuando no hay nada pendiente de convertir.
Sin conversionConfirmed no se crea nada
La conversión escribe en el CRM y no se deshace con un botón, así que exige
confirmación expresa. Si la llamada fuese a crear algo y no envía
conversionConfirmed: true, la respuesta es 422 con
errorCode: "CRM_CONVERSION_CONFIRMATION_REQUIRED" y el detalle de cuántas
entidades se crearían: úsalo para pintar tu diálogo de confirmación y repite la
llamada con el campo a true. Si todos ya estaban convertidos, la llamada se
resuelve sin pedir confirmación, porque no crearía ningún registro.
La respuesta resume cuántas entidades se crearon y cuántas se omitieron por ya existir:
{
"opportunities": { "created": 3, "skipped": 1 },
"leads": { "created": 5, "skipped": 0 }
}Las entidades creadas llevan el origen email-marketing:<id de la campaña>. Si vuelves a llamar al endpoint con la misma campaña, no se
duplican: las que ya existen se cuentan en skipped. Se comprueba el
permiso de cada tipo que se va a crear (LEADS_CREATE para los leads,
OPPORTUNITIES_CREATE para las oportunidades) y se respeta su alcance.
Automatizaciones: plantillas, prueba de flujo y pasos comerciales
Las automatizaciones son secuencias de pasos que se ejecutan al producirse un disparador. Incluyen una galería de plantillas, la prueba de flujo y dos pasos que conectan con el CRM.
/api/email-marketing/automations/templatesCatálogo de plantillas de flujo: clave, nombre, descripción, disparador y número de pasos. Catálogo estático. Permiso: EMAIL_MARKETING_VIEW.
/api/email-marketing/automations/from-template/:templateKeyCrea una automatización en borrador con el disparador y los pasos de la plantilla. Cuerpo opcional: name, departmentIds. Permiso: EMAIL_MARKETING_CREATE.
/api/email-marketing/automations/:id/test-triggerPrueba el flujo contra un contacto. Cuerpo: contactId (obligatorio), dryRun (opcional, por defecto true). En simulación no crea ejecución ni encola nada; con dryRun=false crea una ejecución de prueba marcada para auditoría. Permiso: EMAIL_MARKETING_EDIT.
Plantillas de flujo disponibles
Clave (templateKey) | Nombre | Disparador |
|---|---|---|
welcome-new-lead | Bienvenida a nuevo lead | Alta de lead (LEAD_CREATED) |
client-onboarding | Onboarding de cliente nuevo | Alta de cliente (CLIENT_CREATED) |
cold-lead-reactivation | Reactivación de lead frío | Manual (MANUAL) |
post-conversion-followup | Seguimiento tras conversión | Lead convertido (LEAD_CONVERTED) |
birthday-greeting | Felicitación de cumpleaños | Basado en fecha (DATE_BASED, campo birthday) |
Disparadores
El conjunto de disparadores (AutomationTrigger) es: LEAD_CREATED,
CONTACT_CREATED, CLIENT_CREATED, LEAD_CONVERTED, TAG_ADDED,
LIST_SUBSCRIBED, DATE_BASED y MANUAL. Conviene destacar dos de ellos:
TAG_ADDED: se dispara al añadir una etiqueta concreta a un lead o cliente del CRM.DATE_BASED: un proceso diario recorre las fechas configuradas (por ejemplo, el cumpleaños del contacto) y dispara la automatización en el día correspondiente, respetando la zona horaria de la organización.
Pasos que crean entidades del CRM
El conjunto de tipos de paso (AutomationStepType) incluye dos acciones de
cierre comercial: CREATE_OPPORTUNITY (crea una oportunidad para la
entidad de la ejecución) y CREATE_LEAD (crea un lead de captación a
partir de la entidad de la ejecución).
Segmentos dinámicos: leads y filtro por facturación
El filtro de un segmento dinámico (listas con sourceType = CRM_SEGMENT)
permite distinguir el tipo de audiencia y filtrar por estado de cobro.
| Campo del filtro | Descripción |
|---|---|
audienceType | contacts (por defecto, contactos del CRM y sus clientes asociados), leads (leads de captación) o both (combina contactos y leads en un único segmento, deduplicando por correo electrónico en minúsculas; en caso de colisión gana el contacto). |
leadStatuses, leadSources, leadTags, leadCreatedFrom, leadCreatedTo | Filtros de lead. Solo se aplican cuando audienceType es leads o both. |
hasPaidInvoiceInLastDays | Incluye contactos cuyo cliente tiene una factura cobrada (pagada o parcialmente pagada, por su fecha de cobro) dentro del número de días indicado. Se calcula en el momento de previsualizar o enviar, consultando Finanzas. |
El filtro se usa tanto al crear o actualizar una lista de tipo segmento como
en la previsualización en vivo (POST /api/email-marketing/lists/preview-segment).
Etiquetas del CRM (autocompletado)
/api/crm/tagsLista las etiquetas distintas de leads y/o clientes dentro del ámbito del usuario, ordenadas alfabéticamente. Alimenta el autocompletado de etiquetas en los segmentos y en el disparador TAG_ADDED. Permiso: LEADS_VIEW.
Parámetros de consulta:
- qtexto (máx. 64)
- Filtra las etiquetas que contienen la subcadena (insensible a mayúsculas).
- entityTypelead | client | all
- Entidad cuyas etiquetas se consultan. Por defecto all.
- limitentero (1 a 50)
- Número máximo de etiquetas. Por defecto 20.
Solo los leads y los clientes tienen etiquetas (tags); los contactos no,
por eso entityType solo admite lead, client o all.
Exportar el informe de una campaña
/api/email-marketing/campaigns/:id/exportDescarga el informe de la campaña como CSV: resumen de métricas, destinatarios con su estado y eventos (envío, apertura, clic, rebote, baja) y clics por URL. Parámetro opcional format=csv (único formato disponible). Permiso: EMAIL_MARKETING_EXPORT.
Informes y analítica
Las métricas de una campaña y los agregados del periodo se sirven bajo
/api/email-marketing/analytics/.... El reparto de permisos no es
caprichoso: lo que responde a «cómo le fue a esta campaña» exige
EMAIL_MARKETING_VIEW, el mismo permiso con el que se abre su ficha, y lo
que permite comparar campañas entre sí y deducir hábitos de la audiencia exige
EMAIL_MARKETING_ANALYTICS, que es justo lo que la interfaz oculta con ese
permiso.
/api/email-marketing/analytics/campaigns/:id/performanceMétricas de una campaña: aceptados, entregados, aperturas, clics, rebotes, bajas y sus tasas ya calculadas por el servidor. Permiso: EMAIL_MARKETING_VIEW.
/api/email-marketing/analytics/overviewAgregados del periodo: campañas, correos aceptados, aperturas, clics, rebotes, bajas y tasas medias. Parámetros opcionales from y to (ISO 8601). Permiso: EMAIL_MARKETING_VIEW.
/api/email-marketing/analytics/campaigns/:id/clicksClics de una campaña agrupados por dirección de destino, con clics totales, clics únicos y porcentaje. Permiso: EMAIL_MARKETING_VIEW.
/api/email-marketing/analytics/top-campaignsRanking de campañas del periodo por tasa de apertura o de clic. Parámetros: from, to, limit, metric (openRate | clickRate). Permiso: EMAIL_MARKETING_ANALYTICS.
/api/email-marketing/analytics/trendsSerie temporal de correos aceptados, aperturas y clics, agrupada por día, semana o mes. Parámetros: from, to, granularity. Permiso: EMAIL_MARKETING_ANALYTICS.
/api/email-marketing/analytics/engagement/by-hourDistribución de aperturas y clics por hora del día en el periodo. Permiso: EMAIL_MARKETING_ANALYTICS.
/api/email-marketing/analytics/engagement/by-dayDistribución de aperturas y clics por día de la semana en el periodo. Permiso: EMAIL_MARKETING_ANALYTICS.
Las claves siguen en inglés, pero cuentan otra cosa. Desde agosto de 2026 las cifras cambiaron de base, no solo de rótulo:
accepted son los correos de los que el servidor de destino se hizo cargo
incluidos los que después rebotaron; delivered son los aceptados sin
rebote y vale null si la organización no tiene activada la detección de
devueltos; bounced deja de sumar los fallos de salida y bounceRate se
calcula sobre aceptados. sent se conserva y no es sinónimo de
accepted. deliveryRate queda sustituida por acceptanceRate. Las
definiciones completas, con su denominador, están en
Definiciones de las métricas de Marketing.
Medición del origen
Las etiquetas que se añaden a los enlaces de los correos y el identificador
firmado del destinatario se configuran en un controlador propio,
/api/email-marketing/tracking-settings.
/api/email-marketing/tracking-settingsConfiguración de medición de la organización, con isDefaultTemplate, capabilityActive y canManage ya resueltos para que la interfaz no recalcule la cascada. Permiso: EMAIL_MARKETING_VIEW o EMAIL_MARKETING_TRACKING_MANAGE.
/api/email-marketing/tracking-settingsCambia utmEnabled, utmTemplate (validada token a token), recipientTokenEnabled y recipientTokenTtlDays (7-180 días). Permiso: EMAIL_MARKETING_TRACKING_MANAGE. Encender recipientTokenEnabled exige además la capacidad Negocio por campaña. Cada cambio escribe una entrada de auditoría.
/api/email-marketing/tracking-settings/preview-linkDevuelve finalUrl, addedParams, respectedParams y skipReason para una dirección concreta. Función pura: no firma nada y NO emite ningún identificador de destinatario real. Permiso: EMAIL_MARKETING_VIEW.
Las campañas admiten además tres campos anulables en POST /api/email-marketing/campaigns y PATCH /api/email-marketing/campaigns/:id —utmMode (RESPECT u OFF), utmParams y trackingIdentityEnabled— donde null significa «hereda de la organización», que no es lo mismo que no enviar el campo. GET /api/email-marketing/campaigns/:id devuelve el bloque tracking con la configuración efectiva ya resuelta y de dónde sale cada valor.
Los formularios de captación admiten captureUtm y utmPersistence en PATCH /api/lead-forms/:id, y el envío público (POST /api/v1/forms/:slug/submit) acepta _utm y _ur junto al _pageUrl que ya viajaba. Está documentado en Endpoints de formularios públicos.
Enlaces con el dominio del cliente
Los enlaces medidos de una campaña pasan por UTILIA para poder contar los
clics, así que por defecto apuntan a un dominio nuestro aunque el correo lo
firme el dominio del cliente. Este controlador,
/api/email-marketing/tracking-domains, permite que apunten a un subdominio
suyo. Es una pieza distinta del dominio de ENVÍO (SPF, DKIM, DMARC) y de la
RUTA de envío: aquel responde «quién firma», la ruta «por dónde sale» y este
«por dónde vuelve el clic».
/api/email-marketing/tracking-domainsDominios de medición de la organización, con su estado consolidado, el estado del CNAME, la caducidad del certificado, si la medición está encendida y la fecha hasta la que se sirve. Permiso: EMAIL_MARKETING_VIEW, EMAIL_MARKETING_DELIVERABILITY_MANAGE u ORGANIZATION_EMAIL_SENDER_MANAGE.
/api/email-marketing/tracking-domains/overviewTodo lo que la pantalla de Ajustes necesita en una sola respuesta: si el plan lo incluye, si quien mira puede gestionarlo, el anclaje actual y el dominio por el que se sale mientras tanto. Mismos tres permisos que el listado.
/api/email-marketing/tracking-domains/:idDetalle de un dominio. El detalle técnico de la avería (error del certificado y de la sonda) solo viaja con permiso de gestión: puede llevar detalle de infraestructura de la plataforma.
/api/email-marketing/tracking-domains/:id/setup-instructionsEl registro CNAME que hay que publicar, con su host, su valor y el destino al que apunta. Es un solo registro y es CNAME, nunca A. Permiso: EMAIL_MARKETING_DELIVERABILITY_MANAGE u ORGANIZATION_EMAIL_SENDER_MANAGE.
/api/email-marketing/tracking-domainsDa de alta el subdominio (host). Tiene que ser un subdominio, no el dominio a secas, y solo se admite uno vivo por organización. El alta NO empieza a medir. Limitado a 10 altas por hora. Permiso: los dos de gestión.
/api/email-marketing/tracking-domains/:id/verifyComprueba el CNAME contra el DNS real y persiste el resultado. Limitado a 5 comprobaciones por minuto, con cerrojo de 30 segundos. Un fallo transitorio de DNS conserva el estado anterior en vez de darlo por perdido. Permiso: los dos de gestión.
/api/email-marketing/tracking-domains/:id/emissionEnciende o apaga la medición por ese dominio (cuerpo: enabled). Solo afecta a los envíos NUEVOS. Encenderla exige que el dominio esté sirviendo y con una prueba de extremo a extremo reciente; apagarla no tiene condiciones. Permiso: los dos de gestión.
/api/email-marketing/tracking-domains/:id/retry-certificateVuelve a pedir el certificado ahora, sin esperar el turno de la espera creciente. Solo tiene sentido cuando el CNAME ya está arreglado. Limitado a 3 intentos por hora. Permiso: los dos de gestión.
/api/email-marketing/tracking-domains/:id/retirePrograma el fin del servicio (cuerpo: confirm). NO borra nada y NO corta ningún enlace: apaga la medición de los envíos nuevos y devuelve en serveUntil la fecha hasta la que se siguen atendiendo los enlaces de los correos ya entregados. Permiso: los dos de gestión.
Las cuatro escrituras que levantan infraestructura necesitan las dos capacidades. POST /tracking-domains, POST /:id/verify, PATCH /:id/emission y POST /:id/retry-certificate exigen las dos capacidades del lote de medición, Analítica avanzada de Marketing y Negocio por campaña. Sin alguna de ellas responden 403 con errorCode: "CAPABILITY_NOT_ENABLED", que se resuelve contratando y no concediendo permisos.
POST /:id/retire no lleva esa puerta, y tampoco es un olvido: es la salida. Quien deja de tener las capacidades conserva su subdominio sirviendo los enlaces ya enviados y tiene que poder soltarlo sin depender de volver a contratar.
Un enlace de un correo ya enviado no se puede romper
Un correo entregado lleva su dominio escrito dentro y no hay forma de reescribirlo. De ahí que ninguna operación borre nada, que apagar la medición afecte solo a los envíos nuevos y que las lecturas no lleven puerta de capacidad de plan: un cliente que cambie de plan tiene que poder seguir viendo hasta cuándo atendemos un host que sigue llevando los enlaces de sus correos.
Si el cliente retira su registro CNAME, el certificado deja de poder renovarse y a los 90 días como mucho esos enlaces dejan de abrirse con un aviso de seguridad del navegador: no es que se pierda una métrica, es que la persona no llega a su página. certificateExpiresAt trae la fecha exacta. Guía para el usuario final en Enlaces con tu propio dominio.
El seguimiento público de aperturas y clics no lleva puerta de aplicativo ni de capacidad: ponerla rompería los enlaces de los correos ya enviados de cualquier cliente que cambie de plan.
Negocio originado por campaña
Necesita el plan que incluye «Negocio por campaña». Todos estos endpoints están detrás de la capacidad Negocio por campaña, que además exige tener contratado el aplicativo CRM. Sin ella responde 403 con errorCode: "CAPABILITY_NOT_ENABLED", que no es lo mismo que una falta de permiso: se resuelve contratando, no concediendo permisos. Ver Errores de plan.
El negocio que se atribuye a una campaña
CRM
Lead
Leads con esa campaña como origen.CRM
Oportunidad
Oportunidades abiertas y ganadas.Presupuestos y firma
Presupuesto firmado
Importe presupuestado (budgeted).Finanzas
Factura
Importe emitido (issued).
/api/email-marketing/attribution/campaigns/:idNegocio originado por una campaña: recuentos de la cadena (leads, oportunidades, oportunidades ganadas, presupuestos firmados, facturas emitidas, facturas con cobro y cobros) e importes desglosados por moneda (budgeted, issued y collected). Permiso: EMAIL_MARKETING_ANALYTICS; los importes exigen además INVOICES_VIEW.
/api/email-marketing/attribution/campaigns/:id/entitiesLista paginada de las entidades originadas por la campaña. Parámetro entityType obligatorio (LEAD, OPPORTUNITY, BUDGET, INVOICE o COLLECTION), page y limit (máximo 100). Permiso: EMAIL_MARKETING_ANALYTICS más el de la entidad listada.
/api/email-marketing/attribution/top-campaignsRanking de campañas por negocio. Parámetros: days (1-366), metric (OPPORTUNITIES, BUDGETS, ISSUED o COLLECTED) y limit (máximo 25). Las métricas de dinero se rechazan con 403 sin INVOICES_VIEW. Permiso: EMAIL_MARKETING_ANALYTICS.
/api/email-marketing/attribution/summaryEl mismo agregado para todo un periodo, con la línea de corte del dato (measuredSince) y si parte de lo agregado se reconstruyó. Permiso: EMAIL_MARKETING_ANALYTICS.
La vista inversa vive en los módulos de la ficha que se pregunta, no aquí:
/api/crm/opportunities/:id/marketing-originDe qué campaña vino esta oportunidad. Permisos: OPPORTUNITIES_VIEW y EMAIL_MARKETING_VIEW.
/api/crm/clients/:id/marketing-originDe qué campaña vino este cliente. Permisos: CLIENTS_VIEW y EMAIL_MARKETING_VIEW.
/api/finance/invoices/:id/commercial-originOrigen comercial de una factura. Permiso: INVOICES_VIEW; el nombre de la campaña solo con EMAIL_MARKETING_VIEW.
Un bloque que no se puede ver no viaja con cero ni con null. La regla de contrato de estos endpoints es que un bloque que quien pregunta no puede ver no aparece en el JSON. En su lugar aparece su motivo en excludedBlocks, con block, reason (missing_permission, missing_scope, missing_module o missing_capability) y, según el caso, permission, moduleKey o capabilityKey.
Existe para que ninguna capa pueda pintar un cero engañoso por descuido: un cero afirma que no hubo negocio, y ahí sería falso la mitad de las veces.
Viajan además scopeLimited (el ámbito de filas de quien pregunta recorta lo agregado), truncated (se tocó el tope y la cifra es un mínimo), measuredSince (desde cuándo hay medición), reconstructed y reconstructedRows. rebuilding (se está reconstruyendo el histórico ahora mismo) viaja solo en la ficha de una campaña, no en el resumen del periodo. Los importes viajan siempre como { currency, amount }, nunca como un número suelto.
Ciclo de vida del envío
Estas rutas gobiernan lo que le pasa a una campaña desde que se decide enviarla
hasta que se explica qué le ocurrió a cada correo. Todas viven bajo
/api/email-marketing/ y todas exigen el aplicativo Marketing en el plan:
sin él responden 403 con errorCode: MODULE_NOT_ENABLED, que es una puerta
comercial y no un problema de permisos.
| Método y ruta | Qué hace | Permiso | Scope OAuth de su operación MCP |
|---|---|---|---|
GET /campaigns/:id/preflight | Comprobación final antes de enviar, en modo diagnóstico. Devuelve canSend y la lista de comprobaciones con su estado. No reserva cupo ni confirma nada. | EMAIL_MARKETING_VIEW, _SEND o _SCHEDULE | marketing:campaigns:view, :send o :schedule |
POST /campaigns/:id/test-send | Envía hasta 3 correos de prueba con el contenido actual. | EMAIL_MARKETING_SEND | marketing:campaigns:send |
POST /campaigns/:id/start | Arranca el envío. | EMAIL_MARKETING_SEND | marketing:campaigns:send |
POST /campaigns/:id/schedule y /unschedule | Pone y quita la fecha de envío. | EMAIL_MARKETING_SCHEDULE | marketing:campaigns:schedule |
POST /campaigns/:id/pause, /resume | Detiene y reanuda un envío en curso, conservando los pendientes. | EMAIL_MARKETING_SEND | marketing:campaigns:send |
POST /campaigns/:id/cancel y /reopen | Cancela el envío y devuelve la campaña a borrador. | EMAIL_MARKETING_DELETE (reopen admite además _SEND) | marketing:campaigns:send |
POST /campaigns/:id/retry-failed | Reencola solo los fallos recuperables. Las direcciones que no existen no se reintentan. | EMAIL_MARKETING_SEND | marketing:campaigns:send |
GET /campaigns/:id/failure-summary | Desglose de las causas de fallo, con su código. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
GET /campaigns/:id/recipients | Destinatarios con su resultado. Filtros sendStatus, sendStatusIn, failureCode, failureCategory, engagement e isExcluded. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
GET /campaigns/:id/recipients/:sendId/timeline | El relato de un correo, hito a hito. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
GET /campaigns/:id/replies | Quién ha contestado, con la marca de respuesta automática. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
POST /campaigns/:id/inbox-checks | Manda la prueba a hasta 3 buzones propios y abre una comprobación por cada uno. | EMAIL_MARKETING_SEND | marketing:campaigns:send |
PATCH /inbox-checks/:id | Registra lo que una persona ha visto en su buzón. | EMAIL_MARKETING_SEND (o haber lanzado el pack) | marketing:campaigns:send |
GET /campaigns/:id/inbox-checks | Lo confirmado hasta ahora, con su caducidad. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
GET /sending-quota | Cuántos correos de campaña quedan; con plannedRecipients, si cabe un envío de ese tamaño. | EMAIL_MARKETING_VIEW | marketing:campaigns:view |
Tres cosas que estas respuestas no afirman:
Aceptado no es entregado. Un correo SENT y un hito ACCEPTED significan
que el servidor de destino se hizo cargo del mensaje. Que llegara a una bandeja
de entrada no lo sabe nadie salvo quien abra el buzón, y para eso existe el
paquete de comprobación, cuya confirmación caduca a los 90 días.
Excluido no es fallido. Desde el 5 de septiembre de 2026, los correos que no
salieron a propósito —baja respetada, rebote definitivo anterior, correo
desactivado en la ficha, apartado por inactividad o tope de frecuencia— salen de
la cifra de fallidos y van en excluded, con su desglose en excludedByReason.
La cifra de fallidos de las campañas ya enviadas bajó por eso, no porque nada se
haya arreglado.
Automático no es interés. En replies, automatic: true es una respuesta de
máquina, normalmente un aviso de ausencia. Un aviso de no entrega no es una
respuesta.
Entregabilidad operativa
| Método y ruta | Qué hace | Permiso |
|---|---|---|
GET /deliverability/dashboard?periodDays=7|30|90 | Resumen del panel. reputationScore vale null —nunca cero— sin muestra suficiente, y reputationBasis dice qué falta. | EMAIL_MARKETING_ANALYTICS o _DELIVERABILITY_MANAGE |
GET /deliverability/metrics | Métricas agregadas del periodo. Admite periodDays o un rango from/to a medida. | EMAIL_MARKETING_ANALYTICS o _DELIVERABILITY_MANAGE |
GET /deliverability/measurement-coverage | Qué se está midiendo: devueltos, quejas, aperturas, clics y respuestas, con fuente y enlace al ajuste concreto cuando se puede activar. | EMAIL_MARKETING_VIEW, _ANALYTICS, _DELIVERABILITY_MANAGE u ORGANIZATION_EMAIL_SENDER_MANAGE |
POST /deliverability/address-check | Comprueba una dirección o hasta 500: histórico propio, DNS del dominio y evidencia de suscripción. | EMAIL_MARKETING_VIEW o _DELIVERABILITY_MANAGE |
GET y PATCH /deliverability/frequency-cap | Control de frecuencia por persona. Nace apagado. | Leer: _DELIVERABILITY_MANAGE o EMAIL_MARKETING_VIEW. Cambiar: _DELIVERABILITY_MANAGE |
GET y PATCH /deliverability/complaint-policy | Umbral propio de quejas y pausa automática. | Leer: _DELIVERABILITY_MANAGE o EMAIL_MARKETING_VIEW. Cambiar: _DELIVERABILITY_MANAGE |
GET /deliverability/bounces y /unsubscribes | Listados de rebotes y de bajas. | EMAIL_MARKETING_VIEW |
GET /admin/unsubscribes | Bajas con su origen, filtradas por el alcance del usuario. | EMAIL_MARKETING_VIEW |
POST /admin/unsubscribes/contact/:contactId/reactivate | Borra la baja global de un contacto. No crea consentimiento. | EMAIL_MARKETING_LISTS_MANAGE |
GET, PATCH y POST /bounce-settings/... | Buzón IMAP y webhook de rebotes, con su telemetría y la dirección que hay que pegar en el proveedor. | EMAIL_MARKETING_DELIVERABILITY_MANAGE |
POST /webhooks/bounces/:provider | Punto de entrada público de los avisos del proveedor. Verificación de firma fail-closed: sin cabecera de firma, se rechaza. | Público, sin sesión |
GET /lists/:id/subscribers/:subscriberId/consent-history | La prueba del consentimiento de una persona. Sobrevive a su baja. | EMAIL_MARKETING_LISTS_MANAGE |
GET /lists/:id/consent-export | La misma evidencia de la lista entera, en CSV. Queda registrada en auditoría. | EMAIL_MARKETING_EXPORT |
/api/email-marketing/sending-routes/... no depende del aplicativo
Marketing, sino de la capacidad Servidor de envío propio: la
identidad de envío afecta también a facturas, presupuestos, portal y
avisos, que existen en todos los planes. Entre sus nueve rutas está
GET /sending-routes/:id/header-report (qué cabeceras llevaría el
correo, sin enviarlo). Ninguna devuelve claves privadas ni el secreto de la ruta.
Herramientas MCP
Las operaciones anteriores se exponen a los agentes de inteligencia
artificial mediante las herramientas MCP del servidor Marketing
(POST /api/mcp/marketing, documentado en
Servidor MCP Marketing). Cada
operación se controla con su permiso concreto; las operaciones que crean
entidades del CRM o disparan envíos masivos exigen permisos adicionales o
confirm: true.
marketing_campaigns
Gestión completa de campañas. Operaciones: list, get, create, update,
delete, send, get_send_status, schedule, pause, resume, cancel,
duplicate, test_send, preview, preview_html, by_contact,
get_branding, update_branding, conversion_candidates, convert_clicks,
delivery_summary, export, list_recipients, recipients_preview,
add_recipients, remove_recipient, remove_recipients, retry_failed,
failure_summary, sending_quota, edit_content, engagement_breakdown,
resend_preview, create_resend y list_resends.
create y update aceptan además utmMode, utmParams y
trackingIdentityEnabled (los tres anulables, donde null significa «hereda de
la organización»), y get devuelve el bloque tracking con la configuración
efectiva ya resuelta. No son operaciones nuevas: son campos del mismo
create y update de siempre.
pause/resume: pausan y reanudan un envío en curso sin perder el progreso (a diferencia decancel, que es irreversible). ExigenEMAIL_MARKETING_SEND, igual que el envío.conversion_candidates: lectura del resumen de clicantes (permisoEMAIL_MARKETING_VIEW).convert_clicks: crea oportunidades y/o leads. Exige los permisos del CRM (LEADS_CREATEuOPPORTUNITIES_CREATE), no un permiso de marketing.preview_html: devuelve el HTML renderizado, opcionalmente con un branding de prueba sin persistir nada.get_branding/update_branding: consultan y modifican el branding propio de la campaña (que hereda del branding de la organización).export: descarga el informe de la campaña en CSV (permisoEMAIL_MARKETING_EXPORT).engagement_breakdown: reparto de la audiencia en los siete grupos de comportamiento. No son porciones de una tarta:openedya contiene aclickedy aopened_not_clicked. Ynot_openedexcluye siempre a quien pulsó. PermisoEMAIL_MARKETING_VIEW, sin capacidad de plan.resend_preview/create_resend/list_resends: los segundos intentos. Solo admiten los gruposnot_openedyopened_not_clicked—a quien se quejó, se dio de baja o rebotó no se le vuelve a escribir—, exigen un asunto distinto del original, admiten como mucho dos por campaña y no tocan los contadores de la campaña original. Los dos primeros exigen la capacidad Analítica avanzada de Marketing;create_resendpide ademásEMAIL_MARKETING_CREATE.list_recipients: gana los filtrosisExcluded(incluidos frente a excluidos del envío) yengagement(qué hizo la persona), que es ortogonal asendStatus. Filtrar porengagementexige la capacidad Analítica avanzada de Marketing; el resto de filtros, no. Los camposdeviceType,emailClientycountryde cada destinatario se omiten sin el permisoEMAIL_MARKETING_VIEW_RECIPIENT_DETAILy el scopemarketing:recipients:detail:view: la operación responde igual, esos tres campos no viajan y llegarecipientDetailIncluded: false. Nunca devuelve un 403 por eso.
marketing_lists
Listas, segmentos del CRM, suscriptores e interés. Operaciones: list, get,
create, update, delete, preview_segment, add_contact,
remove_contact, add_subscribers, members, list_subscribers,
update_subscriber, crm_countries, calculate, engagement_summary,
set_aside_inactive y reactivate_subscriber.
| Operación | Qué devuelve | Permiso | Capacidad de plan |
|---|---|---|---|
list_subscribers | Suscriptores con su interés y su estado de apartado. Filtros engagementBand y setAside | EMAIL_MARKETING_VIEW | — |
members | Audiencia EFECTIVA: activos manuales más el segmento del CRM resuelto | EMAIL_MARKETING_VIEW | — |
engagement_summary | Recuento por banda, apartados y fecha del cálculo | EMAIL_MARKETING_VIEW | Analítica avanzada de Marketing |
set_aside_inactive | Aparta inactivos. dryRun por defecto | EMAIL_MARKETING_LISTS_MANAGE | Analítica avanzada de Marketing |
reactivate_subscriber | Vuelve a incluir a un apartado | EMAIL_MARKETING_LISTS_MANAGE | Analítica avanzada de Marketing |
members y list_subscribers no son lo mismo: members devuelve la
audiencia efectiva de la lista y no admite filtrar por suscriptor;
list_subscribers devuelve los suscriptores con su interés y su
estado de apartado, y es la única forma de volver a encontrar a quien
se apartó.
Apartar no es dar de baja: set_aside_inactive no toca el estado de
suscripción, ni la base jurídica, ni la prueba del consentimiento, ni la
fecha de confirmación. Esas personas siguen suscritas, dejan de recibir
campañas y se pueden reincorporar cuando quieras. Los mínimos (90 días y
2 correos recibidos) los aplica el servidor, no la interfaz.
marketing_deliverability
Reputación, rebotes, quejas, comprobación de direcciones, control de frecuencia
y política de quejas. Operaciones: reputation_summary, bounce_rate,
complaint_rate, score_by_domain, blocklist_check, dashboard_summary,
measurement_coverage, address_check, frequency_cap_get,
frequency_cap_set, campaign_deliverability, campaign_bounce_analysis,
get_complaint_policy y set_complaint_policy.
Esta herramienta ha dejado de ser de solo lectura: set_complaint_policy
cambia la configuración de envío de la organización.
| Operación | Qué devuelve | Permiso | Scope OAuth |
|---|---|---|---|
get_complaint_policy | Umbral propio, pausa automática, techo de la plataforma, y si hay bloqueo vigente, por qué y hasta cuándo | EMAIL_MARKETING_DELIVERABILITY_MANAGE o EMAIL_MARKETING_VIEW | marketing:deliverability:view o marketing:campaigns:view |
set_complaint_policy | Solo thresholdBps (10 a 30) y autoPauseEnabled | EMAIL_MARKETING_DELIVERABILITY_MANAGE | marketing:deliverability:manage |
set_complaint_policy solo permite ser más estricto. El 0,3 % que
aplican Gmail y Yahoo y el bloqueo del servidor compartido protegen el
correo de todas las organizaciones que lo comparten, así que no se
configuran por API. Un bloqueo se revisa a diario y se levanta solo
en cuanto la tasa baja, o cuando deja de poder evaluarse por falta de
volumen.
marketing_reports
Informes y analítica de campañas. Es el espejo exacto de los endpoints de la
sección anterior: mismas cifras, mismos permisos y mismo ámbito de filas.
Operaciones: campaign_stats, engagement_overview, click_through,
top_campaigns, engagement_heatmap, engagement_trends,
campaign_attribution, attribution_summary, entity_origin, complaints,
link_heatmap y audience_tech. Todas son de solo lectura. Las seis
primeras y complaints no exigen capacidad de plan; las de atribución y
las dos de F4 sí (ver más abajo).
complaints: quejas por correo no deseado del periodo, agrupadas por campaña o por dominio del destinatario (complaintsGroupBy). La tasa llega comonull—nunca como 0— cuando la organización no tiene ninguna vía por la que enterarse, y cuando hay medición es un suelo. PermisoEMAIL_MARKETING_ANALYTICS.link_heatmap: qué enlace concreto se pulsa, con su posición, su texto visible y el reparto de la atención. Distingue dos botones que llevan al mismo sitio, que es lo queclick_throughno puede hacer. PermisoEMAIL_MARKETING_VIEWy capacidad Analítica avanzada de Marketing. El desglose por dirección de destino de siempre (click_through) sigue siendo gratuito.audience_tech: aparato, programa de correo o país (dimension), a partir de los clics por defecto (source). El país es aproximado y sale de una base de datos local, nunca de una consulta a un tercero. Con menos de 20 clics llegasufficientSample: falsey no debe presentarse. PermisoEMAIL_MARKETING_VIEWy capacidad Analítica avanzada de Marketing.
| Operación | Qué devuelve | Permiso | Scope OAuth |
|---|---|---|---|
campaign_stats | Métricas de una campaña (campaignId). | EMAIL_MARKETING_VIEW | marketing:reports:view o marketing:campaigns:view |
engagement_overview | Agregados del periodo (dateFrom, dateTo). | EMAIL_MARKETING_VIEW | marketing:reports:view o marketing:campaigns:view |
click_through | Clics por dirección de destino de una campaña. | EMAIL_MARKETING_VIEW | marketing:reports:view o marketing:campaigns:view |
top_campaigns | Ranking del periodo (limit, metric, minSent). | EMAIL_MARKETING_ANALYTICS | marketing:reports:view |
engagement_heatmap | Mapa por hora o por día (groupBy). | EMAIL_MARKETING_ANALYTICS | marketing:reports:view |
engagement_trends | Serie temporal (granularity: day, week o month). | EMAIL_MARKETING_ANALYTICS | marketing:reports:view |
campaign_attribution | Negocio originado por una campaña (campaignId; con breakdown, la lista paginada). Capacidad Negocio por campaña. | EMAIL_MARKETING_ANALYTICS | marketing:reports:view |
attribution_summary | El mismo agregado para un periodo (days o dateFrom/dateTo). Capacidad Negocio por campaña. | EMAIL_MARKETING_ANALYTICS | marketing:reports:view |
entity_origin | De qué campaña vino una oportunidad o un cliente (entityType + entityId). Sin capacidad de plan. | EMAIL_MARKETING_VIEW más el de la ficha | marketing:reports:view o marketing:campaigns:view |
campaign_statsdevuelve el bloquestatscon los recuentos (accepted,delivered,sent,opened,clicked,bounced,unsubscribed), las tasas (acceptanceRate,openRate,clickRate,clickToOpenRate,bounceRate,unsubscribeRate), el bloquemetricsAvailabilityy la señalbounceDetectionEnabled. Una métrica quemetricsAvailabilitymarca como no disponible no es un cero: preséntela como «sin datos» o su asistente afirmará algo que nadie ha medido.clickToOpenRate(«Clics por apertura») se divide entre las aperturas únicas, no entre los correos aceptados, y puede superar el 100 % cuando hay gente que pulsa sin que se registre su apertura. No lo recorte.top_campaignsadmitemetric: OPENS | CLICKS | CTR | CONVERSIONS | REVENUE_ISSUED | REVENUE_COLLECTED.CONVERSIONSordena por oportunidades originadas, no por ventas cerradas; hasta agosto de 2026 devolvía un error diciendo que el producto no registra conversiones, y eso ya no es cierto. Las dos métricas de dinero exigenINVOICES_VIEWy la capacidad de plan. El ranking excluye los reenvíos y las variantes de una prueba A/B, que competirían contra su propia campaña madre.minSentdeja fuera las campañas de poco volumen, donde una tasa altísima sobre tres envíos no dice nada.click_throughagrupa por la dirección original del enlace, no por la dirección de redirección con la que se mide el clic: dos destinatarios que pulsan el mismo enlace cuentan en la misma fila.
Los importes no viajan por el servidor MCP de marketing. El token de /api/mcp/marketing solo admite scopes marketing:*,
org:email-senders:* y crm:*:view: nunca puede portar
finance:invoices:view. Por ese carril llegan los recuentos y las tasas de
conversión, y el bloque de dinero se declara ausente en excludedBlocks con
reason: "missing_scope". No lo presentes como un cero. Las cifras están en la
pantalla de Marketing y en los endpoints REST de la sección anterior.
Por el mismo motivo, entity_origin cubre oportunidad y cliente, pero no
factura: el origen comercial de una factura está solo en
GET /api/finance/invoices/:id/commercial-origin.
Las facturas creadas desde fuera quedan fuera del negocio originado
La API externa v1 de facturas (POST /external/v1/invoices, sdk.invoices.create())
no admite opportunityId ni projectId, así que una factura emitida por una
integración externa nace sin vínculo comercial y no aparecerá en el negocio
originado por ninguna campaña.
No es un fallo de medición: es que nadie escribió el vínculo. Si facturas desde
fuera y quieres que ese dinero cuente, crea la factura desde el producto, desde
la conversión de un presupuesto, desde la generación de una suscripción o por
MCP con crm_invoices, que sí acepta opportunityId.
marketing_tracking_settings
Configuración de medición de la organización. Tres operaciones: get,
update y preview_link.
| Operación | Qué hace | Permiso | Scope OAuth |
|---|---|---|---|
get | Configuración vigente, con capabilityActive y canManage resueltos. | EMAIL_MARKETING_VIEW | marketing:tracking:manage o marketing:campaigns:view |
update | Cambia utmEnabled, utmTemplate, recipientTokenEnabled y recipientTokenTtlDays. | EMAIL_MARKETING_TRACKING_MANAGE | marketing:tracking:manage |
preview_link | Cómo quedaría un enlace (url, campaignId opcional). | EMAIL_MARKETING_VIEW | marketing:tracking:manage o marketing:campaigns:view |
preview_linkes una función pura: no escribe nada, no firma nada y no emite ningún identificador de destinatario real.updatesolo exige capacidad de plan si la llamada traerecipientTokenEnabled. Apagar los parámetros de origen no está detrás de ningún muro de pago.- La plantilla admite cinco marcadores y ninguno más:
{{campaign.name}},{{campaign.id}},{{campaign.type}},{{variant}}y{{date}}.
Los formularios de captación reciben captureUtm y utmPersistence como
propiedades de org_integrations_settings → lead_forms_create y
lead_forms_update. No hay operaciones nuevas en esa herramienta.
Con tipos en los dos SDK. marketing_reports está cubierta entera en el SDK de JavaScript
(sdk.mcp.marketing.reports.campaignStats(...), engagementOverview,
clickThrough, topCampaigns, engagementHeatmap, engagementTrends,
campaignAttribution, attributionSummary y entityOrigin), y también
marketing_tracking_settings (sdk.mcp.marketing.trackingSettings.get(),
update(...) y previewLink(...)) y email_tracking_domains
(sdk.mcp.marketing.trackingDomains, sus ocho operaciones). Los mismos nombres
en snake_case en el SDK de Python, en las variantes asíncrona y síncrona. Más en la
referencia del SDK.
email_tracking_domains
El dominio propio por el que vuelve el clic. Ocho operaciones: list,
get, get_setup_instructions, create, verify, set_emission,
retry_certificate y retire. Espejo exacto del controlador REST de arriba.
| Operación | Permiso | Scope OAuth |
|---|---|---|
list, get | EMAIL_MARKETING_VIEW o cualquiera de los dos de gestión | marketing:deliverability:view o marketing:campaigns:view |
get_setup_instructions | Los dos de gestión | marketing:deliverability:view |
create, verify, set_emission, retry_certificate, retire | Los dos de gestión | marketing:deliverability:manage |
verifyyretireexigenconfirm: true: la primera consulta el DNS real y tiene tope de cinco por minuto; la segunda pone fecha al fin del servicio.- Ninguna operación borra nada. La herramienta declara
destructiveHint: falsey es literal, no un descuido de anotación. - No se inventa ningún scope: se reutilizan los dos de entregabilidad, que
a diferencia de
org:email-senders:*no los expandencrm:fullnidev:full. - Cuatro escrituras exigen capacidad de plan, igual que en el REST:
create,verify,set_emissionyretry_certificatenecesitan las dos capacidades del lote de medición, Analítica avanzada de Marketing y Negocio por campaña. Las lecturas yretireno llevan esa puerta: retirar es la salida y tiene que poder hacerse aunque cambie el plan.
marketing_automations
Diseño y gestión de automatizaciones. Operaciones: list, get, validate,
create, update, replace_steps, delete, activate, pause,
bulk_set_status, test_trigger, duplicate, add_step, update_step,
remove_step, list_templates, create_from_template, list_runs,
get_run, retry_run, cancel_run, stats.
validate: comprueba una definición entera (nombre, disparador,triggerConfigy pasos) con los mismos validadores que el guardado, sin persistir nada; devuelve la lista de problemas en castellano. Solo lectura (EMAIL_MARKETING_VIEW).replace_steps: sustituye el flujo entero de pasos en una llamada (equivale aupdateconsteps); exigeEMAIL_MARKETING_EDIT.bulk_set_status: activa o pausa hasta 25 automatizaciones con resultado por id (los fallos no detienen el resto); conaction: "activate"exigeconfirm: true. PermisoEMAIL_MARKETING_EDIT.duplicate: crea una copia en borrador («X (copia)») con disparador, configuración y pasos; exigeEMAIL_MARKETING_CREATE.list_templates: catálogo de plantillas de flujo (permisoEMAIL_MARKETING_VIEW).create_from_template: crea la automatización en borrador desde una plantilla (templateKey); exigeEMAIL_MARKETING_CREATE. AceptanameydepartmentIdsopcionales.test_trigger: prueba el flujo contra un contacto; condryRun: true(por defecto) solo simula, y condryRun: falseejecuta un run de prueba real marcado como test, fuera de las métricas. ExigeEMAIL_MARKETING_EDIT.list_runs/get_run/retry_run/cancel_run: consultan las ejecuciones de una automatización, reintentan una concreta o la cancelan. Las dos lecturas van conEMAIL_MARKETING_VIEW;cancel_runexigeEMAIL_MARKETING_EDITyretry_runexigeEMAIL_MARKETING_SEND, porque reenvía correos reales.
marketing_ab_testing
Ciclo completo de pruebas A/B sobre una campaña. Operaciones: setup,
add_variant, remove_variant, split_recipients, comparison,
determine_winner, send_winner, disable.
comparisones de solo lectura (EMAIL_MARKETING_VIEW).- El resto de operaciones exigen
EMAIL_MARKETING_AB_TESTING. send_winnerdispara un envío masivo y requiereconfirm: true.
El resto de herramientas del servidor
Las ocho anteriores son las que cubre esta página en detalle, pero el servidor
Marketing expone quince en total. Estas siete no se documentan aquí; su
esquema completo (parámetros, permisos y descripciones) viaja en el propio
tools/list del servidor MCP:
| Herramienta | Para qué sirve | Operaciones |
|---|---|---|
marketing_templates | Plantillas de correo reutilizables | list, get, create, update, delete, render_preview, duplicate, list_categories |
marketing_suppressions | Rebotes y bajas: la lista de a quién no se escribe | list_bounces, list_unsubscribes, add_unsubscribe, remove_unsubscribe, check_email, clean_bounced_from_list, remove_bounce, export_problematic |
marketing_bounce_settings | Configuración de la detección de devueltos | get, update, test_imap, regenerate_webhook_secret |
marketing_assets | Imágenes y adjuntos de las campañas | upload, list, get, delete |
marketing_overview | Estado del módulo de un vistazo | overview |
marketing_audience_search | Búsqueda de audiencia | overview |
marketing_recipients_preview | Previsualización de destinatarios | overview |
Relación con otros módulos
- El cierre comercial conecta Marketing con el CRM: un clic interesado se convierte en oportunidad o en lead.
- El filtro de facturación de los segmentos se apoya en Finanzas para segmentar por estado real de cobro.
- La guía de uso del módulo, con el flujo completo de la interfaz, está en Campañas de correo.
- Qué cuenta exactamente cada cifra de
marketing_reportsy sobre qué se divide, en Definiciones de las métricas de Marketing.
Siguiente paso
Si vas a trabajar con Marketing por MCP, empieza por los primeros pasos con MCP para la autenticación y el formato de las llamadas, y luego usa las herramientas de arriba para crear campañas, consultar sus resultados, lanzar pruebas A/B y diseñar automatizaciones desde código.