Skip to content

Regal

Regal.io es una plataforma de agentes de IA de voz que ayuda a las empresas a impulsar mejores experiencias del cliente a través de conversaciones inteligentes y en tiempo real en todos los canales.

Esta integración es mantenida por Regal.

Al integrar Regal con Braze, puedes unificar datos de comportamiento e IA conversacional para orquestar recorridos del cliente personalizados y omnicanal. Braze captura señales a lo largo del ciclo de vida del cliente, que Regal utiliza para potenciar conversaciones con agentes de IA, enrutamiento y decisiones en tiempo real.

Usa datos de Braze para dar forma a lo que dicen tus agentes de IA, cómo responden y cuándo interactuar. Envía resultados de conversaciones e información de vuelta a Braze para mejorar la segmentación y el marketing del ciclo de vida. Desencadena llamadas y SMS impulsados por IA en momentos clave del recorrido del cliente, y haz seguimiento en Braze en función de lo que ocurra en cada conversación.

Requisitos previos

Requisito Descripción
Cuenta Regal Se necesita una cuenta Regal para beneficiarse de esta asociación.
Clave de API de Regal Una clave de API de Regal te permite enviar eventos de Braze a Regal.

Envía un correo electrónico a [email protected] para obtener esta clave.
Transformación de datos de Braze Se requiere una Transformación de datos para recibir datos de Regal.

Integración: envío de datos de Braze a Regal

Usa webhooks de Canvas o Campaign de Braze para enviar datos de perfil de cliente y eventos de Braze a Regal.

Paso 1: Crear nuevos contactos en Regal

Crea un Canvas o una Campaign que envíe webhooks a Regal cada vez que crees un nuevo perfil de Braze que deba estar disponible para llamadas y mensajes de texto en Regal.

  1. Crea un Canvas o una Campaign con el título “Crear nuevo contacto para Regal” y selecciona Basado en acciones como tipo de entrada.

  2. Establece la lógica de desencadenamiento como Evento personalizado y selecciona el evento que se dispara cuando se crea un perfil con un número de teléfono. Regal también recomienda añadir un filtro para confirmar que el campo de teléfono está configurado.

  3. En tu nueva plantilla de webhook, rellena los siguientes campos:

Encabezados de solicitud y método

Regal también requiere un encabezado HTTP para la autorización y un método HTTP. Lo siguiente ya está incluido en la plantilla como pares clave-valor en la pestaña Settings:

  • HTTP Method: POST
  • Request Headers:
    • Authorization: {{<REGAL_API_KEY>}}
    • Content-Type: application/json

Cuerpo de la solicitud

El único identificador obligatorio es un número de teléfono dentro de traits.phones. Usa el objeto traits.phones para asociar uno o más números de teléfono con un contacto. Cada número de teléfono puede almacenar su propia etiqueta, designación principal y estado de adhesión voluntaria para voz y SMS. Esta estructura es especialmente útil cuando un contacto tiene múltiples números de teléfono.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  "userId": "<uniqueIdentifier>",
  "traits": {
    "phones": {
      "<primaryPhoneNumber>": {
        "label": "Mobile",
        "isPrimary": true,
        "voiceOptIn": {
          "subscribed": true,
          "ip": "<ipAddress>",
          "source": "<leadSource>",
          "text": "<voiceOptInText>",
          "timestamp": "<timestamp>"
        },
        "smsOptIn": {
          "subscribed": true,
          "ip": "<ipAddress>",
          "source": "<leadSource>",
          "text": "<smsOptInText>",
          "timestamp": "<timestamp>"
        }
      },
      "<secondaryPhoneNumber>": {
        "label": "Home",
        "isPrimary": false,
        "voiceOptIn": {
          "subscribed": false,
          "ip": "<ipAddress>",
          "source": "<leadSource>",
          "text": "<voiceOptInText>",
          "timestamp": "<timestamp>"
        },
        "smsOptIn": {
          "subscribed": false,
          "ip": "<ipAddress>",
          "source": "<leadSource>",
          "text": "<smsOptInText>",
          "timestamp": "<timestamp>"
        }
      }
    },
    "email": "<email>",
    "firstName": "<firstName>",
    "lastName": "<lastName>",
    "custom1": "<custom1>",
    "custom2": "<custom2>"
  },
  "eventSource": "braze"
}

El ejemplo de carga útil anterior supone que los números de teléfono listados incluyen el estado actual de consentimiento para voz y SMS. Si no es así, puedes omitir voiceOptIn y smsOptIn al crear el contacto y configurar un Canvas o una Campaign independiente para actualizar el consentimiento en el número de teléfono correspondiente cuando se recopile la adhesión voluntaria.

Paso 2: Actualizar la información de adhesión voluntaria

Si la adhesión voluntaria y la exclusión pueden producirse en diferentes puntos de tu aplicación, actualiza Regal cuando los usuarios cambien su estado de suscripción.

Regal recomienda usar el esquema traits.phones para que puedas gestionar la adhesión voluntaria y la exclusión por número de teléfono, en lugar de a nivel de contacto.

Usa la siguiente configuración de Canvas para enviar información actualizada de adhesión voluntaria a Regal.

  1. Crea un nuevo Canvas o una nueva Campaign con el título “Enviar adhesión voluntaria o baja a Regal”.

  2. Selecciona una de las siguientes opciones de desencadenamiento y selecciona el campo que represente el estado de adhesión voluntaria del usuario:
    • Campo de perfil de usuario actualizado
    • Actualizar el estado del grupo de suscripción
    • Estado de la suscripción
  3. En tu nueva plantilla de webhook, rellena los siguientes campos:

Encabezados de solicitud y método

Regal también requiere un encabezado HTTP para la autorización y un método HTTP. Lo siguiente ya está incluido en la plantilla como pares clave-valor en la pestaña Settings:

  • HTTP Method: POST
  • Request Headers:
    • Authorization: {{<REGAL_API_KEY>}}
    • Content-Type: application/json

Cuerpo de la solicitud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "userId": "<uniqueIdentifier>",
  "traits": {
    "phones": {
      "<phoneNumber>": {
        "voiceOptIn": {
          "subscribed": "<voice_optin_subscribed>",
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<voiceOptInText>",
          "timestamp": "<timestamp>"
        },
        "smsOptIn": {
          "subscribed": "<sms_optin_subscribed>",
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<smsOptInText>",
          "timestamp": "<timestamp>"
        }
      }
    }
  },
  "eventSource": "braze"
}

También puedes incluir atributos adicionales del perfil de usuario en esta carga útil para mantener otros atributos actualizados al mismo tiempo.

Paso 3: Enviar eventos personalizados

Configura un Canvas o una Campaign para cada evento clave que quieras enviar a Regal.

Estos eventos hacen más que desencadenar comunicaciones (por ejemplo, un mensaje de texto de confirmación cuando un lead completa el registro). Proporcionan el contexto en tiempo real que impulsa cómo los agentes de IA de Regal hablan, toman decisiones y enrutan conversaciones a lo largo del recorrido del cliente. Al enviar datos de eventos y atributos desde Braze, permites que los agentes de IA adapten las conversaciones en función del comportamiento, las preferencias y la etapa del ciclo de vida de cada usuario.

Por ejemplo, los eventos y atributos de Braze se pueden usar en Regal para:

  • Personalizar el discurso del agente de IA: Hacer referencia al comportamiento reciente o al interés en un producto directamente en las conversaciones.
    • Ejemplo: Si un usuario exploró opciones de seguro de vida, el agente puede hacer referencia a contact.firstName y contact.brazeProductInterest en la conversación.
  • Impulsar la lógica dinámica de la conversación: Ajustar lo que el agente prioriza en tiempo real.
    • Ejemplo: Si contact.brazeAge es mayor de 65, priorizar la cobertura de Medicare; de lo contrario, centrarse en los planes ACA y el estado actual del seguro.
  • Habilitar el enrutamiento y la escalación inteligentes: Enrutar conversaciones en función del valor o la intención.
    • Ejemplo: Si contact.brazeLeadTier es “High Value”, transferir a un agente senior después de la calificación; de lo contrario, continuar con el agente de IA.
  • Alinear mensajes y ofertas: Adaptar lo que el agente presenta en función del contexto de la campaña.
    • Ejemplo: Si contact.brazeCampaignName es “Spring Mortgage Promo”, destacar la oferta promocional durante la conversación.

Crea un nuevo Canvas o una nueva Campaign con el título “Enviar evento de interés en producto a Regal”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
  "userId": "<uniqueIdentifier>",
  "traits": {
    "phones": {
      "<primaryPhoneNumber>": {
        "label": "Mobile",
        "isPrimary": true,
        "voiceOptIn": {
          "subscribed": true,
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<voiceOptInText>",
          "timestamp": "<timestamp>"
        },
        "smsOptIn": {
          "subscribed": true,
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<smsOptInText>",
          "timestamp": "<timestamp>"
        }
      },
      "<secondaryPhoneNumber>": {
        "label": "Home",
        "isPrimary": false,
        "voiceOptIn": {
          "subscribed": false,
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<voiceOptInText>",
          "timestamp": "<timestamp>"
        },
        "smsOptIn": {
          "subscribed": false,
          "ip": "<ipAddress>",
          "source": "<optInSource>",
          "text": "<smsOptInText>",
          "timestamp": "<timestamp>"
        }
      }
    },
    "email": "<email>",
    "firstName": "<firstName>",
    "lastName": "<lastName>",
    "brazeProductInterest": "Life Insurance",
    "brazeAge": 68,
    "brazeLeadTier": "High Value",
    "brazeCampaignName": "Spring Insurance Promo"
  },
  "name": "Product Interest Captured",
  "properties": {
    "action": "Viewed Product Comparison",
    "productCategory": "Life Insurance",
    "intentScore": "High",
    "lastPage": "Compare Life Insurance Plans",
    "readyToCommit": true
  },
  "eventSource": "braze"
}

Atributos de contacto actualizados

Regal también recomienda enviar atributos clave del perfil de usuario en las cargas útiles de eventos para que Regal tenga atributos de contacto actualizados cuando ocurran eventos clave.

Integración: envío de datos de Regal a Braze

Usa los webhooks de informes de Regal y la Transformación de datos de Braze para enviar eventos de informes de Regal (como SMS.sent y call.completed) a Braze. Después de mapear estos eventos, aparecen en los perfiles de usuario y están disponibles para segmentación, Canvas y Campaigns.

Paso 1: Crear una Transformación de datos en Braze

Crea una Transformación de datos por cada webhook de Regal que planees enviar a Braze.

Para crear una Transformación de datos:

  1. Ve a la página Transformations en tu panel de Braze.
  2. Dale un nombre a tu transformación y haz clic en Create transformation.
  3. En la lista de transformaciones, selecciona Ver acciones y selecciona Copy webhook URL.

Paso 2: Habilitar webhooks de informes en Regal

Para configurar webhooks de informes:

  1. Ve a la aplicación Regal y abre la página de Settings.

  2. En la sección Reporting Webhooks, haz clic en Create Webhooks.

  3. En la entrada del punto de conexión del webhook, añade la URL del webhook de Transformación de datos de Braze para la Transformación de datos asociada.

Actualización de un punto de conexión

Cuando editas un punto de conexión, la caché puede tardar hasta 5 minutos en actualizarse y enviar eventos a tu nuevo punto de conexión.

Reintentos

Actualmente, Regal no reintenta estos eventos. Si Braze no responde en 5 segundos, Regal descarta el evento. Regal planea añadir reintentos en una futura versión.

Eventos

Para la lista completa de eventos de informes, definiciones de propiedades y ejemplos de cargas útiles, consulta la guía de webhooks de informes de Regal.

Paso 3: Transformar los eventos de Regal en eventos de Braze

La característica de Transformación de datos de Braze te permite mapear los eventos entrantes de Regal en el formato necesario para añadirlos como atributos, eventos o compras en Braze.

  1. Dale un nombre a tu Transformación de datos. Se recomienda configurar una Transformación de datos por webhook de evento.

  2. Para probar la conexión, crea una llamada saliente desde el escritorio del agente de Regal a tu teléfono y envía el formulario de resumen de conversación para crear un evento call.completed.

  3. Determina qué identificadores utilizarás para mapear tus contactos de Regal a tus perfiles de Braze. Los identificadores disponibles en los eventos de Regal incluyen:

    • userId - solo se establece en eventos si previamente se ha enviado este identificador para un contacto
    • traits.phone
    • traits.email - solo se establece en eventos si previamente se ha enviado este identificador para un contacto

En las cargas útiles de eventos de Braze a Regal, Regal recomienda usar traits.phones para admitir múltiples números de teléfono y consentimiento a nivel de teléfono. En los eventos de informes de Regal enviados de vuelta a Braze, traits.phone puede seguir apareciendo como identificador en las cargas útiles de eventos.

Identificadores compatibles con Braze

  • Braze no admite números de teléfono como identificador. Para utilizarlo como identificador, el número de teléfono puede configurarse como alias de usuario en Braze.
  • Al utilizar la Transformación de datos de Braze, la dirección de correo electrónico puede utilizarse como identificador. Si la dirección de correo electrónico existe como perfil en Braze, se actualizará el perfil existente. Si la dirección de correo electrónico aún no existe en Braze, se creará un perfil solo para correo electrónico.

Casos de uso

Desencadenar un correo electrónico de Braze basado en una disposición de llamada en Regal

A continuación se muestra un ejemplo de carga útil para un evento call.completed en Regal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  "userId": "123",
  "traits": {
    "phone": "+17625555555",
    "email": "[email protected]"
  },
  "name": "call.completed",
  "properties": {
    "agent_firstname": "Rebecca",
    "agent_fullname": "Rebecca Greene",
    "agent_id": "[email protected]",
    "direction": "OUTBOUND",
    "regal_voice_phone": "+19545558563",
    "regal_voice_phone_internal_name": "Sales Line",
    "contact_phone": "+17625555555",
    "call_id": "WTxxxxx9",
    "type": "Outbound Call",
    "disposition": "Converted During Convo",
    "notes": null,
    "objections": null,
    "campaign_name": "Life Insurance Quote Follow Up",
    "campaign_friendly_id": "445",
    "started_at": 1657855046,
    "ended_at": 1657855053,
    "completed_at": 1657855059,
    "talk_time": 7,
    "wrapup_time": 6,
    "handle_time": 13,
    "journey_uuid": null,
    "journey_name": null,
    "journey_friendly_id": null
  },
  "originalTimestamp": "1657855059",
  "eventSource": "Regal Voice"
}

A continuación se muestra un ejemplo de Transformación de datos para mapear esto a un evento personalizado en Braze.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// The Braze /users/track endpoint expects timestamps in an ISO 8601 format. To use the Unix timestamp within Regal's call.completed event payload as the event timestamp in Braze must first be converted to ISO 8601. This can be done with the following code:
let unixTimestamp = payload.originalTimestamp;
let dateObj = new Date(unixTimestamp * 1000);
let isoString = dateObj.toISOString();

// This is a default template you can use as a starting point. Feel free to delete this entirely to start from scratch or to delete specific components as you see fit.

// First, this code defines a variable, "brazecall", to build up a /users/track request
// Everything from the incoming webhook is accessible via the special variable "payload". As such, you can template in desired values in your /users/track request with JS dot notation, such as payload.x.y.z

let brazecall = {
 "events": [
   {
     "external_id": payload.userId,
     "name": "Call Completed",
     "time": isoString,
     "_update_existing_only": false,
     "properties": {
       "agent_firstname": payload.properties.agent_firstname,
       "agent_fullname": payload.properties.agent_fullname,
       "agent_id": payload.properties.agent_id,
       "direction": payload.properties.direction,
       "regal_voice_phone": payload.properties.regal_voice_phone,
       "regal_voice_phone_internal_name": payload.properties.regal_voice_phone_internal_name,
       "contact_phone": payload.properties.contact_phone,
       "call_id": payload.properties.call_id,
       "type": payload.properties.type,
       "disposition": payload.properties.disposition,
       "notes": payload.properties.notes,
       "objections": payload.properties.objections,
       "campaign_name": payload.properties.campaign_name,
       "campaign_friendly_id": payload.properties.campaign_friendly_id,
       "started_at": payload.properties.started_at,
       "ended_at": payload.properties.ended_at,
       "completed_at": payload.properties.completed_at,
       "talk_time": payload.properties.talk_time,
       "wrapup_time": payload.properties.wrapup_time,
       "handle_time": payload.properties.handle_time,
       "journey_uuid": payload.properties.journey_uuid,
       "journey_name": payload.properties.journey_name,
       "journey_friendly_id": payload.properties.journey_friendly_id
     }
   }
 ]
};

// After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;

Actualizar los atributos del perfil en Braze basándote en los eventos contact.attribute.edited de Regal

A continuación se muestra un ejemplo de carga útil para un evento contact.attribute.edited en Regal. Regal envía este evento cuando un agente actualiza un atributo en el perfil de un contacto durante una conversación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "userId": "123",
  "traits": {
    "phone": "+17625555555",
    "email": "[email protected]"
  },
  "name": "contact.attribute.edited",
  "properties": {
    "agent_email": "[email protected]",
    "contact_phone": "+17625555555",
    "changes": {
      "custom_properties": {
        "annual_income": {
          "old_value": "150,000",
          "new_value": "300,000"
        }
      }
    },
    "created_at": "1657855462"
  },
  "originalTimestamp": "1657855462",
  "eventSource": "Regal Voice"
}

A continuación se muestra un ejemplo de Transformación de datos para mapear los nuevos valores de propiedades personalizadas a los atributos pertinentes de tus perfiles de Braze:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// This is an example template you can use as a starting point. Feel free to delete this entirely to start from scratch or to delete specific components as you see fit.

// Capture the key's updated property value within the 'changes' object and store this in an attributes variable that can be used in the /users/track request

const changes = payload.properties.changes.custom_properties;

const attributes = {};
for (const key in changes) {
 attributes[key] = changes[key].new_value;
}

// First, this code defines a variable, "brazecall", to build up a /users/track request
// Everything from the incoming webhook is accessible via the special variable "payload". As such, you can template in desired values in your /users/track request with JS dot notation, such as payload.x.y.z

const brazecall = {
 "attributes": [
   {
     "external_id": payload.userId,
     "_update_existing_only": false,
     ...attributes
   }
 ]
};

// After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;

Mantén sincronizados tus experimentos en Braze y Regal mediante eventos contact.experiment.assigned

A continuación se muestra un ejemplo de carga útil para un evento contact.experiment.assigned en Regal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "userId": "123",
  "traits": {
    "phone": "+17625555555",
    "email": "[email protected]"
  },
  "name": "contact.experiment.assigned",
  "properties": {
    "experiment_name": "Post Call Offer Test",
    "experiment_id": "xxxx-xxxx-xxxx-xxxx",
    "experiment_variant": "Aggressive Offer - 50%",
    "journey_uuid": "xxxx-xxxx-xxxx-xxxx",
    "journey_friendly_id": 220,
    "journey_name": "Post Call Follow Up"
  },
  "originalTimestamp": "1657855118",
  "eventSource": "Regal Voice"
}

A continuación se muestra un ejemplo de Transformación de datos para mapear esto a un evento personalizado en Braze.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// The Braze /users/track endpoint expects timestamps in an ISO 8601 format. To use the Unix timestamp within Regal's call.completed event payload as the event timestamp in Braze, it must first be converted to ISO 8601. This can be done with the following code:
let unixTimestamp = payload.originalTimestamp;
let dateObj = new Date(unixTimestamp * 1000);
let isoString = dateObj.toISOString();

// This is an example template you can use as a starting point. Feel free to delete this entirely to start from scratch or to delete specific components as you see fit.

// First, this code defines a variable, "brazecall", to build up a /users/track request
// Everything from the incoming webhook is accessible via the special variable "payload". As such, you can template in desired values in your /users/track request with JS dot notation, such as payload.x.y.z
let brazecall = {
 "events": [
   {
     "external_id": payload.userId,
     "_update_existing_only": false,
     "name": "Contact Experiment Assigned",
     "time": isoString,
     "properties": {
       "experiment_name": payload.properties.experiment_name,
       "experiment_id": payload.properties.experiment_id,
       "experiment_variant": payload.properties.experiment_variant,
       "journey_uuid": payload.properties.journey_uuid,
       "journey_friendly_id": payload.properties.journey_friendly_id,
       "journey_name": payload.properties.journey_name
     }
   }
 ]
};

// After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;

Cancelar la suscripción de un contacto en Braze basándote en un evento contact.unsubscribed de Regal

A continuación se muestra un ejemplo de carga útil para un evento contact.unsubscribed en Regal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "userId": "123",
  "traits": {
    "phone": "+17625555555",
    "email": "[email protected]",
    "ip": "78.97.213.166"
  },
  "name": "contact.unsubscribed",
  "properties": {
    "new_subscription": true,
    "channel": "voice",
    "text": null,
    "ip": "207.38.149.143",
    "source": "regalvoice.agent_desktop",
    "timestamp": "1657855229"
  },
  "originalTimestamp": "1657855230",
  "eventSource": "Regal Voice"
}

A continuación se muestra un ejemplo de Transformación de datos para cancelar la suscripción del contacto en Braze.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// This is an example template you can use as a starting point. Feel free to delete this entirely to start from scratch or to delete specific components as you see fit.

// First, this code defines a variable, "brazecall", to build up a /users/track request
// Everything from the incoming webhook is accessible via the special variable "payload". As such, you can template in desired values in your /users/track request with JS dot notation, such as payload.x.y.z

let brazecall = {
 "attributes": [
   {
     "external_id": payload.userId,
     "_update_existing_only": true,
     "subscription_groups" : [{
       "subscription_group_id": "YOUR SUBSCRIPTION GROUP ID",
       "subscription_state": "unsubscribed"
     }]
   }
 ]
};

// After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;

Desencadenar recorridos de seguimiento personalizados en Braze basándote en eventos call.analysis.available de Regal

Usa el evento call.analysis.available de Regal para identificar la razón principal por la que un cliente no convirtió y desencadenar un recorrido de seguimiento personalizado en Braze.

Por ejemplo:

  • Cuando la objeción principal es el precio, envía un correo electrónico de seguimiento orientado al valor.
  • Cuando la objeción principal es el momento, coloca al usuario en una secuencia de nurturing para una reconsideración posterior.
  • Cuando la objeción principal es la confianza, envía testimonios, calificaciones o garantías de cumplimiento.
  • Cuando needs_human_agent es verdadero, notifica a un equipo de ventas o soporte y suprime los mensajes automatizados adicionales.

A continuación se muestra un ejemplo de carga útil para un evento call.analysis.available en Regal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
  "traits": {
    "phone": "+1XXXXXXXXXX",
    "email": "[email protected]"
  },
  "name": "call.analysis.available",
  "brand": "circle-bank",
  "contact_email": "[email protected]",
  "contact_phone": "+1XXXXXXXXXX",
  "created_at": "1754079836",
  "entity_type": "event",
  "event_id": "9f5d8dbb2973b0e2359c6fd34111111",
  "event_type": "regal_voice_event",
  "external_id": "41dd1aa2-1111-f011-a2d5-00505611111",
  "original_timestamp": "1754079835",
  "profile_id": "62653af1111111173af128291e92",
  "properties": {
    "agent_email": "[email protected]",
    "call_analysis": {
      "purchase_intent": "medium",
      "primary_objection": "price",
      "secondary_objection": "needs_to_compare",
      "product_interest": "Life Insurance",
      "follow_up_required": true,
      "follow_up_email_text": "Thanks for speaking with us today. I know cost is top of mind, so I wanted to send over a simple summary of the life insurance options we discussed and what may fit your budget.",
      "recommended_next_action": "send_value_oriented_follow_up",
      "needs_human_agent": false,
      "customer_sentiment_label": "interested_but_hesitant"
    },
    "contact_phone": "+1XXXXXXXXXX",
    "incoming_sip_headers": {
      "Via": "SIP/2.0/UDP srv1.example.com;branch=z9hG4bK776asdhds",
      "From": "<sip:[email protected]>;tag=1928301774",
      "Call-ID": "a84b4c76e66710"
    },
    "is_ai_agent": true,
    "outgoing_sip_headers": {
      "Via": "SIP/2.0/TCP srv2.example.com;branch=z9hG4bKgsdh7723",
      "To": "<sip:[email protected]>",
      "User-Agent": "RegalVoiceAI/1.0"
    },
    "task_id": "WT7f3ea47fa6e6055aa847f0a62111111"
  },
  "originalTimestamp": "1754079835",
  "source": "Regal Voice"
}

Usa una Transformación de datos para mapear los campos de call_analysis (como primary_objection y needs_human_agent) a eventos personalizados o atributos de perfil de Braze. Luego construye la lógica de Canvas o Campaign en Braze que se ramifique en función de esos valores.

New Stuff!