Guía CRM
Captura un contacto sin duplicarlo.
El upsert normaliza el punto de contacto, resuelve la identidad canónica y conserva idempotencia ante reintentos.Envía una identidad estable
Usa una clave idempotente derivada del envío original de tu formulario. Reutiliza la misma clave y el mismo cuerpo al reintentar.
const contact = await hm.crm.contacts.upsert({
displayName: 'Ada Lovelace',
source: 'lead-form',
point: {
type: 'email',
value: 'ada@example.com',
consentStatus: 'granted',
},
}, { idempotencyKey: 'lead_form_01HORAMATCH' });Trata los conflictos como datos
- created indica si se creó una identidad nueva.
- revision alimenta el siguiente cambio con CAS.
- CRM_DUPLICATE_CONTACT nunca debe resolverse sobrescribiendo a ciegas.