Regal
Regal.io ist eine Voice-KI-Agenten-Plattform, die Unternehmen dabei unterstützt, durch intelligente Realtime-Gespräche über verschiedene Kanäle hinweg bessere Kundenerlebnisse zu schaffen.
Diese Integration wird von Regal gepflegt.
Durch die Integration von Regal mit Braze können Sie Verhaltensdaten und konversationelle KI vereinen, um personalisierte, Omnichannel-Customer-Journeys zu orchestrieren. Braze erfasst Signale über den gesamten Kundenlebenszyklus, die Regal nutzt, um KI-Agenten-Gespräche, Routing und Realtime-Entscheidungen zu steuern.
Verwenden Sie Braze-Daten, um zu bestimmen, was Ihre KI-Agenten sagen, wie sie reagieren und wann sie aktiv werden. Senden Sie Gesprächsergebnisse und Insights zurück an Braze, um Targeting und Lifecycle-Marketing zu verbessern. Lösen Sie KI-gestützte Anrufe und SMS an wichtigen Punkten der Customer Journey aus und setzen Sie in Braze basierend auf dem Gesprächsverlauf nach.
Voraussetzungen
| Anforderung | Beschreibung |
|---|---|
| Regal-Konto | Ein Regal-Konto ist erforderlich, um diese Partnerschaft nutzen zu können. |
| Regal-API-Schlüssel | Ein Regal-API-Schlüssel ermöglicht es Ihnen, Events von Braze an Regal zu senden. Senden Sie eine E-Mail an [email protected], um diesen Schlüssel zu erhalten. |
| Braze-Datentransformation | Eine Datentransformation ist erforderlich, um Daten von Regal zu empfangen. |
Integration: Daten von Braze an Regal senden
Verwenden Sie Braze-Canvas- oder Campaign-Webhooks, um Kundenprofil- und Eventdaten von Braze an Regal zu senden.
Schritt 1: Neue Kontakte in Regal erstellen
Erstellen Sie ein Canvas oder eine Campaign, die Webhooks an Regal sendet, wenn Sie ein neues Braze-Profil erstellen, das für Anrufe und Textnachrichten in Regal verfügbar sein soll.
-
Erstellen Sie ein Canvas oder eine Campaign mit dem Titel „Create New Contact for Regal“ und wählen Sie Action-Based als Entry-Typ.
-
Setzen Sie die Trigger-Logik auf Custom Event und wählen Sie dann das Event aus, das ausgelöst wird, wenn ein Profil mit einer Telefonnummer erstellt wird. Regal empfiehlt außerdem, einen Filter hinzuzufügen, um sicherzustellen, dass das Telefonfeld gesetzt ist.
-
Füllen Sie in Ihrem neuen Webhook-Template die folgenden Felder aus:
- Webhook-URL: https://events.regalvoice.com/events
- Request Body: Raw Text
Anfrage-Header und Methode
Regal erfordert außerdem einen HTTP-Header für die Autorisierung und eine HTTP-Methode. Die folgenden sind im Template als Schlüssel-Wert-Paare im Tab Settings enthalten:
- HTTP-Methode: POST
- Anfrage-Header:
- Authorization:
{{<REGAL_API_KEY>}} - Content-Type: application/json
- Authorization:
Request Body
Der einzige erforderliche Bezeichner ist eine Telefonnummer innerhalb von traits.phones. Verwenden Sie das Objekt traits.phones, um einem Kontakt eine oder mehrere Telefonnummern zuzuordnen. Jede Telefonnummer kann ein eigenes Label, eine primäre Kennzeichnung sowie den Opt-in-Status für Sprache und SMS speichern. Diese Struktur ist besonders nützlich, wenn ein Kontakt mehrere Telefonnummern hat.
{
"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"
}
Dieses Payload-Beispiel setzt voraus, dass die aufgeführten Telefonnummern den aktuellen Einwilligungsstatus für Sprache und SMS enthalten. Falls das nicht der Fall ist, können Sie voiceOptIn und smsOptIn beim Erstellen des Kontakts weglassen und ein separates Canvas oder eine separate Campaign einrichten, um die Einwilligung für die entsprechende Telefonnummer zu aktualisieren, sobald das Opt-in erfasst wird.
Schritt 2: Opt-in-Informationen aktualisieren
Wenn Opt-in und Opt-out an verschiedenen Stellen in Ihrer App auftreten können, aktualisieren Sie Regal, wenn Nutzer:innen ihren Abo-Status ändern.
Regal empfiehlt die Verwendung des traits.phones-Schemas, damit Sie Opt-in und Opt-out pro Telefonnummer verwalten können, anstatt auf Kontaktebene.
Verwenden Sie die folgende Canvas-Konfiguration, um aktuelle Opt-in-Informationen an Regal zu senden.
-
Erstellen Sie ein neues Canvas oder eine neue Campaign mit dem Titel „Send Opt In or Out to Regal“.
- Wählen Sie eine der folgenden Trigger-Optionen aus und wählen Sie dann das Feld, das den Opt-in-Status der Nutzer:innen darstellt:
- User Profile Field Updated
- Update Subscription Group Status
- Subscription Status
- Füllen Sie in Ihrem neuen Webhook-Template die folgenden Felder aus:
- Webhook-URL: https://events.regalvoice.com/events
- Request Body: Raw Text
Anfrage-Header und Methode
Regal erfordert außerdem einen HTTP-Header für die Autorisierung und eine HTTP-Methode. Die folgenden sind im Template als Schlüssel-Wert-Paare im Tab Settings enthalten:
- HTTP-Methode: POST
- Anfrage-Header:
- Authorization:
{{<REGAL_API_KEY>}} - Content-Type: application/json
- Authorization:
Request Body
{
"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"
}
Sie können in dieses Payload auch zusätzliche Nutzerprofil-Attribute aufnehmen, um andere Attribute gleichzeitig aktuell zu halten.
Schritt 3: Angepasste Events senden
Richten Sie ein Canvas oder eine Campaign für jedes wichtige Event ein, das Sie an Regal senden möchten.
Diese Events dienen nicht nur dazu, Kontaktaufnahmen auszulösen (zum Beispiel eine Bestätigungsnachricht, wenn ein Lead die Registrierung abschließt). Sie liefern den Realtime-Kontext, der bestimmt, wie KI-Agenten von Regal sprechen, Entscheidungen treffen und Gespräche entlang der Customer Journey weiterleiten. Indem Sie Eventdaten und Attribute aus Braze senden, ermöglichen Sie KI-Agenten, Gespräche basierend auf dem Verhalten, den Präferenzen und der Lebenszyklusphase jeder Nutzer:in anzupassen.
Zum Beispiel können Braze-Events und -Attribute in Regal verwendet werden, um:
- KI-Agenten-Sprache zu personalisieren: Aktuelles Verhalten oder Produktinteresse direkt in Gesprächen referenzieren.
- Beispiel: Wenn eine Nutzer:in Lebensversicherungsoptionen erkundet hat, kann der Agent
contact.firstNameundcontact.brazeProductInterestim Gespräch referenzieren.
- Beispiel: Wenn eine Nutzer:in Lebensversicherungsoptionen erkundet hat, kann der Agent
- Dynamische Gesprächslogik zu steuern: In Realtime anpassen, was der Agent priorisiert.
- Beispiel: Wenn
contact.brazeAgegrößer als 65 ist, Medicare-Abdeckung priorisieren; andernfalls den Fokus auf ACA-Pläne und den aktuellen Versicherungsstatus legen.
- Beispiel: Wenn
- Intelligentes Routing und Eskalation zu ermöglichen: Gespräche basierend auf Wert oder Absicht weiterleiten.
- Beispiel: Wenn
contact.brazeLeadTier„High Value“ ist, nach der Qualifizierung an einen Senior-Agenten weiterleiten; andernfalls mit dem KI-Agenten fortfahren.
- Beispiel: Wenn
- Messaging und Angebote abzustimmen: Anpassen, was der Agent basierend auf dem Campaign-Kontext präsentiert.
- Beispiel: Wenn
contact.brazeCampaignName„Spring Mortgage Promo“ ist, das Aktionsangebot während des Gesprächs hervorheben.
- Beispiel: Wenn
Erstellen Sie ein neues Canvas oder eine neue Campaign mit dem Titel „Send Product Interest Event to Regal.“
{
"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"
}
Aktuelle Kontakt-Attribute
Regal empfiehlt außerdem, wichtige Nutzerprofil-Attribute in den Event-Payloads mitzusenden, damit Regal bei wichtigen Events über aktuelle Kontakt-Attribute verfügt.

Wenn Sie Fragen dazu haben, welche Events Sie an Regal senden sollten oder wie Sie diese Canvases und Campaigns einrichten, schreiben Sie eine E-Mail an [email protected].
Integration: Daten von Regal an Braze senden
Verwenden Sie Regal Reporting Webhooks und Braze-Datentransformation, um Regal-Reporting-Events (wie SMS.sent und call.completed) an Braze zu senden. Nachdem Sie diese Events zugeordnet haben, erscheinen sie in Nutzerprofilen und stehen für Segmentierung, Canvas und Campaigns zur Verfügung.
Schritt 1: Eine Datentransformation in Braze erstellen
Erstellen Sie eine Datentransformation für jeden Regal-Webhook, den Sie an Braze senden möchten.
So erstellen Sie eine Datentransformation:
- Navigieren Sie zur Seite Transformations in Ihrem Braze-Dashboard.
- Geben Sie Ihrer Transformation einen Namen und klicken Sie auf Create transformation.
- Wählen Sie in der Liste der Transformationen View actions und dann Copy webhook URL aus.
Schritt 2: Reporting Webhooks in Regal aktivieren
So richten Sie Reporting Webhooks ein:
-
Öffnen Sie die Regal-App und navigieren Sie zur Seite Settings.
-
Klicken Sie im Abschnitt Reporting Webhooks auf Create Webhooks.
-
Geben Sie im Eingabefeld für den Webhook-Endpunkt die Braze-Datentransformations-Webhook-URL für die zugehörige Datentransformation ein.
Einen Endpunkt aktualisieren
Wenn Sie einen Endpunkt bearbeiten, kann es bis zu 5 Minuten dauern, bis der Cache aktualisiert wird und Events an Ihren neuen Endpunkt gesendet werden.
Wiederholungsversuche
Derzeit wiederholt Regal diese Events nicht. Wenn Braze nicht innerhalb von 5 Sekunden antwortet, verwirft Regal das Event. Regal plant, Wiederholungsversuche in einem zukünftigen Release hinzuzufügen.
Events
Die vollständige Liste der Reporting-Events, Eigenschaftsdefinitionen und Beispiel-Payloads finden Sie in Regals Reporting Webhooks-Leitfaden.
Schritt 3: Regal-Events in Braze-Events transformieren
Das Braze-Feature Datentransformation ermöglicht es Ihnen, eingehende Regal-Events in das Format zu überführen, das für das Hinzufügen als Attribute, Events oder Käufe in Braze erforderlich ist.
-
Benennen Sie Ihre Datentransformation. Es wird empfohlen, pro Event-Webhook eine Datentransformation einzurichten.
-
Um die Verbindung zu testen, erstellen Sie einen ausgehenden Anruf vom Regal Agent Desktop an Ihr Telefon und senden Sie das Gesprächszusammenfassungsformular ab, um ein
call.completed-Event zu erzeugen. -
Bestimmen Sie, welche Bezeichner Sie verwenden möchten, um Ihre Regal-Kontakte Ihren Braze-Profilen zuzuordnen. Die verfügbaren Bezeichner in Regal-Events umfassen:
userId– wird nur bei Events gesetzt, wenn Sie diesen Bezeichner zuvor für einen Kontakt gesendet habentraits.phonetraits.email– wird nur bei Events gesetzt, wenn Sie diesen Bezeichner zuvor für einen Kontakt gesendet haben
In Braze-zu-Regal-Event-Payloads empfiehlt Regal die Verwendung von traits.phones, um mehrere Telefonnummern und Einwilligungen auf Telefonnummernebene zu unterstützen. In Regal-Reporting-Events, die zurück an Braze gesendet werden, kann traits.phone weiterhin als Bezeichner in Event-Payloads erscheinen.
Von Braze unterstützte Bezeichner
- Braze unterstützt keine Telefonnummern als Bezeichner. Um diese als Bezeichner zu verwenden, kann die Telefonnummer als Nutzer-Alias in Braze festgelegt werden.
- Bei der Verwendung von Braze-Datentransformation kann die E-Mail-Adresse als Bezeichner verwendet werden. Wenn die E-Mail-Adresse bereits als Profil in Braze existiert, wird das vorhandene Profil aktualisiert. Wenn die E-Mail-Adresse noch nicht in Braze existiert, wird ein reines E-Mail-Profil erstellt.
Anwendungsfälle
Eine E-Mail aus Braze basierend auf einer Anrufdisposition in Regal triggern
Die folgende Beispiel-Payload zeigt ein call.completed-Event in Regal.
{
"userId": "123",
"traits": {
"phone": "+15555550123",
"email": "[email protected]"
},
"name": "call.completed",
"properties": {
"agent_firstname": "Alex",
"agent_fullname": "Alex Lee",
"agent_id": "[email protected]",
"direction": "OUTBOUND",
"regal_voice_phone": "+15555550200",
"regal_voice_phone_internal_name": "Sales Line",
"contact_phone": "+15555550123",
"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"
}
Die folgende Beispiel-Datentransformation bildet dies auf ein angepasstes Event in Braze ab.
// 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 and create a new template, 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;
Profilattribute in Braze basierend auf contact.attribute.edited-Events von Regal aktualisieren
Die folgende Beispiel-Payload zeigt ein contact.attribute.edited-Event in Regal. Regal sendet dieses Event, wenn ein Agent während eines Gesprächs ein Attribut im Profil eines Kontakts aktualisiert.
{
"userId": "123",
"traits": {
"phone": "+15555550123",
"email": "[email protected]"
},
"name": "contact.attribute.edited",
"properties": {
"agent_email": "[email protected]",
"contact_phone": "+15555550123",
"changes": {
"custom_properties": {
"annual_income": {
"old_value": "150,000",
"new_value": "300,000"
}
}
},
"created_at": "1657855462"
},
"originalTimestamp": "1657855462",
"eventSource": "Regal Voice"
}
Die folgende Beispiel-Datentransformation bildet die neuen angepassten Eigenschaftswerte auf die relevanten Attribute in Ihren Braze-Profilen ab:
// This is an example template you can use as a starting point. Feel free to delete this entirely and create a new template, 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;
Halten Sie Ihre Experimente in Braze und Regal mithilfe von contact.experiment.assigned-Events synchron
Die folgende Beispiel-Payload zeigt ein contact.experiment.assigned-Event in Regal.
{
"userId": "123",
"traits": {
"phone": "+15555550123",
"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"
}
Die folgende Beispiel-Datentransformation bildet dies auf ein angepasstes Event in Braze ab.
// 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 and create a new template, 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;
Einen Kontakt in Braze basierend auf contact.unsubscribed-Events von Regal abmelden
Die folgende Beispiel-Payload zeigt ein contact.unsubscribed-Event in Regal.
{
"userId": "123",
"traits": {
"phone": "+15555550123",
"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"
}
Die folgende Beispiel-Datentransformation meldet den Kontakt in Braze ab.
// This is an example template you can use as a starting point. Feel free to delete this entirely and create a new template, 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;
Maßgeschneiderte Follow-up-Journeys in Braze basierend auf call.analysis.available-Events von Regal triggern
Verwenden Sie das call.analysis.available-Event von Regal, um den Hauptgrund zu identifizieren, warum Kund:innen nicht konvertiert haben, und eine maßgeschneiderte Follow-up-Journey in Braze zu triggern.
Zum Beispiel:
- Wenn der Haupteinwand der Preis ist, senden Sie eine wertorientierte Follow-up-E-Mail.
- Wenn der Haupteinwand das Timing ist, ordnen Sie die Nutzer:innen einer Nurture-Sequenz zur späteren Neuerwägung zu.
- Wenn der Haupteinwand Vertrauen ist, senden Sie Testimonials, Bewertungen oder Compliance-Informationen.
- Wenn
needs_human_agentden Wert „true“ hat, benachrichtigen Sie ein Vertriebs- oder Supportteam und unterdrücken Sie weitere automatisierte Nachrichten.
Die folgende Beispiel-Payload zeigt ein call.analysis.available-Event in Regal.
{
"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"
}
Verwenden Sie eine Datentransformation, um call_analysis-Felder (wie primary_objection und needs_human_agent) auf angepasste Events oder Profilattribute in Braze abzubilden. Erstellen Sie dann in Braze eine Canvas- oder Campaign-Logik, die auf diesen Werten basiert.
Profilattribute mit Transkript-Links aus call.transcript.available-Events aktualisieren
Verwenden Sie das call.transcript.available-Event, um einen Link zum vollständigen Anruftranskript an Braze zu senden. Bilden Sie die Transkript-URL mithilfe einer Datentransformation auf ein Braze-Nutzerprofil-Attribut ab, damit Ihr Team Gespräche direkt aus dem Nutzerprofil abrufen und überprüfen kann.
Die folgende Beispiel-Payload zeigt ein call.transcript.available-Event in Regal.
{
"userId": "123",
"traits": {
"phone": "+15555550123",
"email": "[email protected]"
},
"name": "call.transcript.available",
"properties": {
"agent_email": "[email protected]",
"task_id": "WT953358e8822dd9333fc38dfbac25e1e1",
"call_summary": "The agent Yuri explained insurance options to Alex and he said he'll need to think about it before moving forward Agent politely ended the call.",
"contact_name": "Alex Smith",
"contact_phone": "+15555550123",
"is_voicemail": false,
"moments_count": 18,
"recording_id": "RE0118052841b7299d0630d1dff610c1fb",
"recording_link": "https://api.twilio.com/2010-04-01/Accounts/ACxxx/Recordings/xxx.mp3",
"recording_duration": 78.75987,
"request_timestamp": 1657799128,
"response_timestamp": 1657799136,
"sentiments": {
"contact_sentiment": 70,
"agent_sentiment": 75,
"agent_sentiment_reason": "Yuri was polite and attentive, effectively gathering information and providing a resource, which contributed to a positive interaction.",
"contact_sentiment_reason": "Alex was satisfied with the information provided but may have wanted more assistance regarding insurance options."
},
"trackers": [
{
"tracker_id": "4be87957-9140-4451-894a-bdbaed1f2460",
"tracker_name": "Refinance"
},
{
"tracker_id": "eb2577c6-5e23-4c65-9e04-5cc5d49eee7e",
"tracker_name": "High Intent"
}
],
"transcript": "[handling agent]: Hi Alex, this is Yuri with BrightCover Insurance. I'll be going over some insurance options with you today. [contact]: Sounds good. [handling agent]: Before we start, I'm going to transfer you to a specialist for a moment. One sec. [transfer agent]: Hi Alex, this is Lee. Just verifying a few details before sending you back to Yuri. [contact]: Okay. [handling agent]: Thanks, Alex. Based on what you shared, here are some plan options... [contact]: I'll need to think about it. [handling agent]: Totally understandable. Feel free to contact us anytime. Have a great day! END OF TRANSCRIPT",
"transcript_is_truncated": false,
"transcript_url": "https://app.regalvoice.com/transcripts/WT953358e8822dd9333fc38dfbac25e1e1"
},
"originalTimestamp": "1657843308",
"eventSource": "Regal Voice",
"eventId": "f49a3cf9cb1336683bd5f19dwe4c61147"
}