Hooks Conversaciones
En esta sección tendremos un pantallazo de los hooks enviados a Suricata en la última versión (3.0).
Versión: 3.2 Release: 20/05/2025
Entrantes
const WEBHOOKURL_INTEGRATION_SURICATA = 'urlSuricataIntegration'
const merchantName = 'merchantName'
let urlMedia
let data = {
externalId: event?.conversationId,
merchant: merchantName,
content: {
action: 'messageUserBot',
direction: event?.integration?.includes('suricata') ? 'outgoing' : event?.direction,
eventId: event?.id,
fullName: event?.state?.user?.first_name || event?.state?.user?.nameUser || null,
source: event?.state?.user?.sienna_source ?? 1,
whatsapp: event?.state?.user?.phone || undefined,
payload: {
type: event?.type,
attachment: undefined,
text: event?.payload?.text,
tags: event?.integration?.includes('suricata')
? {
extra1: event?.tags?.message['suricata/suricata-meerkat:extra1'] ?? '',
extra2: event?.tags?.message['suricata/suricata-meerkat:extra2'] ?? '[email protected]',
extra3: event?.tags?.message['suricata/suricata-meerkat:extra3'] ?? 'Agente Humano'
}
: {},
...event?.payload
}
},
alarm: {
ticketId: event?.state?.user?.last_ticket ?? undefined,
direction: event?.integration?.includes('suricata') ? 'agent' : 'user'
}
}
if (['video', 'audio', 'image', 'file'].includes(event?.type)) {
console.log(['[Type]:', event.type])
const property = Object.keys(event?.payload)[0]
urlMedia = event?.payload[property]
}
if (urlMedia) {
try {
const urlAttach = `${WEBHOOKURL_INTEGRATION_SURICATA}/uploadFileToSuricata`
const { data: urlAttached } = await axios.post(urlAttach, { urlMedia }, { timeout:25000 })
data.content.payload.attachment = urlAttached?.url ?? undefined
} catch (err) {
console.log('[LOG.INCOMING]: Error al subir attachment', { urlMedia })
console.error({ ErrMessage: err.message })
}
}
try {
await axios.post(`https://backend.suricata.chat/v2/${merchantName}/chats`, data, { timeout:25000 })
} catch (err) {
console.log('[LOG.INCOMING]: Error al fetch API History', { payload: data })
console.log('[LOG.INCOMING]: Details', { body: err?.response?.data })
console.error({ ErrMessage: err.message })
}
Salientes
Last updated