Jitterbit CRM Contact Agent
Übersicht
Jitterbit stellt den CRM Contact Agent für Kunden über den Jitterbit Marketplace zur Verfügung. Dieser Agent nutzt KI, um Kontaktdatensätze für CRM-Systeme wie Salesforce über eine Gesprächsschnittstelle zu verwalten und hilft Vertriebsteams, Kontakte effizienter zu finden, zu erstellen und zu aktualisieren. Der Agent verwendet die Retrieval-Augmented Generation (RAG)-Technik, die das LLM-Denken mit dem Zugriff auf externe Tools und Datenquellen verbindet.
Der Agent empfängt Anfragen in natürlicher Sprache über Slack und ermittelt die Benutzerabsicht mit Azure OpenAI. Basierend auf jeder Anfrage sucht der Agent in Salesforce nach vorhandenen Kontakten, ruft Kontaktdaten von ZoomInfo ab und führt Erstell- oder Aktualisierungsvorgänge in Salesforce nach Benutzerbestätigung durch. Der Agent speichert die Gesprächsverlauf im Jitterbit Cloud Datastore, um kontextbewusste Antworten über eine Sitzung hinweg bereitzustellen.
Der Agent führt die folgenden Aufgaben durch:
- Empfängt Anfragen in natürlicher Sprache von Benutzern über Slack.
- Nutzt Azure OpenAI, um den Kontonamen zu extrahieren und die Absicht jeder Anfrage zu ermitteln.
- Sucht in Salesforce nach vorhandenen Kontakten, die dem angegebenen Konto zugeordnet sind.
- Fragt ZoomInfo nach Kontaktdaten ab, die sich noch nicht in Salesforce befinden, einschließlich Berufsbezeichnungen, Telefonnummern und E-Mail-Adressen.
- Vergleicht Salesforce-Kontaktdatensätze mit ZoomInfo-Daten, um veraltete oder fehlende Informationen zu identifizieren.
- Präsentiert Kontaktlisten und Aktualisierungsempfehlungen dem Benutzer in Slack zur Genehmigung, bevor Änderungen in Salesforce vorgenommen werden.
- Erstellt oder aktualisiert Kontaktdatensätze in Salesforce nach Benutzerbestätigung.
- Speichert den Gesprächsverlauf im Cloud Datastore, um den Kontext über Nachrichten hinweg innerhalb eines 30-Minuten-Sitzungsfensters beizubehalten.
- Sendet Slack-Benachrichtigungen an einen konfigurierten Vertriebswarnkanal, wenn ein Kontakt als nicht mehr bei dem Unternehmen tätig identifiziert wird.
Dieses Dokument erläutert das Einrichten und Betreiben dieses KI-Agenten. Es behandelt Architektur und Voraussetzungen, Anleitung zum Abfragen des Agenten und Schritte zum Installieren, Konfigurieren und Betreiben des KI-Agenten.
KI-Agent-Architektur
Dieser KI-Agent verwaltet Salesforce-Kontakte über eine Gesprächs-Slack-Schnittstelle. Eine typische Interaktion folgt diesen Schritten:
- Ein Benutzer sendet eine Nachricht in natürlicher Sprache an den CRM Contact Agent über Slack.
- Der Agent ruft den Gesprächsverlauf aus Cloud Datastore ab, um den Sitzungskontext beizubehalten, und ruft dann Azure OpenAI auf, um den Kontonamen aus der Anfrage zu extrahieren.
- Der Agent fragt Salesforce ab, um den Kontonamen zu validieren und die Salesforce-Konto-ID abzurufen.
- Der Agent ruft Azure OpenAI ein zweites Mal auf, mit verfügbaren Tools, um die Benutzerabsicht zu ermitteln und das entsprechende Tool auszuwählen.
- Das ausgewählte Tool fragt Salesforce und ZoomInfo nach Bedarf ab, um Kontaktdaten zu sammeln.
- Bei Vorgängen, die Kontakte erstellen oder aktualisieren, präsentiert der Agent eine Zusammenfassung dem Benutzer in Slack und wartet auf Genehmigung, bevor er Maßnahmen in Salesforce ergreift.
- Der Agent ruft Azure OpenAI ohne Tools auf, um die endgültige Antwort mit einem kontextspezifischen Prompt zu formatieren, und sendet die Antwort dann an den Benutzer in Slack zurück.
- Der Gesprächsverlauf wird im Cloud Datastore gespeichert, um ihn in nachfolgenden Nachrichten innerhalb derselben Sitzung zu verwenden.
Workflow-Diagramm
Das folgende Diagramm zeigt den Hauptanfrage-Verarbeitungs-Workflow für den CRM Contact Agent.
Jitterbit
CRM Contact Agent" } SLK[fab:fa-slack
Slack] SF[fab:fa-salesforce
Salesforce] ZI[ZoomInfo API] AZR[Azure OpenAI REST call] AZM@{ shape: hex, label: "Azure OpenAI model" } CD@{ shape: hex, label: "fas:fa-database
Cloud Datastore" } SLK -->|1. User request| JSP JSP <-->|2. Session history| CD JSP <-->|3. Account lookup| SF JSP -->|4. Conversation and prompt| AZR AZR --> AZM AZM --> AZR AZR -->|5. Intent + tool selection| JSP JSP <-->|6. Contact data| SF JSP <-->|7. Contact data| ZI JSP -->|8. Response| SLK
Voraussetzungen
Sie benötigen die folgenden Komponenten, um diesen KI-Agenten zu verwenden.
Harmony-Komponenten
Sie müssen über eine Jitterbit Harmony-Lizenz mit Zugriff auf die folgenden Komponenten verfügen:
- Jitterbit Studio.
- Jitterbit Cloud Datastore, um den Gesprächsverlauf und Kontaktübergangsdaten zu speichern.
- Jitterbit CRM Contact Agent, erworben als Lizenz-Add-on.
Unterstützte Endpunkte
Der KI-Agent stellt Verbindungen zu folgenden Endpunkten her. Sie können andere Systeme unterstützen, indem Sie die Endpunktkonfigurationen und Workflows des Projekts ändern.
Large Language Model (LLM)
Der KI-Agent verwendet Azure OpenAI als LLM-Anbieter. Um Azure OpenAI zu nutzen, benötigen Sie ein Microsoft Azure-Abonnement mit Berechtigungen zum Erstellen einer Azure OpenAI-Ressource mit einem bereitgestellten Modell.
Tipp
Informationen zu Preisen finden Sie auf der Azure OpenAI-Preisseite.
CRM-System
Der Agent fragt Kontaktdatensätze in Salesforce ab und aktualisiert sie. Um Salesforce zu nutzen, benötigen Sie ein Salesforce-Konto mit API-Zugriff und Berechtigungen zum Lesen und Schreiben von Kontaktdatensätzen.
Kontaktdatenanbieter
Der Agent ruft Kontaktdaten von ZoomInfo ab, um vorhandene Salesforce-Datensätze zu ergänzen. Um ZoomInfo zu nutzen, benötigen Sie ein ZoomInfo-Konto mit API-Zugriffsanmeldedaten.
Messaging-Plattform
Der Agent verwendet Slack als seine Schnittstelle für Gespräche und als Benachrichtigungskanal. Um Slack zu nutzen, benötigen Sie einen Slack-Workspace mit einer konfigurierten Slack-App zum Empfangen und Beantworten von Nachrichten. Detaillierte Anweisungen zum Erstellen einer Slack-App finden Sie unter Slack-App erstellen.
Agent-Prompts
Der CRM Contact Agent empfängt alle Anfragen als natürlichsprachliche Nachrichten, die an die Slack-App gesendet werden. In diesem Abschnitt werden die Regeln für effektive Prompts beschrieben und Beispiel-Prompts bereitgestellt.
Prompt-Richtlinien
Beachten Sie diese Richtlinien beim Senden von Nachrichten an den Agent:
-
Geben Sie in jedem Prompt den Kontonamen an. Das LLM versucht, den Kontonamen aus dem Gesprächsverlauf abzuleiten (wird alle 30 Minuten geleert), aber wenn Sie ihn explizit in jeder Nachricht angeben, erhalten Sie zuverlässigere Ergebnisse.
-
Um neue Kontakte zu erstellen, müssen Sie den Agent zunächst auffordern, diese mit einem Neue Kontakte-Prompt zu finden. Der Agent präsentiert eine Liste von Kontakten zur Genehmigung, bevor Datensätze in Salesforce erstellt werden.
-
Um vorhandene Kontakte zu aktualisieren, müssen Sie zunächst eine Aktualisierungsprüfung mit einem Datenhygiene und Aktualisierungen-Prompt durchführen. Der Agent präsentiert Aktualisierungsempfehlungen zur Genehmigung, bevor Änderungen in Salesforce geschrieben werden.
Beispiel-Prompts
Die folgenden Beispiel-Prompts zeigen die Arten von Prompts, die der Agent verarbeiten kann. Ersetzen Sie {Account Name} durch den Namen des Salesforce-Kontos und {list of roles} durch eine kommagetrennte Liste relevanter Jobtitel.
Neue Kontakte
Verwenden Sie diese Prompts, um neue Kontakte für ein Konto mithilfe von ZoomInfo-Daten zu finden und zu erstellen:
Prompts
Find New Contacts for Account - {Account Name}Find New Contacts for Account - {Account Name}, only include contacts with roles related to {list of roles}Create new contacts for account - {Account Name}
Datenhygiene und Aktualisierungen
Verwenden Sie diese Prompts, um veraltete oder fehlende Kontaktdaten zu identifizieren und Aktualisierungen anzuwenden:
Prompts
Run a hygiene check for Account - {Account Name}Run an update for existing contacts for account - {Account Name}
Vorhandene Kontakte
Verwenden Sie diese Prompts, um nach Kontakten zu suchen, die sich bereits in Salesforce befinden, und um Berichte über sie zu erstellen:
Prompts
Find Existing Contacts for Account - {Account Name}Find last 3 contacts created for Account - {Account Name}When was the last time we spoke with a contact from {Account Name}Flag contacts with no activity in Salesforce for account {Account Name}Find any duplicate contacts for account - {Account Name}Find contacts missing titles, emails, phone numbers for account - {Account Name}Compare Salesforce contacts against ZoomInfo for account - {Account Name}Locate a contact for account {Account Name} that we usually reach out to
Spezielle Zugriffsvorkehrungen
Die folgenden Vorkehrungen erfordern Administratorzugriff, wie im Skript set.user.roles konfiguriert. Diese Operationen verbrauchen ZoomInfo-Guthaben aus Ihrem Kontingent:
Vorkehrungen
Run an enriched hygiene check for Account - {Account Name}Enrich missing phone numbers for account - {Account Name}
Installation, Konfiguration und Betrieb
Führen Sie die folgenden Schritte aus, um diesen KI-Agent zu installieren, zu konfigurieren und zu betreiben:
- Projekt herunterladen und installieren
- Microsoft Azure-Ressourcen erstellen
- Slack-App erstellen
- Slack-Anfrage-URL überprüfen
- Cloud Datastore konfigurieren
- Projektvariablen konfigurieren
- Verbindungen testen
- Projekt bereitstellen
- Benutzerdefinierte Jitterbit-API aktualisieren
- Projekt-Workflows überprüfen
- Projekt-Workflows auslösen
Hinweise zur Behebung von Problemen finden Sie unter Troubleshooting.
Projekt herunterladen und installieren
Führen Sie die folgenden Schritte aus, um das Studio-Projekt für den KI-Agent zu installieren:
-
Melden Sie sich beim Harmony-Portal unter https://login.jitterbit.com an und öffnen Sie den Marketplace.
-
Suchen Sie den KI-Agent mit dem Namen Jitterbit CRM Contact Agent. Verwenden Sie die Suchleiste oder wählen Sie im Bereich Filter unter Typ die Option KI-Agent aus, um die Anzeige auf KI-Agenten zu beschränken.
-
Klicken Sie auf den Link Dokumentation des Agenten, um dessen Dokumentation in einem neuen Tab zu öffnen. Halten Sie den Tab offen, um später darauf zurückzugreifen.
-
Klicken Sie auf Projekt starten, um ein zweistufiges Konfigurationsdialogfeld zu öffnen.
Hinweis
Falls Sie den KI-Agent noch nicht erworben haben, wird stattdessen Agent abrufen angezeigt. Klicken Sie darauf, um ein Informationsdialogfeld zu öffnen, und klicken Sie dann auf Absenden, damit ein Vertreter Sie zum Kauf des KI-Agenten kontaktiert.
-
Laden Sie in Konfigurationsschritt 1 Anpassungen herunterladen alle bereitgestellten Konfigurationsdateien herunter.
-
Klicken Sie auf Weiter.
-
Wählen Sie in Konfigurationsschritt 2 Neues Projekt erstellen eine Umgebung aus, in der das Studio-Projekt erstellt werden soll, und klicken Sie auf Projekt erstellen.
-
Nachdem das Fortschrittsdialogfeld angibt, dass das Projekt erstellt wurde, verwenden Sie den Dialoglink Zu Studio wechseln oder öffnen Sie das Projekt direkt von der Seite Projekte von Studio aus.
Microsoft Azure-Ressourcen erstellen
Erstellen Sie die folgenden Microsoft Azure-Ressourcen und notieren Sie sich die Informationen zur Konfiguration des KI-Agenten. Zum Erstellen und Verwalten dieser Ressourcen benötigen Sie ein Microsoft Azure-Abonnement mit den entsprechenden Berechtigungen.
Sie müssen eine Azure OpenAI-Ressource erstellen und ein Modell über das Azure AI Foundry-Portal bereitstellen.
Notieren Sie den Bereitstellungsnamen, die Endpunkt-URL und den API-Schlüssel. Geben Sie diese Werte ein, wenn Sie Projektvariablen konfigurieren.
Um diese Werte zu suchen, führen Sie die folgenden Schritte aus:
-
Öffnen Sie im Azure AI Foundry-Portal die spezifische OpenAI-Ressource.
-
Kopieren Sie auf der Ressourcen-Landingpage die Endpunkt-URL (für die Projektvariable
Openai.token) und den API-Schlüssel. -
Wählen Sie im Navigationsmenü unter Freigegebene Ressourcen die Option Bereitstellungen aus. Kopieren Sie den Bereitstellungsnamen (für die Projektvariable
Openai.model).
Slack-App erstellen
Führen Sie die folgenden Schritte aus, um die Slack-Schnittstelle des Agenten zu aktivieren:
-
Erstellen Sie eine Slack-App und installieren Sie sie in Ihrem Slack-Arbeitsbereich.
-
Rufen Sie das Bot-Token ab und speichern Sie es für die Projektvariable
Slack.token. -
Identifizieren Sie den Slack-Kanal, in dem der Agent auf Benutzernachrichten reagiert, und speichern Sie ihn für die Projektvariable
Slack.channel. -
Identifizieren Sie den Slack-Kanal, der für Account-Executive-Benachrichtigungen vorgesehen ist, und speichern Sie ihn für die Projektvariable
salesforce.sales.alerts.channel.
Slack-Anfrage-URL überprüfen
Nach dem Erstellen der Slack-App müssen Sie eine URL-Verifizierungsanforderung von Slack auf der Seite Event Subscriptions bestätigen. Das Projekt enthält einen Vorgang namens Slack Enable, um diese Verifizierung zu verarbeiten. Um die Anforderung zu bestätigen, stellen Sie das Projekt bereit und erstellen eine temporäre benutzerdefinierte API, die auf den Vorgang Slack Enable verweist. Nach der URL-Verifizierung schließen Sie die verbleibenden Setup-Schritte ab und aktualisieren dann die API so, dass sie auf den endgültigen Request-Handler verweist.
Führen Sie diese Schritte aus, um die Slack-Anfrage-URL zu überprüfen:
-
Stellen Sie das Studio-Projekt bereit. Um das Projekt bereitzustellen, verwenden Sie das Menü Aktionen des Projekts und wählen Sie Deploy.
-
Erstellen Sie eine benutzerdefinierte API für den Vorgang Slack Enable mit diesen Einstellungen:
Einstellung Wert Service name slackApiRequestHandlerOperation Slack Enable Path /slackApiRequestHandlerMethod POSTResponse Type System VariableNach der Konfiguration des Service veröffentlichen Sie die benutzerdefinierte API.
-
Kopieren Sie die API-Service-URL. Um die Service-URL zu finden, gehen Sie zur API-Detailbox auf der Registerkarte Services, fahren Sie mit der Maus über die Spalte Actions des Service und klicken Sie auf Copy API service URL.
-
Navigieren Sie in der Konfiguration Ihrer Slack-App zu Features > Event Subscriptions und aktivieren Sie Events. Fügen Sie die API-Service-URL in das Feld Request URL ein. Slack sendet eine Verifizierungsanforderung, und eine Erfolgsmeldung bestätigt, dass die URL überprüft wurde. Klicken Sie auf Save Changes.
-
Fahren Sie mit den verbleibenden Setup-Schritten fort. Nach deren Abschluss aktualisieren Sie die benutzerdefinierte API so, dass sie auf den Vorgang Receiver - Slack API request handler verweist unter Update the Jitterbit custom API.
Cloud Datastore konfigurieren
Der Agent verwendet drei Cloud Datastore-Speicher, um den Gesprächsverlauf und die Contact-Staging-Daten zu verwalten:
| Speicher | Zweck |
|---|---|
| Slack agent AI | Speichert den Gesprächsverlauf für jeden Slack-Benutzer. |
| Contact cache | Staged Contact-Daten, wenn ein Benutzer eine Aktion zum Erstellen oder Aktualisieren genehmigt. |
| LLM token cost | Zeichnet die Token-Nutzung für jeden Azure OpenAI API-Aufruf auf. |
Führen Sie für jeden Speicher folgende Schritte aus:
- Erstellen Sie den Speicher mit dem unten angegebenen Namen und benutzerdefinierten Feldern. Die Felder
Key,AlternativeKeyundValuesind standardmäßig vorhanden. - Suchen Sie auf der Registerkarte Components des Studio-Projekts unter Endpoints jede Cloud Datastore-Aktivität, die diesem Speicher zugeordnet ist. Jede Aktivität wird mit dem Namen des Speichers vorangestellt (beispielsweise
CONTACT CACHE - Delete Items Cache CDS). Doppelklicken Sie, um sie zu öffnen, weisen Sie den Speichernamen zu und speichern Sie.
Slack agent AI
Erstellen Sie einen Speicher namens Slack agent AI. Fügen Sie die folgenden benutzerdefinierten Felder hinzu:
| Feldname | Typ | Beschreibung |
|---|---|---|
Key |
Text | Wird automatisch ausgefüllt. Der Gesprächssitzungs-Identifier für den Slack-Benutzer. |
AlternativeKey |
Text | Wird nicht verwendet. |
Value |
Text | Wird nicht verwendet. |
system_content_big |
Big Text | Der LLM-System-Prompt-Inhalt für das Gespräch. |
created_on |
Text | Wird automatisch ausgefüllt. Der Zeitstempel, an dem der Gesprächsverlauf-Datensatz erstellt wurde. |
slack_channel_id |
Text | Die mit dem Gespräch verknüpfte Slack-Kanal-ID. |
user_content |
Text | Der Nachrichteninhalt des Benutzers. |
Verwenden Sie diesen Speicher für alle Cloud Datastore-Aktivitäten mit dem Präfix SLACK AGENT AI.
Kontakt-Cache
Erstellen Sie einen Schlüsselspeicher mit dem Namen Contact cache. Fügen Sie die folgenden benutzerdefinierten Felder hinzu:
| Feldname | Typ | Beschreibung |
|---|---|---|
Key |
Text | Wird automatisch ausgefüllt. Die Salesforce-Konto-ID, die mit den bereitgestellten Kontaktdaten verknüpft ist. |
AlternativeKey |
Text | Wird nicht verwendet. |
Value |
Text | Wird nicht verwendet. |
create_or_update |
Text | Gibt an, ob die bereitgestellten Daten für eine Kontakterstellung oder ein Update verwendet werden. |
jsonbody |
Big Text | Die rohen Kontaktdaten, die von ZoomInfo oder Salesforce abgerufen wurden, im JSON-Format. |
contactbody |
Big Text | Die strukturierte Kontaktliste, die zur Genehmigung durch den Benutzer angezeigt wird. |
Verwenden Sie diesen Speicher für alle Cloud Datastore-Aktivitäten mit dem Präfix CONTACT CACHE.
LLM-Token-Kosten
Erstellen Sie einen Schlüsselspeicher mit dem Namen LLM token cost. Fügen Sie die folgenden benutzerdefinierten Felder hinzu:
| Feldname | Typ | Beschreibung |
|---|---|---|
Key |
Text | Wird automatisch ausgefüllt. Ein Bezeichner für den Azure OpenAI API-Aufruf. |
AlternativeKey |
Text | Wird nicht verwendet. |
Value |
Text | Wird nicht verwendet. |
total_tokens |
Text | Die Gesamtanzahl der Token, die beim API-Aufruf verwendet wurden. |
prompt_tokens |
Text | Die Anzahl der Token, die im Prompt verwendet wurden. |
completion_tokens |
Text | Die Anzahl der Token, die bei der Vervollständigung verwendet wurden. |
createdDate |
Text | Wird automatisch ausgefüllt. Der Zeitstempel, zu dem die Token-Nutzungsaufzeichnung erstellt wurde. |
content |
Big Text | Der Inhalt des API-Aufrufs, aufgezeichnet für die Token-Nutzungsverfolgung. |
Verwenden Sie diesen Speicher für alle Cloud Datastore-Aktivitäten mit dem Präfix LLM TOKEN COST.
Projektvariablen konfigurieren
Legen Sie im Studio-Projekt, das aus dem Marketplace installiert wurde, Werte für die folgenden Projektvariablen fest.
Um Projektvariablen zu konfigurieren, verwenden Sie das Menü des Projekts und wählen Sie Project Variables aus, um die Konfigurationsleiste zu öffnen.
ZoomInfo
| Variablenname | Beschreibung |
|---|---|
zoom.username |
Benutzername für das ZoomInfo API-Konto. |
zoom.password |
Passwort für das ZoomInfo API-Konto. |
Salesforce
| Variablenname | Beschreibung |
|---|---|
salesforce.username |
Benutzername für die Salesforce-Instanz. |
salesforce.url |
URL für die Salesforce-Instanz. |
salesforce.token |
Sicherheits-Token für das Salesforce-Konto. |
salesforce.password |
Passwort für die Salesforce-Instanz. |
salesforce.sales.alerts.channel |
Slack-Kanal, der Benachrichtigungen empfängt, wenn ein Kontakt, der mit einem Salesforce-Konto verknüpft ist, das Unternehmen verlässt. |
Slack
| Variablenname | Beschreibung |
|---|---|
slack.token |
Das Slack-Bot-Token, das nach dem Erstellen der Slack-App abgerufen wurde und für das Feld Bot User OAuth Token der Slack-Verbindung verwendet wird. |
slack.channel |
Slack-Kanal, in dem der Agent auf Benutzernachrichten abhört und antwortet. |
slack.bot.userId |
Die Benutzer-ID des Slack-Bots. Wird verwendet, um die eigenen API-Aufrufe des Bots aus den Slack-Ereignisprotokollen herauszufiltern. |
Azure OpenAI
| Variablenname | Beschreibung |
|---|---|
openai.token |
API-Schlüssel zur Authentifizierung von Anfragen beim Azure OpenAI-Dienst. |
openai.temperature |
Steuert die Zufälligkeit der Modellausgabe. Bei Verwendung des Modells o4-mini auf 1 setzen. Andernfalls einen Wert von 0,5 oder niedriger für konsistentere Ergebnisse verwenden. |
openai.model |
Bereitstellungsname des zu verwendenden Azure OpenAI-Modells. |
Cloud Datastore
| Variablenname | Beschreibung |
|---|---|
clouddatastore.token |
Cloud Datastore-Authentifizierungstoken, abrufbar von der Seite Zugriffstoken der Management Console. |
Gesprächseinstellungen
| Variablenname | Beschreibung |
|---|---|
cleanup.historytime |
Dauer in Sekunden, für die der Gesprächsverlauf vor der Bereinigung gespeichert wird. Standard ist 1800 (30 Minuten). Höhere Werte senden mehr Kontext pro Anfrage an das LLM. |
Verbindungen testen
Testen Sie die Endpunktkonfigurationen, um die Konnektivität mit den definierten Projektvariablenwerten zu überprüfen.
Um Verbindungen zu testen, wechseln Sie zur Registerkarte Projektendpunkte und Connectoren der Designkomponentenpalette, fahren Sie über jeden Endpunkt und klicken Sie auf Testen.
Projekt bereitstellen
Stellen Sie das Studio-Projekt bereit.
Um das Projekt bereitzustellen, verwenden Sie das Menü Aktionen des Projekts und wählen Sie Bereitstellen.
Benutzerdefinierte Jitterbit-API aktualisieren
Aktualisieren Sie die in Slack-Anforderungs-URL überprüfen erstellte benutzerdefinierte API, um die Operation Receiver - Slack API request handler im Workflow Main Entry - Slack API Request Handler zu verwenden.
Aktualisieren Sie diese Einstellungen für den Dienst:
| Einstellung | Wert |
|---|---|
| Dienstname | slackApiRequestHandler |
| Operation | Receiver - Slack API request handler |
| Pfad | /slackApiRequestHandler |
| Methode | POST |
| Antworttyp | System Variable |
Nach dem Aktualisieren des Dienstes veröffentlichen Sie die benutzerdefinierte API.
Tipp
Sie können auch ein Sicherheitsprofil für die Authentifizierung hinzufügen.
Projekt-Workflows überprüfen
Das Studio-Projekt enthält 18 Workflows, die die Funktionalität des CRM Contact Agent implementieren und in fünf funktionale Gruppen organisiert sind.
Einstiegspunkt
| Workflow | Beschreibung |
|---|---|
| Main Entry - Slack API Request Handler | Empfängt eingehende Slack-Nachrichten und initiiert das Hauptcontroller-Skript. |
Haupteintrag - Slack API Request Handler
Dieser Workflow empfängt Slack-Nachrichten und führt das Hauptcontroller-Skript (controller.receiver.async) aus. Der Controller orchestriert den gesamten Request-Handling-Prozess: Er ruft die Gesprächshistorie aus Cloud Datastore ab, ruft Azure OpenAI auf, um den Kontonamen zu extrahieren und die Absicht zu bestimmen, leitet die Anfrage an das entsprechende Tool weiter, formatiert die LLM-Antwort und postet das Ergebnis zurück an den Slack-Benutzer.
API-Integrationen
| Workflow | Beschreibung |
|---|---|
| API - Slack Handler | Verwaltet alle Slack API-Interaktionen, einschließlich Posting von Nachrichten und Löschen von Tippanindikatoren. |
| API - Azure Open AI | Enthält beide Arten von Azure OpenAI API-Aufrufen: mit Tools zur Intent-Erkennung und ohne Tools zur Response-Formatierung. |
| API - Zoom Info | Umfasst ZoomInfo API-Operationen zur Kontaktsuche, Authentifizierung und Kontaktdatenabruf. |
API - Slack Handler
Dieser Workflow enthält alle von dem Agent verwendeten Slack API-Operationen, einschließlich Abfrage des Slack-Profils des Benutzers, Posting eines „Tippen..."-Indikators, Posting der endgültigen Antwort und Löschen des Indikators nach dem Versand der Antwort.
API - Azure Open AI
Dieser Workflow enthält zwei Arten von Azure OpenAI API-Aufrufen:
- Open AI - Prompt HTTP With Tools: Sendet eine Anfrage an Azure OpenAI mit einer Liste verfügbarer Tools. Dieser Aufruf wird verwendet, um den Kontonamen aus der Benutzer-Nachricht zu extrahieren und die Absicht der Anfrage zu bestimmen.
- Open AI - Prompt HTTP No Tools: Sendet eine Anfrage an Azure OpenAI ohne Tools, nachdem das ausgewählte Tool alle erforderlichen Daten gesammelt hat. Dieser Aufruf generiert die endgültige, Slack-ready Antwort mit Hilfe eines kontextspezifischen Prompts.
Die beiden Aufrufe verwenden separate Gesprächshistorien. Der Intent-Bestimmungs-Aufruf verwendet kontenspezifische Chroniken, während der Aufruf zur Extraktion des Kontonamens die vollständige Gesprächshistorie verwendet. Diese Trennung hält den an das LLM gesendeten Kontext fokussiert und reduziert unnötige Token-Nutzung.
API - Zoom Info
Dieser Workflow umfasst alle ZoomInfo API-Operationen. Operationen sind nach Datentyp und nicht nach Tool organisiert, wodurch sie über mehrere Tools hinweg wiederverwendbar sind. Alle ZoomInfo-Operationen erfordern, dass Sie die Projektvariable core.zoom.resource auf einen gültigen Wert setzen. Gültige Werte ab März 2026 sind contact, authenticate, enrich_contact und scoop.
Das Skript core. Load Zoom API Resource zentralisiert alle API-Basis-URLs und Web-Objekte, wodurch ein einfacher Wechsel zu einem anderen Kontaktdaten-Provider ermöglicht wird. Alle Kontaktdaten-Aufrufe teilen sich die Standard-ZoomInfo POST-Aktivität. Der Authentifizierungs-Aufruf verwendet eine separate Aktivität.
Speicher und Status
| Workflow | Beschreibung |
|---|---|
| Memory - Cloud Datastore | Verwaltet Cloud Datastore-Lese- und Schreibvorgänge für Gesprächshistorie und Kontakt-Stagingdaten. |
| Conversation Cleanup Controller | Entfernt Gesprächshistorie, die älter als der konfigurierte cleanup.historytime-Schwellenwert ist. |
| Scheduler Task Manager | Verwaltet Operationen, die nach einem Zeitplan ausgeführt werden. |
Memory - Cloud Datastore
Dieser Workflow verwaltet vier Typen von Cloud Datastore-Operationen, die auf drei Cloud Datastore-Speicher verteilt sind:
- Get Account Specific Slack History: Ruft den Konversationsverlauf für ein bestimmtes Salesforce-Konto ab und gibt dem LLM einen fokussierten Kontext, der für die aktuelle Anfrage relevant ist.
- Get Master Slack History: Ruft den vollständigen Konversationsverlauf für den Slack-Benutzer ab. Der Agent verwendet diese Option nur beim Aufruf des LLM zum Extrahieren des Kontonamens.
- Cache Last Message Controller: Speichert Kontaktdaten unmittelbar vor einer Erstell- oder Aktualisierungsaktion, die genehmigt wird. Der Agent indiziert Daten durch eine Kombination der Slack-Benutzer-ID und der Salesforce-Konto-ID, um sicherzustellen, dass auf die richtige Kontaktliste verwiesen wird, wenn der Benutzer eine Aktion genehmigt. Wenn der im Cache gespeicherte Schlüssel nicht mit dem aktuell referenzierten Konto übereinstimmt, meldet der Agent einen Fehler und fährt nicht fort.
- Store Token Costs to Cache: Erfasst die Tokennutzung von jedem Azure OpenAI-API-Aufruf zur Überprüfung durch den Kunden und zur Kostenberechnung.
Conversation Cleanup Controller
Dieser Workflow entfernt den Konversationsverlauf, der den Schwellwert cleanup.historytime überschreitet. Wenn das LLM mehr Konversationsdaten erhält, als es effektiv verarbeiten kann, kann es möglicherweise die Absicht der aktuellen Anfrage nicht bestimmen. In diesem Fall reduziert der Agent das Verlaufsfenster auf 10 Minuten und fordert den Benutzer auf, die Eingabe erneut einzureichen.
Scheduler Task Manager
Dieser Workflow verwaltet alle Operationen, die für die Ausführung auf Operationszeitplänen konfiguriert sind.
Zwei Operationen haben spezifische Planungsanforderungen:
-
Conversation Cleanup Controller: Mindestens alle 5 Minuten ausführen. Dies steuert, wie eng die tatsächliche Aufbewahrung dem Schwellwert
cleanup.historytimeentspricht. Je seltener die Ausführung erfolgt, desto länger kann der Verlauf über das konfigurierte Limit hinaus bestehen bleiben. -
Account Executive Notifications: Einmal täglich ausführen. Die Standardabfrage ist auf die Daten dieses Tages beschränkt, daher führt eine mehrmalige Ausführung zu Duplikaten.
Um einen Zeitplan zu konfigurieren, öffnen Sie das Aktionsmenü der Operation und wählen Sie Settings > Schedules (Einstellungen > Zeitpläne).
Utilities
| Workflow | Beschreibung |
|---|---|
| Utility Tools | Enthält wiederverwendbare Utility-Skripte für Salesforce-Kontosuchen und E-Mail-Kommunikationsprüfungen. |
| Tools Supervisor | Leitet Anfragen basierend auf die vom Azure OpenAI zurückgegebene Absicht an den entsprechenden Tool-Workflow weiter. |
Utility Tools
Dieser Workflow enthält wiederverwendbare Utility-Skripte, die über mehrere Tool-Workflows hinweg aufgerufen werden können:
Utility- Get Account id from Salesforce: Sucht eine Salesforce-Konto-ID nach Kontoname auf.Utility- Check for Email COMs by Name: Durchsucht Salesforce nach E-Mail-Konversationen nach Kontaktname und Domäne. Vor dem Aufruf des Skripts müssen ein Kontaktname und eine Domäne als Argumente festgelegt werden.Utility- Get Number of Contacts for SF Account: Gibt die Anzahl der Kontakte zurück, die einem Salesforce-Konto zugeordnet sind. Dieses Utility wird derzeit nicht verwendet.Utility- Check Empty Email Contacts: Durchläuft ein Wörterbuch von Kontakten, die in Salesforce keine E-Mail-Adresse haben, und ruft die E-Mail-Kommunikationsprüfung für jeden auf, um nach einer zugehörigen E-Mail-Aktivität zu suchen.
Tools Supervisor
Dieser Workflow liest den von Azure OpenAI zurückgegebenen Absichtswert (gespeichert in der Projektvariable openai.response.route) und leitet die Anfrage mithilfe einer case-Anweisung an den entsprechenden Tool-Workflow weiter. Wenn ein Kontoname gefunden wird, aber keine Route bestimmt werden kann (typischerweise aufgrund eines langen Konversationsverlaufs), bereinigt der Agent den Verlauf und fordert den Benutzer auf, die Eingabe erneut einzureichen.
Agent-Tools
| Workflow | Beschreibung |
|---|---|
| Existing Contact suchen | Ruft alle Kontakte für ein angegebenes Salesforce-Konto ab. |
| Neue Kontakte suchen | Fragt ZoomInfo nach Kontakten ab, die sich noch nicht in Salesforce befinden, und gleicht die Ergebnisse mit vorhandenen Datensätzen ab. |
| Kontakterstellung bestätigen | Präsentiert dem Benutzer eine Liste neuer Kontakte in Slack zur Genehmigung, bevor Datensätze in Salesforce erstellt werden. |
| Kontakterstellung ausführen | Erstellt genehmigte Kontaktdatensätze in Salesforce mit einem Upsert-Vorgang, der über die E-Mail-Adresse gekennzeichnet ist. |
| Datenqualitätsprüfung | Vergleicht Salesforce-Kontaktdatensätze mit ZoomInfo-Daten, um Titelabweichungen und fehlende Informationen zu ermitteln. |
| Erweiterte Datenqualitätsprüfung | Führt einen detaillierten Vergleich von Salesforce- und ZoomInfo-Kontaktdatensätzen für Administratoren durch. Dieser Workflow verbraucht ZoomInfo-Guthaben. |
| Benachrichtigungen für Account Executives | Sendet Slack-Benachrichtigungen an den Vertriebsmeldungskanal, wenn ein Kontakt nicht mehr bei dem Unternehmen tätig ist. |
| Kontaktaktualisierung bestätigen | Präsentiert dem Benutzer Empfehlungen zur Kontaktaktualisierung in Slack zur Genehmigung, bevor Änderungen in Salesforce angewendet werden. |
| Kontaktaktualisierung ausführen | Wendet genehmigte Kontaktaktualisierungen in Salesforce an und meldet dem Benutzer Erfolg oder Misserfolg zurück. |
Existing Contact suchen
Dieser Workflow ruft alle Kontakte für ein angegebenes Konto aus Salesforce ab. Der Skriptname ist search_existing_contact - controller. Der Workflow speichert Kontaktdaten in salesforce.response.body, schreibt sie in $tool.response zur Verarbeitung durch das LLM und setzt die Antwortprüfung auf master_prompt.
Neue Kontakte suchen
Dieser Workflow ruft Kontaktdaten von ZoomInfo für ein angegebenes Konto ab. Der Skriptname ist search_new_contact Controller. Der Workflow führt einen ZoomInfo-API-Aufruf pro in der Projektvariable $zoom.query_jobTitle konfigurierten Jobtitel durch. Begrenzen Sie diese Variable auf vier oder fünf Rollen, um akzeptable Reaktionszeiten zu gewährleisten.
Der Workflow führt zunächst eine offene Suche ohne Rollenfilter durch, um eine uneingeschränkte Kontaktliste abzurufen, und führt dann rollenspezifische Aufrufe durch. Der Workflow ordnet die Ergebnisse einem gemeinsamen JSON-Schema (contactdata.json) zu, das in anderen Tools verwendet wird. Der Workflow gleicht jeden neuen Kontakt mit Salesforce ab, um zu überprüfen, ob dieser bereits für das Konto vorhanden ist. Das Tool überprüft auch die E-Mail-Aktivität für Kontakte, die über ZoomInfo gefunden wurden, mithilfe des Hilfsprogramms Utility- Check Empty Email Contacts.
Kontakterstellung bestätigen
Dieser Workflow ruft die vom Workflow „Neue Kontakte suchen" gespeicherte Kontaktliste aus dem Cloud Datastore-Schlüsselspeicher Contact Cache ab und sendet sie mit einer confirm_create_contact-Eingabeaufforderung an Azure OpenAI. Das LLM leitet E-Mail-Adressen aus verfügbaren Salesforce-Daten ab und präsentiert dem Benutzer eine strukturierte Kontaktliste in Slack, in der eine Genehmigung vor dem Erstellen von Datensätzen angefordert wird. Der Workflow speichert die genehmigten Kontaktdaten zurück in den Contact Cache zur Verwendung im Workflow „Kontakterstellung ausführen".
Kontakterstellung ausführen
Dieser Workflow ruft die genehmigte Kontaktliste aus dem Contact cache Cloud Datastore-Schlüsselspeicher ab und vergleicht die Salesforce-Konto-ID im Cache-Schlüssel mit dem Konto, auf das derzeit in der Konversation verwiesen wird. Wenn die IDs übereinstimmen, erstellt der Workflow Kontaktdatensätze in Salesforce mithilfe einer Upsert-Operation mit E-Mail-Adresse als Schlüssel. Bei Nichtübereinstimmung benachrichtigt der Agent den Benutzer und setzt die Erstellung nicht fort.
Hygiene-Prüfung
Dieser Workflow ruft alle Kontakte für ein Salesforce-Konto ab und fragt ZoomInfo für jeden Kontakt ab, um Titel-Nichtübereinstimmungen oder fehlende Informationen zu identifizieren. Der Workflow fügt Kontakte ohne E-Mail-Adresse in Salesforce zu einem Dictionary hinzu und prüft sie auf E-Mail-Aktivität mithilfe des Hilfsprogramms Utility- Check Empty Email Contacts. Der Workflow speichert Daten von Salesforce und ZoomInfo in $tool.response und setzt die Antwortprüfung auf hygiene_check.
Erweiterte Hygiene-Prüfung
Dieser Workflow funktioniert ähnlich wie der Hygiene-Prüfungs-Workflow, ist aber auf Administratoren beschränkt, wie im Skript set.user.roles konfiguriert. Dieser Workflow verbraucht ZoomInfo-Guthaben aus Ihrem Kontoguthaben. Der Workflow setzt die Antwortprüfung auf enriched_hygiene_check.
Benachrichtigungen für Account Executives
Dieser Workflow sendet eine Slack-Benachrichtigung an den in salesforce.sales.alerts.channel konfigurierten Kanal, wenn der Agent einen Kontakt identifiziert, der mit einem bekannten Salesforce-Konto verknüpft ist und nicht mehr bei diesem Unternehmen arbeitet.
Kontaktaktualisierung bestätigen
Dieser Workflow ruft alle Kontakte für das angegebene Salesforce-Konto ab und fragt ZoomInfo für jeden Kontakt ab, um zu prüfen, ob sich der Titel geändert hat. Er prüft auch Salesforce auf E-Mail-Aktivität, die mit jedem Kontakt verknüpft ist. Auf Grundlage dieser Prüfungen weist eine Transformation jedem Kontakt eine von drei empfohlenen Maßnahmen zu: recommend_update, recommend_donotupdate oder recommend_delete. Der Agent präsentiert diese Empfehlungen dem Benutzer zur Genehmigung, bevor Maßnahmen ergriffen werden. Beachten Sie, dass der CRM Contact Agent keine Kontakte aus Salesforce löscht; die Aktion recommend_delete zeigt dem Benutzer an, dass ein Kontakt möglicherweise entfernt werden muss.
Kontaktaktualisierung ausführen
Dieser Workflow ruft genehmigte Aktualisierungsdaten aus dem Contact cache Cloud Datastore-Schlüsselspeicher ab, überprüft, dass das referenzierte Konto mit der im Cache-Schlüssel gespeicherten Konto-ID übereinstimmt, und wendet dann die genehmigten Aktualisierungen auf Salesforce-Kontaktdatensätze an. Der Workflow meldet den Erfolg oder Misserfolg jeder Aktualisierung an den Benutzer in Slack.
Projekt-Workflows auslösen
Der CRM Contact Agent wird durch eingehende Nachrichten aus der mit dem Workflow Main Entry - Slack API Request Handler verbundenen Slack-App ausgelöst. Sie müssen keinen Operationen manuell ausführen, um den Agent zu starten; die Slack-App übernimmt das Auslösen automatisch, wenn Benutzer Nachrichten senden.
Der Workflow Scheduler Task Manager unterstützt Operationszeitpläne für alle Operationen, die Sie wiederkehrend ausführen möchten. Um einen Zeitplan zu konfigurieren, öffnen Sie das Menü Aktionen der Operation und wählen Settings > Schedules aus.
Fehlerbehebung
Wenn Probleme auftreten, überprüfen Sie die folgenden Protokolle für detaillierte Informationen zur Fehlerbehebung:
Kontaktieren Sie für weitere Unterstützung den Jitterbit-Support.