Integraciones CRM
Referrer Tracker se integra fácilmente con los principales CRMs del mercado. Los datos de tracking capturados en tus formularios pueden enviarse directamente a tu CRM para enriquecer tus leads.
Enviar leads a Referrer Tracker (API de conversiones)
Si quieres que tu CRM (o middleware) envíe leads/conversiones a Referrer Tracker para su posterior sincronización con plataformas publicitarias, utiliza el endpoint de ingesta de conversiones.
Importante: Usa destination para indicar a qué plataforma va esta conversión (por ejemplo: meta o google). Esto evita colisiones cuando el mismo event_name existe en varias plataformas.
El campo event_name (o su alias conversion_type) debe coincidir con el conversionType configurado/mapeado para ese destination en tu cuenta (por ejemplo: Lead, LeadQualified, Purchase, etc.).
Nota: event_name / conversion_type es el “tipo de conversión” interno (CRM). El nombre del evento real que se envía a Meta se define en tu mapeo como metaEventName.
Si el evento no tiene un mapeo configurado para ese destino, la conversión se guardará igualmente, pero no podrá procesarse/enviarse.
Identificadores (email/teléfono): Puedes enviar email y phone en texto plano. No hace falta hashearlos: la aplicación se encargará de normalizarlos y hashearlos durante el procesamiento/envío a las plataformas.
Autenticación: Este endpoint requiere Bearer token. Usa tu API key como token:
Authorization: Bearer TU_API_KEY
Endpoint
POST /api/conversions/ingest
Reglas de deduplicación
- La deduplicación se realiza por
lead_id+ (event_name/conversion_type) +destination. - Si además envías un click id (
gclid,fbclid,msclkid, etc.), se tendrá en cuenta también para deduplicar.
Importante (múltiples conversiones por lead): puedes enviar varias conversiones para el mismo lead (por ejemplo: Lead, LeadQualified, Purchase) usando el mismo lead_id, y cambiando conversion_type en cada evento.
Ejemplos:
lead_id=12345+conversion_type=Leadlead_id=12345+conversion_type=LeadQualifiedlead_id=12345+conversion_type=Purchase
Notas de campos
destination: plataforma destino (ej:meta,google). Si no se envía, se asumemeta.conversion_type: alias deevent_name. Úsalo si quieres que quede más claro que el valor debe coincidir con tuconversionTypeconfigurado.lead_id: identificador estable del lead en tu CRM. Es el campo recomendado para la deduplicación. También puedes enviarexternal_idsi no tieneslead_id.event_time: acepta ISO8601 (ej:2025-12-19T10:30:00Z) o timestamp Unix en segundos.data: es un objeto libre del CRM (no array). Incluye aquí información del Lead/Conversión (email, teléfono, value, currency, clickID, etc.)value: número (ej:49.90). Úsalo si quieres reportar valor económico dinámico de la conversión.currency: código ISO 4217 en mayúsculas (ej:EUR,USD).phone: incluye prefijo internacional (formato E.164), por ejemplo+34600111222.
¿Van en data o fuera? Puedes enviar email, phone, value y currency tanto en top-level como dentro de data. La API los aceptará en cualquiera de los dos formatos y los extraerá a columnas dedicadas para facilitar el procesamiento.
Value / currency y el mapeo:
- Si tu mapeo configura un
valuey/ocurrencyfijo: esos valores se usarán como referencia para el envío. En ese caso, puedes omitirlos en el payload o enviarlos igualmente para trazabilidad. - Si tu mapeo no fija valor/moneda: envía
valueycurrencyen el payload para que el sistema los utilice al sincronizar con la plataforma.
Ejemplo (cURL)
curl -X POST https://www.referrertracker.com/api/conversions/ingest \
-H "Content-Type: application/json" \
-H "Authorization: Bearer TU_API_KEY" \
-d '{
"destination": "meta",
"conversion_type": "Lead",
"event_time": "2025-12-19T10:30:00Z",
"source": "hubspot",
"external_id": "contact_12345",
"data": {
"lead_id": "contact_12345",
"email": "cliente@example.com",
"phone": "+34600111222",
"value": 49.90,
"currency": "EUR",
"gclid": "Cj0KCQiA...",
"first_name": "Ana",
"last_name": "García"
}
}'
HubSpot
HubSpot es uno de los CRMs más populares y la integración es muy sencilla.
Configuración de Campos Personalizados
Primero, crea campos personalizados en HubSpot para almacenar los datos de tracking:
- Ve a Settings → Properties en HubSpot
- Selecciona el objeto Contact
- Click en Create property
- Crea los siguientes campos:
Campo: UTM Source Tipo: Single-line text Internal name: utm_source Campo: UTM Medium Tipo: Single-line text Internal name: utm_medium Campo: UTM Campaign Tipo: Single-line text Internal name: utm_campaign Campo: UTM Content Tipo: Single-line text Internal name: utm_content Campo: UTM Term Tipo: Single-line text Internal name: utm_term Campo: Google Click ID Tipo: Single-line text Internal name: gclid Campo: Facebook Click ID Tipo: Single-line text Internal name: fbclid Campo: Referrer URL Tipo: Single-line text Internal name: referrer
Formularios de HubSpot
Si usas formularios nativos de HubSpot:
- Edita tu formulario en HubSpot
- Añade los campos personalizados que creaste
- Configúralos como Hidden fields
- En el código embed del formulario, añade el script de Referrer Tracker
<!-- Script de HubSpot -->
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2.js"></script>
<script>
hbspt.forms.create({
region: "na1",
portalId: "TU_PORTAL_ID",
formId: "TU_FORM_ID"
});
</script>
<!-- Referrer Tracker -->
<script src="/referrer-tracker.min.js"></script>
<script>
ReferrerTracker.configure({
apiKey: 'TU_API_KEY'
});
</script>
Formularios HTML Personalizados
Si usas formularios HTML que envían a HubSpot vía API:
<form id="contactForm">
<input type="text" name="firstname" placeholder="Nombre" required>
<input type="email" name="email" placeholder="Email" required>
<!-- Campos ocultos para tracking -->
<input type="hidden" name="utm_source" id="rt_source">
<input type="hidden" name="utm_medium" id="rt_medium">
<input type="hidden" name="utm_campaign" id="rt_campaign">
<input type="hidden" name="utm_content" id="rt_content">
<input type="hidden" name="utm_term" id="rt_term">
<input type="hidden" name="gclid" id="rt_gclid">
<input type="hidden" name="fbclid" id="rt_fbclid">
<input type="hidden" name="referrer" id="rt_referrer">
<button type="submit">Enviar</button>
</form>
<script>
document.getElementById('contactForm').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
// Enviar a HubSpot
const response = await fetch('https://api.hsforms.com/submissions/v3/integration/submit/TU_PORTAL_ID/TU_FORM_ID', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
fields: Array.from(formData.entries()).map(([name, value]) => ({
name: name,
value: value
}))
})
});
if (response.ok) {
alert('¡Gracias! Nos pondremos en contacto contigo.');
}
});
</script>
Ventaja: Con esta configuración, cada lead en HubSpot tendrá automáticamente toda la información de origen, permitiéndote crear listas, workflows y reportes basados en la fuente de tus leads.
Salesforce
Salesforce permite capturar datos de tracking en los objetos Lead y Contact.
Crear Campos Personalizados
- Ve a Setup → Object Manager
- Selecciona Lead
- Click en Fields & Relationships
- Click en New y crea los siguientes campos:
Campo: UTM Source Tipo: Text(255) API Name: UTM_Source__c Campo: UTM Medium Tipo: Text(255) API Name: UTM_Medium__c Campo: UTM Campaign Tipo: Text(255) API Name: UTM_Campaign__c Campo: Google Click ID Tipo: Text(255) API Name: GCLID__c Campo: Facebook Click ID Tipo: Text(255) API Name: FBCLID__c
Web-to-Lead Forms
Si usas formularios Web-to-Lead de Salesforce:
<!-- Formulario Web-to-Lead de Salesforce --> <form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST"> <input type="hidden" name="oid" value="TU_ORG_ID"> <input type="hidden" name="retURL" value="http://tudominio.com/gracias"> <input type="text" name="first_name" placeholder="Nombre"> <input type="text" name="last_name" placeholder="Apellido"> <input type="email" name="email" placeholder="Email"> <!-- Campos de tracking --> <input type="hidden" name="00N..." id="rt_source"> <!-- Reemplaza 00N... con tu Field ID --> <input type="hidden" name="00N..." id="rt_medium"> <input type="hidden" name="00N..." id="rt_campaign"> <input type="hidden" name="00N..." id="rt_gclid"> <button type="submit">Enviar</button> </form>
Nota: En Salesforce, cada campo personalizado tiene un ID único (ej: 00N5g00000ABC123). Encuentra estos IDs en Setup → Object Manager → Lead → Fields & Relationships.
Zoho CRM
Zoho CRM permite capturar datos de tracking mediante formularios web.
Configuración Básica
- Ve a Setup → Modules and Fields
- Selecciona Leads
- Crea campos personalizados para cada parámetro de tracking
- En tu formulario web, añade campos ocultos con los nombres exactos
<form action="https://crm.zoho.com/crm/WebToLeadForm" method="POST"> <input type="hidden" name="xnQsjsdp" value="TU_TOKEN"> <input type="hidden" name="zc_gad" value=""> <input type="hidden" name="returnurl" value="http://tudominio.com/gracias"> <input type="text" name="First Name" placeholder="Nombre"> <input type="text" name="Last Name" placeholder="Apellido"> <input type="email" name="Email" placeholder="Email"> <!-- Campos de tracking --> <input type="hidden" name="UTM Source" id="rt_source"> <input type="hidden" name="UTM Medium" id="rt_medium"> <input type="hidden" name="UTM Campaign" id="rt_campaign"> <input type="hidden" name="GCLID" id="rt_gclid"> <button type="submit">Enviar</button> </form>
Otros CRMs
El mismo principio se aplica a cualquier CRM:
- Crea campos personalizados en tu CRM para almacenar los datos de tracking
- Añade campos ocultos en tu formulario con los IDs correctos (
rt_source,rt_medium, etc.) - El script rellena automáticamente estos campos antes del envío
- Los datos se envían junto con el resto del formulario a tu CRM
CRMs compatibles: Pipedrive, ActiveCampaign, Mailchimp, SendGrid, GetResponse, y cualquier CRM que acepte formularios HTML o tenga API REST.
