Jitterbit Sales Agent
Übersicht
Jitterbit stellt den Sales Agent Kunden über den Jitterbit Marketplace zur Verfügung. Dieser Agent soll das interne Vertriebsteam Ihrer Organisation unterstützen. Der Agent nutzt die Retrieval-Augmented Generation (RAG)-Technik, die LLM-Reasoning mit Zugriff auf externe Tools und Datenquellen kombiniert. Er führt folgende Aufgaben aus:
- Verbindung mit NetSuite und Salesforce, um Echtzeitdaten zu Verkaufsaufträgen, Preisen und Kundendaten mithilfe von Jitterbit Studio abzurufen.
- Integration mit einem LLM, um einen intelligenten Sales Agent Chatbot zu betreiben, auf den über eine benutzerdefinierte API zugegriffen wird, die mit Jitterbit API Manager erstellt wurde.
In diesem Dokument wird erläutert, wie dieser KI-Agent eingerichtet und betrieben wird. Es behandelt die Architektur und Voraussetzungen, Beispiel-Prompts, die zeigen, was der Agent kann, sowie Schritte zur Installation, Konfiguration und zum Betrieb des KI-Agenten.
KI-Agent-Architektur
Das folgende Diagramm zeigt die im Sales Agent implementierte Architektur:
Slack bot) GENERIC_UI_APP(
Generic UI app) JB_APIM_A((
Jitterbit API Manager
custom API)) JB_APIM_B((
Jitterbit API Manager
custom API)) MAIN_ENTRY(Main Entry - Slack API Request Handler workflow) GENERIC_API_RH(Generic API Request Handler workflow) MAIN(Main - AI Agent Tools Logic workflow) AUTH_UTIL@{ shape: delay, label: "Authorization utility" } AUTH_WF[Utility - User Authorization and Session workflow] HISTORY_CONTEXT_UTIL@{ shape: delay, label: "History context utility" } INSERT_QUERY_QA_HIST_WF[Utility - Bot Chat History Storage workflow] TOOLS_ROUTER_OP[Tools Router operation] DECISION@{ shape: diamond, label: "Identify which function is called based on LLM response" } CUSTOMER_LOOKUP_TOOL@{ shape: delay, label: "Customer lookup tool" } CUSTOMER_LIST_WF[Tool - Customer Lookup workflow] PRICING_TOOL@{ shape: delay, label: "Pricing tool" } PRICING_DETAILS_WF[Tool - Pricing Sheets workflow] ORDER_FORM_TOOL@{ shape: delay, label: "Order form tool" } ORDER_FORM_DETAILS_WF[Tool - Customer Order Details workflow] FUNCTION_RESPONSE_TO_OPENAI[Function response to Azure Open AI] FUNCTION_RESPONSE[Function response] subgraph BOUNDARY[**Sales agent architecture**] LLM_NAT_LANG_REPLY[LLM-crafted natural-language reply] AZURE_OPENAI[ Azure Open AI] subgraph CHATBOT_UI_APPS[Chatbot UI apps] SLACK_BOT GENERIC_UI_APP end subgraph JB_AI[ **Jitterbit Studio project**] JB_APIM_A JB_APIM_B MAIN_ENTRY GENERIC_API_RH MAIN DECISION TOOLS_ROUTER_OP subgraph GROUP2[ ] HISTORY_CONTEXT_UTIL AUTH_UTIL ORDER_FORM_TOOL PRICING_TOOL CUSTOMER_LOOKUP_TOOL end subgraph GROUP3[ ] CUSTOMER_LIST_WF PRICING_DETAILS_WF ORDER_FORM_DETAILS_WF AUTH_WF end subgraph GROUP4[ ] FUNCTION_RESPONSE --> FUNCTION_RESPONSE_TO_OPENAI FUNCTION_RESPONSE_TO_OPENAI -->|Store Q and A| INSERT_QUERY_QA_HIST_WF end end end SLACK_BOT --User question--> JB_APIM_A GENERIC_UI_APP -->|User question| JB_APIM_B JB_APIM_A --> MAIN_ENTRY --> MAIN JB_APIM_B --> GENERIC_API_RH --> MAIN MAIN --> HISTORY_CONTEXT_UTIL MAIN ----> AUTH_UTIL --> AUTH_WF MAIN --> DECISION --> TOOLS_ROUTER_OP HISTORY_CONTEXT_UTIL --> INSERT_QUERY_QA_HIST_WF TOOLS_ROUTER_OP --> ORDER_FORM_TOOL ORDER_FORM_TOOL --> ORDER_FORM_DETAILS_WF ORDER_FORM_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> PRICING_TOOL PRICING_TOOL --> PRICING_DETAILS_WF PRICING_DETAILS_WF --> FUNCTION_RESPONSE TOOLS_ROUTER_OP --> CUSTOMER_LOOKUP_TOOL CUSTOMER_LOOKUP_TOOL --> CUSTOMER_LIST_WF CUSTOMER_LIST_WF --> FUNCTION_RESPONSE FUNCTION_RESPONSE_TO_OPENAI ---->|REST call| AZURE_OPENAI AZURE_OPENAI -->|Response| FUNCTION_RESPONSE_TO_OPENAI CHATBOT_UI_APPS --- LLM_NAT_LANG_REPLY LLM_NAT_LANG_REPLY --- FUNCTION_RESPONSE_TO_OPENAI classDef Clear fill:white, stroke:white, stroke-width:0px classDef Plain fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px classDef BoundaryStyle fill:white, stroke-width:0px, rx:15px, ry:15px class CHATBOT_UI_APPS,JB_AI Plain class GROUP2,GROUP3,GROUP4 Clear class BOUNDARY BoundaryStyle
Voraussetzungen
Um den Sales Agent zu nutzen, sind die folgenden Komponenten erforderlich oder werden beim Design des Agenten vorausgesetzt.
Harmony-Komponenten
Sie benötigen eine Jitterbit Harmony-Lizenz mit Zugriff auf die folgenden Komponenten:
- Jitterbit Studio
- Jitterbit API Manager
- Jitterbit Sales Agent als Lizenz-Add-on erworben
- Jitterbit Cloud Datastore (optional)
Unterstützte Endpunkte
Die folgenden Endpunkte sind in das Design des Agenten integriert, aber andere Systeme können durch Änderung der Endpunktkonfigurationen und Workflows des Projekts berücksichtigt werden.
Large Language Model (LLM)
Der KI-Agent nutzt Azure OpenAI als LLM-Anbieter. Um Azure OpenAI zu nutzen, benötigen Sie ein Microsoft Azure-Abonnement mit Berechtigungen zum Erstellen und Verwalten von Azure OpenAI mit einem bereitgestellten gpt-4o-Modell.
Tipp
Informationen zur Auswahl von Preisstufen basierend auf Ihren spezifischen Anforderungen und erwarteter Nutzung finden Sie unter Azure OpenAI-Preise.
Chat-Schnittstelle
Das Design des Agenten integriert Slack als Chat-Schnittstelle für die Interaktion mit dem KI-Agenten.
NetSuite
Der Agent verbindet sich mit NetSuite als primäre Quelle für Kundenauftragsformulare. Die Integration ermöglicht es dem Agenten, Auftragsdaten in Echtzeit während der Benutzerinteraktionen abzurufen, zu aktualisieren oder zu validieren.
Salesforce
Der Agent nutzt Salesforce zur Verwaltung von Kundenkonten und Produktpreisen. Diese Integration versorgt den Agenten mit aktuellen Daten, die erforderlich sind, um genaue Angebote und Kontoinformationen zu generieren.
Beispiel-Prompts
Hier sind Beispiel-Prompts, die der Sales Agent mit Zugriff auf die entsprechenden Daten verarbeiten kann:
Kundenabfragen
- „Zeige mir alle Kunden in Kalifornien."
- „Welche Kunden sind in Sydney ansässig?"
Auftragsformular / Lizenzdetails-Fragen
- „Welche Produkte hat Acme Corp gekauft?"
- „Wie viele Lizenzen für ‚Produkt X' hat ByteTech GmbH?"
- „Kannst du mir die Auftragsdetails für AcmeCloud Ltd geben?"
- „Wie lange ist die Abonnementdauer für Zento Systems?"
Produktpreise oder Planabfragen
- „Was kostet ‚Produkt X' in USD?"
- „Wie viel kostet das Professional-Abonnement?"
- „Welcher Abonnementplan ermöglicht 10 Umgebungen?"
- „Kannst du die Kosten für 15 ‚Produkt X' und 4 ‚Produkt Y' berechnen?"
Kontoverantwortliche-Abfragen
- „Wer verwaltet Acme Corp?"
- „Welche Kunden werden von jsmith@abc.com verwaltet?"
- „Zeige Kunden, die von David Brown in Texas betreut werden."
- „Liste Konten auf, die von Grace im Vereinigten Königreich verwaltet werden."
Installation, Konfiguration und Betrieb
Führen Sie diese Schritte aus, um diesen KI-Agent zu installieren, zu konfigurieren und zu betreiben:
- Customizations herunterladen und das Studio-Projekt installieren.
- Microsoft Azure-Ressourcen erstellen.
- Slack-App erstellen.
- Jitterbit Cloud Datastore vorbereiten.
- Projektvariablen konfigurieren.
- Verbindungen testen.
- Projekt bereitstellen.
- Benutzerdefinierte Jitterbit-API erstellen.
- Projekt-Workflows überprüfen.
- Projekt-Workflows auslösen.
Customizations herunterladen und das Projekt installieren
Führen Sie diese Schritte aus, um Customization-Dateien herunterzuladen und das Studio-Projekt zu installieren:
-
Melden Sie sich beim Harmony-Portal unter https://login.jitterbit.com an und öffnen Sie Marketplace.
-
Suchen Sie den KI-Agent namens Jitterbit Sales Agent. Sie können die Suchleiste verwenden oder im Filter-Bereich unter Typ die Option KI-Agent auswählen, um die Anzeige auf die verfügbaren KI-Agenten zu beschränken.
-
Klicken Sie auf den Dokumentations-Link des KI-Agenten, um seine Dokumentation in einem separaten Tab zu öffnen. Halten Sie den Tab offen, um später darauf zu verweisen.
-
Klicken Sie auf Start Project, um einen zweistufigen Konfigurationsdialog zu öffnen, um Customizations herunterzuladen und den KI-Agent als Studio-Projekt zu importieren.
Hinweis
Wenn Sie den KI-Agent noch nicht erworben haben, wird stattdessen Get agent angezeigt. Klicken Sie darauf, um einen Informationsdialog zu öffnen, und klicken Sie dann auf Submit, damit sich ein Vertreter mit Ihnen über den Kauf des KI-Agenten in Verbindung setzt.
-
Im Konfigurationsschritt 1 Download Customizations werden die folgenden Dateien bereitgestellt, um die Einrichtung des Index und des Indexers in Azure AI Search sowie die Erstellung der Slack-App zu erleichtern. Wählen Sie die Dateien aus und klicken Sie auf Download Files:
-
Azure AI Search Index- und Indexer-JSON-Definitionsdateien
Azure_AI_Search_Datasource_Definition.jsonAzure_AI_Search_Index_Definition.jsonAzure_AI_Search_Indexer_Definition.json
-
Slack-App-Manifestdatei
slack_app_manifest.json
Tipp
Der Konfigurationsdialog enthält eine Warnung, die Vorlage nicht zu importieren, bevor Endpunkt-Customizations angewendet werden. Diese Warnung gilt nicht für diesen KI-Agent und kann ignoriert werden. Befolgen Sie die empfohlene Reihenfolge der Schritte in dieser Dokumentation.
Klicken Sie auf Next.
-
-
Im Konfigurationsschritt 2 Create a New Project wählen Sie eine Umgebung aus, in der Sie das Studio-Projekt erstellen möchten, und klicken Sie auf Create Project.
-
Ein Fortschrittsdialog wird angezeigt. Nachdem angezeigt wird, dass das Projekt erstellt wurde, verwenden Sie den Dialog-Link Go to Studio oder öffnen Sie das Projekt direkt von der Studio-Seite Projects.
Microsoft Azure-Ressourcen erstellen
Erstellen Sie die folgenden Microsoft Azure-Ressourcen und behalten Sie die folgenden Informationen zur Konfiguration des KI-Agenten. Um diese Ressourcen zu erstellen und zu verwalten, benötigen Sie ein Microsoft Azure-Abonnement mit den entsprechenden Berechtigungen.
Azure Blob-Container
Sie müssen einen Azure Blob-Container erstellen, um Kundendetails zu speichern. Daten aus dem Blob-Container werden mithilfe eines Index und eines Indexers in Azure AI Search indexiert.
Sie benötigen die SAS-URL des Containers, um die Werte der Azure Blob Storage-Projektvariablen zu bestimmen. So generieren Sie die SAS-URL:
- Navigieren Sie im Azure-Portal zu Storage accounts und öffnen Sie das spezifische Speicherkonto.
- Wählen Sie im Ressourcenmenü unter Data storage die Option Containers aus und öffnen Sie den spezifischen Container.
- Wählen Sie im Ressourcenmenü unter Settings die Option Shared access tokens aus.
- Verwenden Sie das Permissions-Menü, um zu überprüfen, dass die Shared Access Signature (SAS)-URL für diesen Container mindestens die Berechtigungen Read und Write hat:

- Klicken Sie auf SAS-Token und URL generieren.
- Kopieren Sie die Blob-SAS-URL, die unten angezeigt wird.
- Bestimmen Sie die Werte der Azure Blob Storage-Projektvariablen aus der SAS-URL. Die SAS-URL hat das Format
{{ azure_blob_base_url }}/{{ Azure_Customer_Details_Container }}?{{ azure_customer_detail_blob_sig }}.
Wenn Sie die JSON-Definitionsdateien aus den Anpassungsdateien des KI-Agenten verwenden, um den Index und Indexer zu generieren, benötigen Sie auch den Azure Blob Storage-Kontoschlüssel. Um Kontozugriffschlüssel anzuzeigen:
- Navigieren Sie im Azure-Portal zu Speicherkonten und öffnen Sie das spezifische Speicherkonto.
- Wählen Sie im Ressourcenmenü unter Sicherheit + Netzwerk die Option Zugriffschlüssel aus.
-
Klicken Sie auf Schlüssel anzeigen, um den Zugriffschlüssel anzuzeigen, den Sie während der Konfiguration von Azure AI Search verwenden.

Azure AI Search-Dienst
Sie müssen einen Azure AI Search-Dienst erstellen und seinen Index sowie Indexer konfigurieren, um die Daten aus dem Blob-Container zu verarbeiten.
Sie benötigen die URL und den API-Schlüssel des Azure AI Search-Diensts, um die Werte der Azure AI Search-Projektvariablen zu bestimmen:
- URL: Um den Wert für
azure_ai_search_urlzu erhalten, lesen Sie die Azure-Dokumentation Dienstinformationen abrufen. - API-Schlüssel: Um den Wert für
azure_ai_search_api_keyzu erhalten, lesen Sie die Azure-Dokumentation Rollenbasierte Zugriffskontrolle konfigurieren.
Sie können die JSON-Definitionsdateien aus den Anpassungsdateien des KI-Agenten verwenden, um den Index und Indexer zu generieren, oder Sie erstellen diese selbst.
Wenn Sie die bereitgestellten Definitionsdateien verwenden, müssen Sie die folgenden Platzhalter durch Ihre eigenen Konfigurationswerte ersetzen:
Azure_AI_Search_Indexer_Definition.json
| Platzhalter | Beschreibung |
|---|---|
{{Your Azure AI Search Service Name}} |
Der Name des Azure AI Search-Diensts. |
Azure_AI_Search_Datasource_Definition.json
| Platzhalter | Beschreibung |
|---|---|
{{Your Azure AI Search Service Name}} |
Der Name des Azure AI Search-Diensts. |
{{Your Azure Blob Account Name}} |
Der Name des Azure Blob-Kontos. |
{{Your Azure Blob Account Key}} |
Der Zugriffschlüssel für das Azure Blob Storage-Konto, wie in Azure Blob-Container oben beschrieben. |
{{your_azure_blob_container_name}} |
Der Name des Azure Blob-Containers. |
Azure OpenAI-Ressource
Sie müssen eine Azure OpenAI-Ressource erstellen und ein gpt-4o- oder gpt-4.1-Modell über das Azure AI Foundry-Portal bereitstellen.
Sie benötigen den Bereitstellungsnamen, die Azure OpenAI-Endpunkt-URL und den API-Schlüssel, um die Werte der Azure OpenAI-Projektvariablen zu bestimmen. Um diese Werte zu finden:
- Öffnen Sie im Azure AI Foundry-Portal die spezifische OpenAI-Ressource.
-
Die Werte für die Endpunkt-URL (
azure_openai_base_url) und den API-Schlüssel (azure_openai_api_key) werden auf der Landingpage der Ressource angezeigt:
-
Wählen Sie im Navigationsmenü unter Shared resources die Option Deployments aus. Der Bereitstellungsname (
Azure_OpenAI_Deployment_Name) wird angezeigt.
Slack-App erstellen
Führen Sie diese Schritte aus, um die Sales Agent-Chatoberfläche in Slack zu erstellen:
-
Erstellen Sie eine Slack-App mit der Slack-App-Manifestdatei (
slack_app_manifest.json), die mit den Anpassungsdateien dieses KI-Agenten bereitgestellt wird. Alternativ können Sie die App von Grund auf neu erstellen. -
Wenn Sie die bereitgestellte Manifestdatei verwenden, ersetzen Sie die folgenden Platzhalter durch Ihre eigenen Konfigurationswerte:
Platzhalter Beschreibung {{Replace with Slack bot name}}Der Name, den Ihr Slack-Bot haben soll, wie er den Benutzern angezeigt wird. Ersetzen Sie diesen Wert an zwei Stellen im Manifest. {{Replace with Jitterbit API URL}}Die Service-URL der benutzerdefinierten Jitterbit-API, die Sie unter Create the Jitterbit custom API erstellt haben. -
Installieren Sie die App in Ihrem Slack-Workspace.
-
Rufen Sie das Bot-Token ab (für das Feld Bot User OAuth Token der Slack-Verbindung) und geben Sie seinen Wert für die Projektvariable
slack_bot_oauth_user_tokenein. -
Konfigurieren Sie die Projektvariable
slack_channel_namemit dem Kanal, an den Benachrichtigungen gesendet werden sollen. -
Geben Sie den Bot-Token-Wert für die Projektvariable
slack_bot_oauth_user_tokenund den Kanalnamen für die Projektvariableslack_channel_nameein. Diese konfigurieren Sie im nächsten Schritt.
Jitterbit Cloud Datastore vorbereiten
Erstellen Sie zwei Schlüsselspeicher im Jitterbit Cloud Datastore, Bot_Authorized_Users und askjb_sales_q_and_a, deren Felder die Namen und Typen aus den folgenden Tabellen haben.
Verwenden Sie beim Hinzufügen von benutzerdefinierten Feldern die folgenden Tabellen, um zu bestimmen, ob jedes Feld in der Cloud Datastore-Benutzeroberfläche auf Required umgeschaltet werden soll. Die Felder AlternativeKey und Value sind Standardfelder, die nicht entfernt oder umgeschaltet werden können.
Nach dem Hinzufügen von benutzerdefinierten Feldern fügen Sie einen Schlüsselspeicher-Datensatz für jeden Benutzer hinzu, der den KI-Agenten-Bot verwenden darf. Sie müssen die in den folgenden Tabellen gekennzeichneten Werte manuell definieren. Sie können die Werte von Feldern leer lassen, deren Werte automatisch ausgefüllt werden oder nicht verwendet werden.
Bot_Authorized_Users
Dieser Schlüsselspeicher enthält die Liste der autorisierten Benutzer und deren Sitzungen. Sie müssen die E-Mail-Adressen der Benutzer manuell eingeben, die berechtigt sind, auf den KI-Agenten-Bot zuzugreifen.
| Name | Typ | Erforderlich | Wertdefinition | Beschreibung |
|---|---|---|---|---|
Key |
Text | Ja | Manuell eingeben | Die E-Mail-Adresse des Benutzers, der berechtigt ist, über den Slack-Bot mit dem KI-Agenten zu interagieren. Dieser Wert wird manuell eingegeben. |
AlternativeKey |
Text | Nein | Automatisch ausgefüllt | Die Sitzung für den Benutzer wird während der Ausführung automatisch generiert. Eine manuelle Eingabe ist nicht erforderlich. |
Value |
Text | Nein | Manuell eingeben | Die E-Mail-Adresse des Benutzers, der berechtigt ist, über den Slack-Bot mit dem KI-Agenten zu interagieren. Dieser Wert wird manuell eingegeben. Obwohl dieses Feld standardmäßig nicht als erforderlich gekennzeichnet ist, ist die Angabe eines Werts erforderlich, damit der KI-Agent funktioniert. |
askjb_sales_q_and_a
Dieser Schlüsselspeicher behält den Chat-Verlauf eines Bots, um dem LLM Kontextinformationen bereitzustellen. Die Integration nutzt ihn, um Frage- und Antwortverlauf zu speichern. Alle Daten werden während der Interaktionsausführung automatisch eingegeben.
| Name | Typ | Erforderlich | Wertdefinition | Beschreibung |
|---|---|---|---|---|
Key |
Text | Ja | Automatisch ausgefüllt | Gibt die eindeutige Kennung an, die das System einer Nachricht zuweist. |
AlternativeKey |
Text | Nein | Automatisch ausgefüllt | Gibt die eindeutige Kennung an, die das System einer Chat-Sitzung zuweist. |
Value |
Text | Nein | Nicht verwendet | Nicht verwendet. |
slackChannel |
Text | Ja | Automatisch ausgefüllt | Die Slack-Kanal-ID, von der aus die Nachricht gesendet wird. |
User |
Text | Ja | Automatisch ausgefüllt | Der Slack-Benutzername des Benutzers, der die Nachricht sendet. |
FirstName |
Text | Nein | Automatisch ausgefüllt | Vorname des Benutzers, der die Nachricht sendet. |
LastName |
Text | Nein | Automatisch ausgefüllt | Nachname des Benutzers, der die Nachricht sendet. |
Email |
Text | Ja | Automatisch ausgefüllt | E-Mail-Adresse des Benutzers, der die Nachricht sendet. |
MessageTimestampText |
Text | Ja | Automatisch ausgefüllt | Der Zeitstempel-Text der Nachricht. |
UserQuestion |
Großer Text | Ja | Automatisch ausgefüllt | Die Frage oder Nachricht, die der Benutzer an den KI-Agent übermittelt. |
AIAnswer |
Großer Text | Ja | Automatisch ausgefüllt | Die Antwort, die der KI-Agent auf die Frage des Benutzers generiert. |
ai_reformulate_question |
Großer Text | Nein | Automatisch ausgefüllt | Die Frage des Benutzers nach Umformulierung oder Umphrasierung durch die KI zur Verbesserung des Verständnisses. |
Projektvariablen konfigurieren
Im Studio-Projekt, das zuvor über den Marketplace installiert wurde, müssen Werte für die folgenden Projektvariablen festgelegt werden.
Um Projektvariablen zu konfigurieren, nutzen Sie das Menü des Projekts, um Projektvariablen auszuwählen. Dies öffnet eine Schublade am unteren Rand der Seite, in der Sie die Werte überprüfen und festlegen können.
Salesforce
| Variablenname | Beschreibung |
|---|---|
SF_Login_URL |
Server Host in der Salesforce-Verbindung |
SF_Password |
Passwort in der Salesforce-Verbindung |
SF_Security_Token |
Sicherheitstoken in der Salesforce-Verbindung |
SF_User_Name |
Benutzername in der Salesforce-Verbindung |
NetSuite
| Variablenname | Beschreibung |
|---|---|
NetSuite_Account |
Konto in der NetSuite-Verbindung |
NetSuite_Consumer_Key |
Consumer Key in der NetSuite-Verbindung |
NetSuite_Consumer_Secret |
Consumer Secret in der NetSuite-Verbindung |
NetSuite_Base_URL |
NetSuite-Basis-URL, z. B. https://{{NetSuite_Account}}.suitetalk.api.netsuite.com. |
NetSuite_Token_Key |
Token Key in der NetSuite-Verbindung |
NetSuite_Token_Secret |
Token Secret in der NetSuite-Verbindung |
Azure Blob Storage
| Variablenname | Beschreibung |
|---|---|
Azure_Customer_Details_Container |
Der Name des Azure Blob-Containers zum Speichern von Kundeninformationen aus Bestellformularen. |
azure_customer_detail_blob_sig |
SAS-URL-Signatur für Azure_Customer_Details_Container. |
azure_blob_base_url |
Azure-Container-Service-Basis-URL für Azure_Customer_Details_Container. |
Tipp
Diese Werte können aus der SAS-URL abgeleitet werden, die das Format {{azure_blob_base_url}}/{{Azure_Customer_Details_Container}}?{{azure_customer_detail_blob_sig}} hat.
Azure AI Search
| Variablenname | Beschreibung |
|---|---|
customer_search_index_name |
Der Name des Azure-Index, der Kundeninformationen aus Bestellformularen speichert. |
Azure_SalesOrders_Customer_Indexer |
Der Name des Azure-Indexers, der Daten aus Azure_Customer_Details_Container in den Index customer_search_index_name indiziert. |
azure_ai_search_url |
Azure AI Search-Service-Basis-URL. |
azure_ai_search_api_key |
API-Schlüssel für den Azure AI Search-Service. |
Azure OpenAI
| Variablenname | Beschreibung |
|---|---|
Max_Output_Tokens |
Die maximale Anzahl von Token, die das LLM in einer Antwort generieren kann. GPT-4.1 unterstützt bis zu 32768 Token, während GPT-4o bis zu 16384 unterstützt. |
Azure_OpenAI_Deployment_Name |
Der Name der Bereitstellung für das LLM in Azure OpenAI. |
azure_openai_base_url |
Azure OpenAI-Service-Basis-URL. |
azure_openai_api_key |
API-Schlüssel für den Azure OpenAI-Service. |
Slack
| Variablenname | Beschreibung |
|---|---|
salesorder_slack_bot_token |
Das Slack-Bot-Token, das nach dem Erstellen der Slack-App abgerufen wird und für das Bot user OAuth access token in der Slack-Verbindung verwendet wird. |
Hinweis
Die Slack-App wird in einem späteren Schritt erstellt. Vorerst können Sie diese Variable leer lassen.
Allgemein
| Variablenname | Beschreibung |
|---|---|
Authorized_User_Admin |
Kontaktname/E-Mail, die in der an den Benutzer gesendeten Antwort angezeigt wird, wenn ein Fehler auftritt. |
Customer_LastOrder_DefaultDate |
Das Standarddatum (mm/dd/yyyy), ab dem Bestellungen während des ersten Durchlaufs oder eines historischen Durchlaufs aus NetSuite abgerufen werden, wenn incrementalRun auf false gesetzt ist. Beispiel: 06/01/2004. |
Default_Last_Sync_Date |
Standarddatum der letzten Synchronisierung, das verwendet wird, wenn der Cache-Wert nicht verfügbar ist. |
incrementalRun |
Bei true werden nur inkrementelle (neue oder aktualisierte) Bestellungen aus NetSuite abgerufen. Bei false oder leer wird ein vollständiger Bestellverlauf ab dem Standarddatum abgerufen. |
Only_Unexpired_Orders |
Bei true werden nur Bestellungen mit nextbilldate größer als das heutige Datum aus NetSuite abgerufen. |
Verbindungen testen
Testen Sie die Endpunktkonfigurationen, um die Konnektivität mit den definierten Projektvariablenwerten zu überprüfen.
Um Verbindungen zu testen, gehen Sie zur Registerkarte Projektendpunkte und Konnektoren der Design-Komponentenpalette, fahren Sie mit der Maus ü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 erstellen
Erstellen Sie eine benutzerdefinierte API mit API Manager für eine der folgenden Optionen:
- Slack-Bot-API-Request-Handler: Erforderlich, wenn Sie die in diesem KI-Agent enthaltene Slack-Benachrichtigung verwenden.
- Generischer API-Request-Handler: Optional. Verwenden Sie dies für die Verarbeitung von API-Anfragen aus einer beliebigen Anwendung.
Slack-Bot-API-Request-Handler erstellen
Diese benutzerdefinierte Jitterbit-API löst den Vorgang Slack Bot API Request Handler aus. Konfigurieren und veröffentlichen Sie die benutzerdefinierte API mit den folgenden Einstellungen:
- API-Service:
Slack Bot API Request Handler - Pfad:
/ - Projekt: Wählen Sie das Studio-Projekt aus, das aus dem
Jitterbit Sales Agentim Marketplace erstellt wurde - Auszulösender Vorgang:
Slack Bot API Request Handler - Methode:
POST - Antworttyp:
System Variable
Behalten Sie die Service-URL der veröffentlichten API für die Verwendung beim Erstellen der Slack-App. Die Service-URL finden Sie in der API-Details-Schublade auf der Registerkarte Services, indem Sie auf die Spalte Aktionen des Service fahren und API-Service-URL kopieren klicken.
Generischer API-Request-Handler
Diese benutzerdefinierte Jitterbit-API löst die Operation Generic API request Handler aus. Dies ist nicht erforderlich. Erstelle diese API, wenn du andere Anwendungen zur Verarbeitung von HTTP-API-Anfragen verwendest. Konfiguriere und veröffentliche die benutzerdefinierte API mit den folgenden Einstellungen:
- Dienstname:
Generic API request Handler - Projekt: Wähle das Studio-Projekt aus, das vom
Jitterbit Sales Agentim Marketplace erstellt wurde - Operation:
Generic API request Handler - Methode:
POST - Antworttyp:
System Variable
Tipp
Du kannst auch ein Sicherheitsprofil für die Authentifizierung hinzufügen.
{
"username": "abc@abc.com",
"sessionId": "123608",
"prompt": "Order Forms details for xyz"
}
{
"message": "Based on order forms, here are the complete order details: ...",
"status_code": 200
}
Projekt-Workflows überprüfen
Überprüfe die Workflows im offenen Studio-Projekt zusammen mit den folgenden Beschreibungen, um zu verstehen, was sie tun. Die folgenden Beschreibungen zeigen, wo du das System durch Änderung der Endpunktkonfigurationen und Workflows des Projekts ersetzen könntest.
-
Utility-Upload Customer Order Forms to Azure
Dieser Workflow automatisiert die Verarbeitung von Bestellformularen durch Extrahieren von Details aus NetSuite, Hochladen von Dokumenten in Azure Blob Storage und Indexierung in dem Azure AI Search-Index.
Dieser Workflow muss zuerst ausgeführt werden, um alle aktiven Kundendaten zu laden und Kundendetails dem KI-Agent zur Verfügung zu stellen. Das Ausführen des Workflows wird später auf dieser Seite unter Trigger the project workflows beschrieben.
Falls sich die Bestellformdaten deiner Organisation in einem anderen System als NetSuite befinden, musst du die Operationen des Workflows ändern, um NetSuite-spezifische Komponenten durch solche für deinen Endpunkt zu ersetzen.
-
Main Entry - Slack API Request Handler
Dieser Workflow verwaltet eingehende Slack-Bot-Anfragen und überprüft die Benutzerautorisierung. Er wird jedes Mal über eine benutzerdefinierte Jitterbit-API ausgelöst, wenn dein Vertriebsteam mit der Slack-Bot-Chat-Benutzeroberfläche interagiert (d. h. eine Slack-Nachricht daran sendet). Die Konfiguration der benutzerdefinierten Jitterbit-API wird später auf dieser Seite unter Create the Jitterbit custom API beschrieben.
Falls du Slack nicht verwendest, kann dieser Workflow ignoriert werden und wird nicht ausgelöst. Um eine andere Chat-Benutzeroberfläche für die Interaktion deines Vertriebsteams zu verwenden, nutze den Workflow
Generic API Request Handler, der ebenfalls über eine benutzerdefinierte Jitterbit-API ausgelöst wird. -
Main - AI Agent Tools Logic
Nach Erhalt der Benutzerautorisierung von entweder dem Workflow
Main Entry - Slack API Request HandleroderGeneric API Request Handlerverwaltet dieser Workflow Function-Calling-Anfragen an das Large Language Model (LLM) und trifft Entscheidungen darüber, welches Tool basierend auf der LLM-Antwort ausgeführt werden soll. Es gibt drei Haupttool-Aufrufe:-
Customer_Order_Function: Dieses Tool beantwortet Benutzeranfragen zu Bestellformularen durch Aufrufen der Operation
Main - Get Customer Order Form Detailsim WorkflowTool-Customer Order Details. -
Pricing_Function: Dieses Tool beantwortet Benutzeranfragen zu Produktpreisen durch Aufrufen der Operation
Main - Pricing Sheetim WorkflowTool-Pricing Sheets. -
Customer_Lookup_By_Location_Function: Dieses Tool beantwortet Benutzeranfragen zum Abrufen von Kunden nach Standort oder Kontoinhaber durch Aufrufen der Operation
Main - Customer Lookupim WorkflowTool - Customer Lookup.
-
-
Tool-Customer Order Details
Dieser Workflow ruft Kundenbestelldetails aus NetSuite ab.
Um einen anderen Endpunkt als NetSuite zu verwenden, erstelle eine neue Operation zum Abrufen von Bestellformularen aus dem System und weise die Ergebnisse der globalen Variable
extractedContentzu. Löse dann die neue Operation aus der OperationMain - Get Customer Order Form Detailsaus. -
Tool-Pricing Sheets
Dieser Workflow ruft Produktpreise aus Salesforce ab.
In der Konfiguration der Salesforce Query-Aktivität ruft die folgende Abfrage Produktpreisinformationen nach Agent ab. Falls deine Salesforce-Organisation diese Objekte und Felder nicht verwendet oder falls Produktpreisinformationen in verschiedenen Objekten/Feldern gespeichert sind, funktioniert dieser Workflow nicht ordnungsgemäß. In diesem Fall kann der Agent keine Preisfragen beantworten. Passe die Abfrage in diesem Workflow an dein Salesforce-Organisationsdatenmodell an:
SELECT Product2.Description,
Product2.Family,
Product2.ProductCode,
CurrencyIsoCode,
Name,
UnitPrice,
Pricebook2.Name,
Id
FROM PricebookEntry
WHERE IsDeleted = false
AND IsArchived = false
AND IsActive = true
AND Pricebook2.IsActive = true
AND Pricebook2.IsDeleted = false
AND Pricebook2.IsArchived = false
AND Product2.IsActive = true
AND Product2.IsDeleted = false
AND Product2.IsArchived = false
AND CurrencyIsoCode = '{{ currencycode }}'
ORDER BY Name
Um einen anderen Endpunkt als Salesforce zu verwenden, erstelle eine neue Operation zum Abrufen von Produktpreisen aus dem System und weise die Ergebnisse der globalen Variable pricing_sheet zu. Löse dann die neue Operation aus der Operation Main - Pricing Sheet aus.
-
Tool - Customer Lookup
Dieser Workflow ruft Kunden aus Salesforce ab.
In der Konfiguration der Salesforce Query-Aktivität ruft die folgende Abfrage Kundenkonteninformationen ab. Falls deine Salesforce-Organisation unterschiedliche Felder oder Objekte für Kundendetails verwendet, passe diese Abfrage in diesem Workflow entsprechend an:
SELECT Id, BillingCity, BillingCountry, BillingState, Name FROM Account WHERE Type = 'Customer'Um einen anderen Endpunkt als Salesforce zu verwenden, erstelle eine neue Operation zum Abrufen von Kunden aus dem System und weise die Ergebnisse der globalen Variable
extractedContentzu. Löse dann die neue Operation aus der OperationMain - Customer Lookupaus. -
Utility - Get All Account Owners
Dieser Workflow ruft Kontoeigentümer aus Salesforce ab.
In der Konfiguration der Salesforce Query-Aktivität ruft die folgende Abfrage Kontoeigentümer (Name und E-Mail) für alle Konten vom Typ
CustomeroderPartnerab. Falls deine Salesforce-Organisation unterschiedliche Kontotypen oder benutzerdefinierte Felder zur Klassifizierung von Konten verwendet, passe diese Abfrage in diesem Workflow entsprechend an:SELECT OwnerId, Owner.Email, Owner.Name FROM Account WHERE Type IN ('Customer', 'Partner')Um einen anderen Endpunkt als Salesforce zu verwenden, erstelle eine neue Operation zum Abrufen von Kontoeigentümern aus dem System und weise die Ergebnisse der Variable
Account_Owner_Listzu. Löse dann die neue Operation aus der OperationMain - Get Owner Listaus. -
Utility-User Authorization And Session
Dieser Workflow verwaltet die Benutzerautorisierung und Sitzung. Er nutzt Jitterbit Cloud Datastore, um eine Liste autorisierter Benutzer und ihrer aktiven Sitzungen zu führen.
Um diesen Workflow mit einem alternativen Datenspeicher oder Autorisierungsmechanismus zur Verwaltung des Benutzerzugriffs und der Sitzungen zu konfigurieren, passe die Operationen des Workflows entsprechend an.
-
Utility - Bot Chat History Storage
Dieser Workflow verwaltet die Speicherung des Bot-Chat-Verlaufs, was für die Bereitstellung von Speicherkontext für LLMs erforderlich ist. Er nutzt Jitterbit Cloud Datastore zu diesem Zweck.
Um mit anderen Datenspeicherlösungen zum Speichern und Abrufen des Chat-Verlaufs zu integrieren, passe die Operationen des Workflows entsprechend an.
-
Generic API Request Handler
Dieser Workflow verarbeitet HTTP-API-Anfragen von beliebigen Anwendungen. Um mit deinen Anwendungen zu integrieren, erstelle eine benutzerdefinierte Jitterbit-API, die die Operation
Generic API request Handlerauslöst. Die URL dieser API kann dann von beliebigen Anwendungen zum Senden und Empfangen von Anfragen verwendet werden.Die Konfiguration der benutzerdefinierten Jitterbit-API wird unter Create the Jitterbit custom API später auf dieser Seite beschrieben.
Trigger die Projekt-Workflows
Für das initiale Laden von Daten führe die Operation im ersten Workflow Utility-Upload Customer Order Forms to Azure aus. Dies kann über die Run-Option erfolgen, die durch Hovern über die Operation angezeigt wird. Du musst die Operation in Zukunft erneut ausführen, wenn deine Daten aktualisiert werden.
Tipp
Du möchtest diese Operation möglicherweise auf einen Zeitplan setzen, um regelmäßig aktualisierte Daten zu erhalten. Dies kann über das Aktionsmenü der Operation unter Settings > Schedules erfolgen.
Die zwei anderen Haupt-Workflows werden durch die benutzerdefinierten Jitterbit-APIs ausgelöst:
-
Main Entry - Slack API Request Handler: Dieser Workflow wird von Slack über die benutzerdefinierte APISlack Bot API Request Handlerausgelöst. Das Senden einer direkten Nachricht an die Slack-App initiiert den Trigger der benutzerdefinierten API. -
Generic API Request Handler: Dieser Workflow wird von einer anderen Anwendung über die benutzerdefinierte APIGeneric API request Handlerausgelöst. Das Senden einer Anfrage an die konfigurierte API initiiert den benutzerdefinierten API-Trigger.
Alle anderen Workflows werden durch andere Operationen ausgelöst und sind nachgelagert zu den oben aufgeführten. Sie sind nicht dazu bestimmt, eigenständig ausgeführt zu werden.
Troubleshooting
Bei Problemen überprüfen Sie die folgenden Protokolle für detaillierte Informationen zur Fehlerbehebung:
Für weitere Unterstützung wenden Sie sich an den Jitterbit-Support.