Mesa de ayuda: Zendesk, Freshdesk e Intercom
Sincroniza los tickets de tu mesa de ayuda (Zendesk, Freshdesk o Intercom) al CRM como Tickets, usando tu propia cuenta (modelo BYO).
La integración de Mesa de ayuda usa TU cuenta de Zendesk, Freshdesk o Intercom (modelo BYO, "trae tu propia cuenta"). Cada ticket creado o actualizado en tu mesa de ayuda se convierte en un Ticket en el CRM, con el Contacto vinculado automáticamente por el correo del solicitante (requester). No hay costo, margen ni intermediación de nuestra parte: los datos vienen directo de tu cuenta.
La integración nace inerte: no ocurre nada hasta que completes las credenciales y actives. Todos los secretos (signing secret, client secret, API tokens) se guardan cifrados en el CRM y nunca se muestran de vuelta. Cada plataforma tiene su propia tarjeta en Configuración → Integraciones; la URL del webhook es única (/api/inbound/helpdesk/…) y el CRM sabe de qué plataforma se trata por el token de la URL.
Requisitos previos
- Una cuenta de Zendesk, Freshdesk o Intercom con acceso de administrador para crear webhooks/triggers y ver los secretos de firma.
- Zendesk: el subdominio (la parte antes de .zendesk.com) y el Signing secret del webhook (Admin Center → Apps and integrations → Webhooks).
- Freshdesk: el dominio (ej.: miempresa.freshdesk.com) y un secreto compartido que defines. Intercom: el Client secret de tu app (Developer Hub).
- En Sellio, ser administrador para guardar las credenciales y activar la integración en Configuración → Integraciones.
Qué ocurre en cada ticket
- El ticket externo se convierte en un registro del objeto Ticket en el CRM (asunto, estado, prioridad y el correo del solicitante).
- El estado y la prioridad se convierten a los valores del CRM (ej.: Zendesk open → en atención, solved → resuelto; Freshdesk 2 → en atención, 4 → resuelto; Intercom open → en atención, closed → cerrado). Prioridad urgent/priority → crítica/alta.
- El Contacto se vincula por el correo del solicitante cuando ya existe en el CRM. Si no existe, el ticket se crea igualmente (sin vínculo) y puedes asociarlo después.
Zendesk
- Abre Configuración → Integraciones y localiza la tarjeta "Mesa de ayuda (Zendesk)".
- Completa el subdominio (la parte antes de .zendesk.com) y el Signing secret del webhook. Opcionalmente, el correo del agente y el API token, si quieres crear tickets desde el CRM. Haz clic en "Guardar credenciales".
- Copia la "URL del webhook" que aparece.
- En Zendesk Admin Center → Apps and integrations → Webhooks, crea un webhook (JSON) apuntando a esa URL y asócialo a un trigger que dispara al crear/actualizar tickets. El cuerpo del trigger debe incluir: id, subject, status, priority, requester_email. Zendesk firma cada llamada (header X-Zendesk-Webhook-Signature) con el Signing secret.
- Vuelve al CRM y haz clic en "Activar".
Freshdesk
Freshdesk no firma los webhooks nativamente. En su lugar, defines un secreto compartido y configuras la automatización para enviarlo en el header X-Freshdesk-Secret; el CRM verifica ese header en cada llamada.
- En el CRM, localiza la tarjeta "Mesa de ayuda (Freshdesk)".
- Completa el dominio (ej.: miempresa.freshdesk.com) y un Secreto del webhook (un texto que inventas). Opcionalmente, la API key, si quieres crear tickets desde el CRM. Haz clic en "Guardar credenciales".
- Copia la "URL del webhook".
- En Freshdesk → Admin → Automations, crea una regla que dispare al crear/actualizar un ticket con la acción "Trigger webhook" (POST, JSON) a esa URL, incluyendo el header X-Freshdesk-Secret con el secreto anterior. El cuerpo debe incluir: id, subject, status, priority, email.
- Vuelve al CRM y haz clic en "Activar".
Intercom
- En el CRM, localiza la tarjeta "Mesa de ayuda (Intercom)".
- Completa el Client secret de tu app Intercom (Developer Hub → tu app → Basic information). Opcionalmente, un Access token, si quieres crear conversaciones desde el CRM. Haz clic en "Guardar credenciales".
- Copia la "URL del webhook".
- En Intercom Developer Hub → tu app → Webhooks, apunta la URL de notificación a esa URL y suscríbete a los topics de conversación (ej.: conversation.user.created, conversation.user.replied). Intercom firma cada llamada con el Client Secret (header X-Hub-Signature, HMAC-SHA1).
- Vuelve al CRM y haz clic en "Activar".
Crear tickets desde el CRM (salida, opcional)
Si completas las credenciales de salida (Zendesk: correo + API token; Freshdesk: API key; Intercom: access token), el CRM también puede crear un ticket en tu mesa de ayuda. Es una función best-effort: si la llamada a la API falla, el CRM no rompe el flujo, solo informa el error. Dónde aparecen los tickets: en el objeto Tickets del CRM y, cuando el solicitante ya es un Contacto, vinculados a él.
Trata las URLs de los webhooks y los secretos como secretos. El CRM verifica la firma de cada llamada (Zendesk/Intercom por HMAC; Freshdesk por el secreto compartido); las llamadas inválidas se rechazan. Si intentas activar sin completar el secreto de verificación, la integración queda inerte: no se sincroniza nada hasta que todo esté en su lugar.
Cómo probar
- Zendesk: en Admin Center → Apps and integrations → Webhooks, usa el botón de prueba del webhook, o crea/actualiza un ticket real que dispare el trigger.
- Freshdesk: dispara la regla de automatización creando/actualizando un ticket; Intercom: genera una conversación de prueba que coincida con los topics suscritos.
- En el CRM, abre el objeto Tickets y confirma que el ticket apareció con asunto/estado/prioridad y vinculado al Contacto (si el correo del solicitante ya existe).
- Reenvía el mismo evento y confirma que el Ticket se actualiza, no se duplica (dedup por provider:id).
Solución de problemas
- Zendesk: firma inválida: el Signing secret guardado en el CRM difiere del webhook (header X-Zendesk-Webhook-Signature). Copia el secret del webhook en el Admin Center y vuelve a registrarlo.
- Freshdesk: llamadas rechazadas: la automatización debe enviar el header X-Freshdesk-Secret con EXACTAMENTE el secreto guardado en el CRM (Freshdesk no firma nativamente).
- Intercom: firma inválida: verifica el Client secret de la app (Developer Hub → Basic information); la firma es HMAC-SHA1 en el header X-Hub-Signature.
- No sincroniza: confirma que el cuerpo del trigger/webhook incluya los campos esperados (id, subject, status, priority y el correo del solicitante) y que la integración esté activada.
- Ticket sin contacto: el vínculo es por el correo del solicitante; si aún no es Contacto, el Ticket se crea sin vínculo. Un 404 en la URL indica integración desactivada o token cambiado.