Payload de webhook de Instagram
Los webhooks de Instagram se envían para mensajes directos, reacciones y confirmaciones de lectura.
Payload de ejemplo
1 { 2 "event": { 3 "id": "evt_ig_abc123", 4 "channel": "instagram", 5 "timestamp": 1706640000.0, 6 "data": { 7 "timestamp": 1706640000.0, 8 "direction": "inbound", 9 "platform": "instagram", 10 "message_id": "igmid_xyz789", 11 "chat_id": "chat_456", 12 "content": "Hey! I saw your post about coaching services", 13 "is_from_account": false, 14 "account_id": "acc_123", 15 "sender_attendee": { 16 "attendee_id": "att_789", 17 "attendee_name": "johndoe", 18 "attendee_provider_id": "17841234567890", 19 "attendee_profile_url": "https://instagram.com/johndoe" 20 }, 21 "social_event_type": "message_received", 22 "attendees": [ 23 { 24 "attendee_id": "att_789", 25 "attendee_name": "johndoe", 26 "attendee_provider_id": "17841234567890" 27 } 28 ], 29 "attachments": [], 30 "usage_data": { 31 "prompt_tokens": 180, 32 "completion_tokens": 55, 33 "model": "gpt-4" 34 }, 35 "tools_called": [], 36 "analysis_result": { 37 "sentiment": "curious", 38 "intent": "inquiry" 39 } 40 } 41 }, 42 "lead_id": "lead_123", 43 "lead_contact": { 44 "number": "", 45 "email": "", 46 "name": "johndoe" 47 }, 48 "business_id": "biz_456", 49 "lead_created": true 50 }
Referencia de campos
Campos principales
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
timestamp | float | Sí | Marca de tiempo Unix epoch |
direction | string | Sí | inbound o outbound |
platform | string | Sí | Siempre instagram |
message_id | string | Sí | ID de mensaje de Instagram |
chat_id | string | Sí | ID del hilo de conversación |
content | string | Sí | Contenido del mensaje |
is_from_account | boolean | Sí | True si fue enviado por la cuenta conectada |
account_id | string | Sí | ID de cuenta de Instagram conectada |
social_event_type | string | Sí | Tipo de evento |
Valores de social_event_type
| Valor | Descripción |
|---|---|
message_received | Nuevo mensaje recibido |
message_reaction | Reacción añadida al mensaje |
message_read | Mensaje marcado como leído |
message_edited | Mensaje fue editado |
message_deleted | Mensaje fue eliminado |
Objeto sender_attendee
| Campo | Tipo | Descripción |
|---|---|---|
attendee_id | string | ID interno del asistente |
attendee_name | string | Nombre de usuario de Instagram |
attendee_provider_id | string | ID de usuario de Instagram |
attendee_profile_url | string | URL del perfil (opcional) |
Campos opcionales
| Campo | Tipo | Descripción |
|---|---|---|
attendees | array | Participantes de la conversación |
attachments | array | Adjuntos de medios |
usage_data | object | Uso de tokens LLM |
tools_called | array | Nombres de herramientas ejecutadas |
tool_calls | array | Datos sin procesar de llamadas a herramientas |
tool_results | object | Resultados de ejecución de herramientas |
analysis_result | object | Resultado del análisis de IA |
appointments | array | Citas extraídas |
execution_context | object | Contexto del activador de origen |
reaction | string | Emoji (para reacciones) |
reaction_sender | object | Información del remitente de la reacción |
Array de attachments
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID del adjunto |
type | string | image, video, audio, story_mention, reel |
url | string | URL de descarga |
mimetype | string | Tipo MIME |
unavailable | boolean | True si expiró |
size | object | Dimensiones |
Los prospectos de Instagram pueden no tener teléfono o correo inicialmente. Usa la conversación para recopilar información de contacto.