Business Messages-Agents unterstützen direkte Integrationen mit
- Dialogflow ES:Intent-Abgleich und FAQs
- Dialogflow CX: Intent-Abgleich und Übergabe an Kundenservicemitarbeiter
So integrieren Sie einen Business Messages-Agent in andere Dialogflow-Funktionen: ES oder Dialogflow CX in der Dokumentation der einzelnen Produkte.
Wenn ein Nutzer eine Nachricht an einen Agent mit einer Dialogflow-Integration sendet,
Business Messages übergibt die Nutzernachricht an Dialogflow und sendet die
Antwort an den Agent im Feld
dialogflowResponse
-Objekt. Sie können Agents so konfigurieren,
die Antwort von Dialogflow automatisch an den Nutzer senden, ohne dass
Weitere Informationen finden Sie unter Automatische Antworten.
.
Dialogflow-Einbindung
Bevor Sie die Dialogflow-basierte Automatisierung über Business Messages nutzen können, müssen Sie die Dialogflow-Integration aktivieren.
Vorbereitung
Für den Einstieg benötigen Sie
- Business Messages Kundenservicemitarbeiter
- einen Dialogflow-Agent in der Region Global mit einer englischen Sprache (de)
Wenn Sie keinen Dialogflow-Agent haben, erstellen Sie einen.
Dialogflow ES
Bevor Sie eine Dialogflow ES-Integration aktivieren können, benötigen Sie Projekt-ID des Dialogflow-Agents. Um die Projekt-ID zu finden,
- Rufen Sie die Dialogflow-Konsole auf.
- Wählen Sie den Dialogflow-Agent aus, den Sie mit Business Messages verbinden möchten. und klicken Sie dann auf das Zahnradsymbol neben dem Agent-Namen.
- Notieren Sie sich unter Google-Projekt den Wert für die Projekt-ID.
Dialogflow CX
Bevor Sie eine Dialogflow CX-Integration aktivieren können, benötigen Sie Ihr Projekt-ID und Agent-ID des Dialogflow-Agents. Um diese IDs zu finden,
- Rufen Sie die Dialogflow CX-Konsole auf.
- Wählen Sie Ihr Dialogflow-Projekt aus.
- Klicken Sie in der Agent-Auswahl auf das Dreipunkt-Menü neben Ihrem Dialogflow-Agent.
- Klicken Sie auf Namen kopieren. Dadurch wird der vollständige Name des Agents in das Feld
folgendes Format:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
- Notieren Sie sich die Werte der Projekt-ID und der Agent-ID.
Integration erstellen
Rufen Sie die E-Mail-Adresse des Dialogflow-Dienstkontos des Partners ab von
dialogflowServiceAccountEmail
Ersetzen PARTNER_ID durch Ihre Partner-ID.cURL
# This code gets the partner. # Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get # Replace the __PARTNER_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X GET \ "https://businesscommunications.googleapis.com/v1/partners/__PARTNER_ID__" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)"
Node.js
/** * This code snippet gets a partner. * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const PARTNER_ID = 'EDIT_HERE'; const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); const partnerName = 'partners/' + PARTNER_ID; if (authClient) { // Setup the parameters for the API call const apiParams = { auth: authClient, name: partnerName, }; bcApi.partners.get(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent found console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code gets a partner. Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( Agent, BusinesscommunicationsPartnersGetRequest, ) # Edit the values below: PARTNER_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) partners_service = BusinesscommunicationsV1.PartnersService(client) partner_name = 'partners/' + PARTNER_ID partner = partners_service.Get(BusinesscommunicationsPartnersGetRequest( name=partner_name )) print(partner)
Kopieren Sie die E-Mail-Adresse des Dienstkontos. Mit diesem Konto wird Ihre Business Messages verknüpft und Dialogflow-Agents.
In der Google Cloud Console, wählen Sie Ihr Dialogflow-Projekt aus.
Rufen Sie IAM auf. Berechtigungen
Klicken Sie auf Hinzufügen und geben Sie für Neue Mitglieder die E-Mail-Adresse des Dienstkontos ein.
Wählen Sie unter Rolle auswählen die Rolle Agent-Bearbeiter in Dialogflow-Konsole aus.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie Dialogflow API-Client aus.
Klicken Sie auf Speichern.
Dialogflow-Projekt in den Business Messages-Agent einbinden
Ersetzen Sie AUTO_RESPONSE_STATUS durch AKTIVIERT oder DEAKTIVIERT, je nach ob Business Messages automatisch auf Nachrichten Nutzer mit Dialogflow-Antworten.
Dialogflow ES
cURL
# This code creates a Dialogflow ES integration. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es # Replace the __BRAND_ID__, __AGENT_ID__, __DIALOGFLOW_ES_PROJECT_ID__ and __AUTO_RESPONSE_STATUS__ # Make sure a service account key file exists at ./service_account_key.json curl -X POST \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -d '{ "dialogflowEsIntegration": { "dialogflowProjectId": "__DIALOGFLOW_ES_PROJECT_ID__", "autoResponseStatus": "__AUTO_RESPONSE_STATUS__" } }'
Node.js
/** * This code snippet creates a Dialogflow ES integration. * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const BRAND_ID = 'EDIT_HERE'; const AGENT_ID = 'EDIT_HERE'; const DIALOGFLOW_ES_PROJECT_ID = 'EDIT_HERE' const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); const uuidv4 = require('uuid').v4; // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID; if (authClient) { const integrationObject = { dialogflowEsIntegration: { dialogflowProjectId: DIALOGFLOW_ES_PROJECT_ID, autoResponseStatus: 'ENABLED' } }; // Setup the parameters for the API call const apiParams = { auth: authClient, parent: agentName, resource: integrationObject }; bcApi.brands.agents.integrations.create(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent created console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code snippet creates a Dialogflow ES integration. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest, DialogflowEsIntegration ) # Edit the values below: BRAND_ID = 'EDIT_HERE' AGENT_ID = 'EDIT_HERE' DIALOGFLOW_ES_PROJECT_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client) agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID integration = integrations_service.Create(BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest( integration=DialogflowEsIntegration( autoResponseStatus=DialogflowEsIntegration.AutoResponseStatusValueValuesEnum.ENABLED, dialogflowProjectId=DIALOGFLOW_ES_PROJECT_ID ), parent=agent_name )) print(integration)
Dialogflow CX
cURL
# This code creates a Dialogflow CX integration. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx # Replace the __BRAND_ID__, __AGENT_ID__, __DIALOGFLOW_CX_PROJECT_ID__, __DIALOGFLOW_CX_AGENT_ID__ and __AUTO_RESPONSE_STATUS__ # Make sure a service account key file exists at ./service_account_key.json curl -X POST \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -d '{ "dialogflowCxIntegration": { "dialogflowProjectId": "__DIALOGFLOW_CX_PROJECT_ID__", "dialogflowAgentId": "__DIALOGFLOW_CX_AGENT_ID__", "autoResponseStatus": "__AUTO_RESPONSE_STATUS__" } }'
Node.js
/** * This code snippet creates a Dialogflow CX integration. * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const BRAND_ID = 'EDIT_HERE'; const AGENT_ID = 'EDIT_HERE'; const DIALOGFLOW_CX_AGENT_ID = 'EDIT_HERE' const DIALOGFLOW_CX_PROJECT_ID = 'EDIT_HERE' const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); const uuidv4 = require('uuid').v4; // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID; if (authClient) { const integrationObject = { dialogflowCxIntegration: { dialogflowProjectId: DIALOGFLOW_CX_PROJECT_ID, dialogflowAgentId: DIALOGFLOW_CX_AGENT_ID, autoResponseStatus: 'ENABLED' } }; // Setup the parameters for the API call const apiParams = { auth: authClient, parent: agentName, resource: integrationObject }; bcApi.brands.agents.integrations.create(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent created console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code snippet creates a Dialogflow CX integration. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest, DialogflowCxIntegration ) # Edit the values below: BRAND_ID = 'EDIT_HERE' AGENT_ID = 'EDIT_HERE' DIALOGFLOW_CX_AGENT_ID = 'EDIT_HERE' DIALOGFLOW_CX_PROJECT_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client) agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID integration = integrations_service.Create(BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest( integration=DialogflowCxIntegration( autoResponseStatus=DialogflowCxIntegration.AutoResponseStatusValueValuesEnum.ENABLED, dialogflowAgentId=DIALOGFLOW_CX_AGENT_ID, dialogflowProjectId=DIALOGFLOW_CX_PROJECT_ID ), parent=agent_name )) print(integration)
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
Integration
Es dauert etwa zwei Minuten, eine Verbindung zwischen Business Messages und Dialogflow herzustellen. Bis
den Status der Integration prüfen, den Status der Integration abrufen
OperationInfo
Integration aktualisieren
Führen Sie den folgenden Befehl aus, um die Einstellung für automatische Antworten Ihres Agents zu aktualisieren. Ersetzen Sie AUTO_RESPONSE_STATUS durch AKTIVIERT oder DEAKTIVIERT, je nachdem, ob Business Messages automatisch Nutzern mit Dialogflow-Antworten antworten.
Dialogflow ES
cURL
# This code updates the Dialogflow association. # Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateDialogflowAssociation # Replace the __BRAND_ID__ and __AGENT_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/dialogflowAssociation?updateMask=enableAutoResponse" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "enableAutoResponse": true }'
Dialogflow CX
cURL
# This code updates the Dialogflow association. # Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateDialogflowAssociation # Replace the __BRAND_ID__ and __AGENT_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/dialogflowAssociation?updateMask=enableAutoResponse" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "enableAutoResponse": true }'
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
Integration
Zwischen Dialogflow-Versionen wechseln
Ein Business Messages-Agent kann jeweils nur eine Dialogflow-Integration unterstützen. Wenn Sie von einer Dialogflow-Version zu einer anderen wechseln möchten, müssen Sie die aktuelle Integration, bevor Sie die neue erstellen.
Integration löschen
Wenn Sie Dialogflow aus Ihrem Business Messages-Agent entfernen müssen, löschen Sie die mit dem folgenden Befehl.
cURL
# This code deletes an integration. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration # Replace the __BRAND_ID__, __AGENT_ID__ and __INTEGRATION_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X DELETE \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)"
Node.js
/** * This code snippet deletes an integration. * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const BRAND_ID = 'EDIT_HERE'; const AGENT_ID = 'EDIT_HERE'; const INTEGRATION_ID = 'EDIT_HERE'; const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); const uuidv4 = require('uuid').v4; // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); const integrationName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID; if (authClient) { // Setup the parameters for the API call const apiParams = { auth: authClient, name: integrationName, }; bcApi.brands.agents.integrations.delete(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent created console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code snippet deletes an integration. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest ) # Edit the values below: BRAND_ID = 'EDIT_HERE' AGENT_ID = 'EDIT_HERE' INTEGRATION_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client) integration_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID integration = integrations_service.Delete(BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest( name=integration_name )) print(integration)
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
Integration
Integrationsinformationen abrufen
Informationen zu einer Integration erhalten Sie über die Funktion „Geschäftskommunikation“
API verwenden, sofern du den name
-Wert der Integration hast.
Informationen zu einer einzelnen Integration abrufen
Führen Sie den folgenden Befehl aus, um Integrationsinformationen abzurufen.
cURL
# This code gets information about an integration. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration # Replace the __BRAND_ID__, __AGENT_ID__ and __INTEGRATION_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X GET \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)"
Node.js
/** * This code snippet gets information about an integration. * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const BRAND_ID = 'EDIT_HERE'; const AGENT_ID = 'EDIT_HERE'; const INTEGRATION_ID = 'EDIT_HERE'; const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); const uuidv4 = require('uuid').v4; // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); const integrationName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID; if (authClient) { // Setup the parameters for the API call const apiParams = { auth: authClient, name: integrationName, }; bcApi.brands.agents.integrations.get(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent created console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code snippet gets information about an integration. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest ) # Edit the values below: BRAND_ID = 'EDIT_HERE' AGENT_ID = 'EDIT_HERE' INTEGRATION_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client) integration_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID integration = integrations_service.Get(BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest( name=integration_name )) print(integration)
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
Integration
Alle Integrationen für einen Agent auflisten
Wenn Sie den Namen der Integration nicht kennen, können Sie Informationen zu allen Integrationen, die mit einem Agent verknüpft sind, indem INTEGRATION_ID weggelassen wird -Wert aus einer GET-Anfrage-URL.
cURL
# This code lists all integrations for an agent. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent # Replace the __BRAND_ID__ and __AGENT_ID__ # Make sure a service account key file exists at ./service_account_key.json curl -X GET \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)"
Node.js
/** * This code snippet lists all integrations for an agent. * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent * * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js * Business Communications client library. */ /** * Edit the values below: */ const BRAND_ID = 'EDIT_HERE'; const AGENT_ID = 'EDIT_HERE'; const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const businesscommunications = require('businesscommunications'); const {google} = require('googleapis'); const uuidv4 = require('uuid').v4; // Initialize the Business Communications API const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({}); // Set the scope that we need for the Business Communications API const scopes = [ 'https://www.googleapis.com/auth/businesscommunications', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); async function main() { const authClient = await initCredentials(); if (authClient) { // Setup the parameters for the API call const apiParams = { auth: authClient, parent: 'brands/' + BRAND_ID + '/agents/' + AGENT_ID, }; bcApi.brands.agents.integrations.list(apiParams, {}, (err, response) => { if (err !== undefined && err !== null) { console.dir(err); } else { // Agent created console.log(response.data); } }); } else { console.log('Authentication failure.'); } } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } main();
Python
"""This code snippet lists all integrations for an agent. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ from oauth2client.service_account import ServiceAccountCredentials from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1 from businesscommunications.businesscommunications_v1_messages import ( BusinesscommunicationsBrandsAgentsIntegrationsListRequest ) # Edit the values below: BRAND_ID = 'EDIT_HERE' AGENT_ID = 'EDIT_HERE' SCOPES = ['https://www.googleapis.com/auth/businesscommunications'] SERVICE_ACCOUNT_FILE = './service_account_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES) client = BusinesscommunicationsV1(credentials=credentials) integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client) agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID integration = integrations_service.List( BusinesscommunicationsBrandsAgentsIntegrationsListRequest(parent=agent_name) ) print(integration)
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
Integration
Intent-Zuordnung
Nachdem Sie die Dialogflow-Integration für einen Business Messages-Agent aktiviert haben, kann der Agent mithilfe der konfigurierten Intents Ihres Dialogflow-Projekts verstehen und Fragen von Nutzenden beantworten, ohne Code schreiben zu müssen. Weitere Informationen über Intents finden Sie in der Dokumentation zu Dialogflow ES. und Dialogflow CX.
Dialogflow-Intents für jede gewünschte Konversationsoption konfigurieren durch Automatisierung. Business Messages-Agents nutzen Dialogflow, um Nutzerbotschaften zu verstehen.
Beim Aufrufen der Dialogflow APIs übergibt Business Messages die
Nutzlast der Nutzernachricht
Intents und Webhook zur Auftragsausführung hinzufügen. Wenn eine Nutzernachricht übereinstimmt
mit einem Intent haben, können Sie auf diese Nutzlast im Struct
-Format im
Feld business_messages_payload
innerhalb von QueryParameters
.
Die Nutzlast enthält alle Felder aus der Nutzernachricht mit Ausnahme von DialogflowResponse
.
Bei Dialogflow CX gibt Business Messages außerdem einen Sitzungsparameter namens channel
mit dem Wert google_business_messages
an Ihre Intents weiter, den Sie in Ihrem Agent im folgenden Format referenzieren können: $session.params.channel
.
Mit diesem Parameter können Sie Ihren Dialogflow-Auftragsausführungen Bedingungen hinzufügen, um mehrere Kanäle im selben Dialogflow-Agent zu unterstützen.
Weitere Informationen zu Abfrageparametern finden Sie in den Referenzen zu Dialogflow ES und Dialogflow CX.
Vorbereitung
Beim Erstellen von NLU-Modellen in Dialogflow können Sie verschiedene Antworttypen für einen Intent. Business Messages unterstützt die Standardantwort, Dieser kann Folgendes umfassen:
- Text
- Benutzerdefinierte Nutzlast
- Übergabe an Kundenservicemitarbeiter (nur Dialogflow CX)
Eine benutzerdefinierte Nutzlast muss mit einer gültigen JSON-Nachrichtenantwort für Business Messages übereinstimmen Objekt. Wenn Sie benutzerdefinierte Nutzlastantworten für einen Intent konfigurieren, ignoriert die folgenden Felder:
name
messageId
representative
Sehen Sie sich die folgenden Beispielantworten an.
Text mit Vorschlägen
{
"text": "Hello World!",
"fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
"suggestions": [
{
"reply": {
"text": "Hello",
"postbackData": "hello-formal"
}
},
{
"reply": {
"text": "Hi!",
"postbackData": "hello-informal"
}
}
]
}
Interaktive Chat-Nachricht
{
"fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
"richCard": {
"standaloneCard": {
"cardContent": {
"title": "Hello, world!",
"description": "Sent with Business Messages.",
"media": {
"height": "TALL",
"contentInfo":{
"altText": "Google logo",
"fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
"forceRefresh": "false"
}
},
"suggestions": [
{
"reply": {
"text": "Suggestion #1",
"postbackData": "suggestion_1"
}
},
{
"reply": {
"text": "Suggestion #2",
"postbackData": "suggestion_2"
}
}
]
}
}
}
}
Karussell mit interaktiver Chat-Nachricht
{
"fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
"richCard": {
"carouselCard": {
"cardWidth": "MEDIUM",
"cardContents": [
{
"title": "Card #1",
"description": "The description for card #1",
"suggestions": [
{
"reply": {
"text": "Card #1",
"postbackData": "card_1"
}
}
],
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://my.files/cute-dog.jpg",
"forceRefresh": false
}
}
},
{
"title": "Card #2",
"description": "The description for card #2",
"suggestions": [
{
"reply": {
"text": "Card #2",
"postbackData": "card_2"
}
}
],
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://my.files/elephant.jpg",
"forceRefresh": false
}
}
}
]
}
}
}
Übergabe an Kundenservicemitarbeiter
{
"metadata": {}
}
FAQ-Bots
Nachdem Sie eine Dialogflow ES-Integration für einen Business Messages-Agent aktiviert haben, einen FAQ-Bot erstellen. Wenn Sie Fragen und Antworten einem unterstützten Wissensdokument erstellen, erstellen Business Messages und Dialogflow die die notwendig ist, um Fragen von Nutzenden zu verstehen und zu beantworten, Sie müssen Code schreiben.
Wenn Sie einen FAQ-Bot in Aktion sehen möchten, chatten Sie mit den FAQs zu Business Messages Bot
Vorbereitung
Bevor Sie einen FAQ-Bot erstellen, müssen Ihre Fragen und Antworten als ein Wissensdokument (max. 50 MB): eine öffentlich verfügbare HTML- oder CSV-Datei.
Im Allgemeinen
- Kann eingeschränkte Markdown-Elemente in Antworten einfügen, wie in Rich Text.
- Sie dürfen maximal 50 MB groß sein.
- Sollte nicht mehr als 2.000 Frage/Antwort-Paare umfassen.
- Doppelte Fragen mit unterschiedlichen Antworten sollten nicht unterstützt werden.
Bei HTML-Dateien:
- Dateien aus öffentlichen URLs müssen vom Google-Suchindex gecrawlt worden sein, sodass sie im Suchindex erscheinen. Sie können dies mit der Google Search Console. Beachten Sie, dass Ihre Inhalte durch die Indexierung nicht aktuell bleiben. Sie müssen explizit Ihr Dokument aktualisieren, wenn sich der Quellinhalt ändert.
- Dialogflow entfernt HTML-Tags beim Erstellen von Antworten aus dem Inhalt. Weil sollten Sie HTML-Tags vermeiden und nach Möglichkeit nur Text verwenden.
- Dateien mit nur einem Frage-Antwort-Paar werden nicht unterstützt.
Bei CSV-Dateien
- Die Dateien müssen Fragen in der ersten Spalte und Antworten in der zweiten Spalte enthalten. ohne Kopfzeile.
- In den Dateien müssen Kommas als Trennzeichen verwendet werden.
FAQ-Bot erstellen
Um einen FAQ-Bot zu erstellen, erstellen Sie zuerst eine Wissensdatenbank, in der alle Bot-Daten gespeichert. Fügen Sie dann ein oder mehrere Dokumente mit Frage/Antwort-Paaren hinzu. Wissensdatenbank.
Knowledge Base erstellen
Führen Sie den folgenden Befehl aus, um eine Wissensdatenbank zu erstellen. Ersetzen
BRAND_ID, AGENT_ID und INTEGRATION_ID
durch die eindeutigen Werte aus der name
des Dokuments. Ersetzen
KNOWLEDGE_BASE_DISPLAY_NAME durch einen eindeutigen String Ihrer
eine große Auswahl.
Nachdem Sie eine Wissensdatenbank erstellt haben, können Sie Dokumente erstellen. darin enthalten sind.
cURL
# This code creates a knowledge base. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-knowledge-base # Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__ and __KNOWLEDGE_BASE_DISPLAY_NAME__ # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "dialogflowEsIntegration": { "dialogflowKnowledgeBases": [ { "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__" } ] } }'
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
DialogflowKnowledgebase
Wissensdokument erstellen
Führen Sie den folgenden Befehl aus, um ein Wissensdokument zu erstellen.
Fügen Sie das Dokument der Liste der vorhandenen Dokumente hinzu oder erstellen Sie eine neue Liste, falls keine vorhanden ist.
existiert noch. Eine Liste der vorhandenen Dokumente sollte die name
des Dokuments enthalten.
-Wert in der Anfrage.
Öffentliche HTML-Datei
Ersetzen Sie die folgenden Variablen:
- BRAND_ID, AGENT_ID und INTEGRATION_ID
durch die eindeutigen Werte aus der
name
der Integration - KNOWLEDGE_BASE_DISPLAY_NAME und DOCUMENT_DISPLAY_NAME mit Zeichenfolgen Ihrer Wahl identifizieren
PUBLIC_URL mit dem Wissen Öffentliche URL des Dokuments
cURL
# This code creates a knowledge base document from an HTML document and adds it to the knowledge base. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-document # Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__, __KNOWLEDGE_BASE_DISPLAY_NAME__, __DOCUMENT_DISPLAY_NAME__ and __PUBLIC_URL__ # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "dialogflowEsIntegration": { "dialogflowKnowledgeBases": [ { "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__", "documents": [ { "displayName": "__DOCUMENT_DISPLAY_NAME__", "faqUrl": "__PUBLIC_URL__" } ] } ] } }'
Lokale CSV-Datei
Ersetzen Sie die folgenden Variablen:
- BRAND_ID, AGENT_ID und INTEGRATION_ID
durch die eindeutigen Werte aus der
name
der Integration - KNOWLEDGE_BASE_DISPLAY_NAME und DOCUMENT_DISPLAY_NAME mit Zeichenfolgen Ihrer Wahl identifizieren
CSV_RAW_BYTES mit der CSV-Datei als base64-codierten String
cURL
# This code creates a knowledge base document from a CSV document and adds it to the knowledge base. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-document # Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__, __KNOWLEDGE_BASE_DISPLAY_NAME__, __DOCUMENT_DISPLAY_NAME__ and __CSV_RAW_BYTES__ # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "dialogflowEsIntegration": { "dialogflowKnowledgeBases": [ { "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__", "documents": [ { "displayName": "__DOCUMENT_DISPLAY_NAME__", "rawContent": "__CSV_RAW_BYTES__" } ] } ] } }'
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
DialogflowKnowledgebase
Es dauert etwa zwei Minuten, ein Dokument zu einer Wissensdatenbank hinzuzufügen. Um die
Status des Dokuments, die Integration
OperationInfo
Wissensdokument löschen
Wenn Sie Frage/Antwort-Paare aus Ihrem Business Messages-Agent entfernen möchten, gehen Sie so vor: Löschen Sie mit dem folgenden Befehl das Wissensdokument, in dem sie enthalten sind.
Führen Sie den folgenden Befehl aus, um ein einzelnes vorhandenes Dokument zu löschen. Ersetzen
BRAND_ID, AGENT_ID und INTEGRATION_ID
durch die eindeutigen Werte aus der name
des Dokuments. Ersetzen
KNOWLEDGE_BASE_DISPLAY_NAME durch den entsprechenden String.
cURL
# This code deletes a knowledge base document. # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_a_knowledge_document # Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__ and __KNOWLEDGE_BASE_DISPLAY_NAME__ # To delete all knowledge bases, set dialogflowKnowledgeBases to an empty list. Otherwise, the list should contain all existing knowledgebases except the one you would like to remove. # Make sure a service account key file exists at ./service_account_key.json curl -X PATCH \ "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-communications" \ -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \ -d '{ "dialogflowEsIntegration": { "dialogflowKnowledgeBases": [ { "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__" } ] } }'
Informationen zu Formatierungs- und Wertoptionen finden Sie unter
DialogflowKnowledgebase
Automatische Antworten
Wenn Sie während der Dialogflow-Einbindung automatische Antworten aktivieren, Messages antwortet dem Nutzer automatisch über Dialogflow. Ihr Unternehmen Der Messages-Agent antwortet mit der höchsten Übereinstimmung. Mit einem Dialogflow ES-Integration, wenn Übereinstimmungen sowohl mit einer FAQ-Antwort als auch mit einer benutzerdefinierten Intents, antwortet Business Messages mit der Übereinstimmung mit der höchsten des Konfidenzniveaus.
In Business Messages werden alle automatisch beantworteten Nachrichten mit „BOT
“ als Absender gekennzeichnet
Bevollmächtigten. Wenn Ihr Agent Live-Agents unterstützt,
Business Messages deaktiviert automatische Antworten nach dem REPRESENTATIVE_JOINED
Ereignisse
und setzt die automatischen Antworten nach REPRESENTATIVE_LEFT
Ereignissen fort. Siehe Handoff
vom Bot zum Kundenservicemitarbeiter.
Automatische Antwort mit einer FAQ-Antwort
Wenn eine FAQ-Antwort bei einer Dialogflow ES-Integration die höchste Zuverlässigkeit hat verknüpft, ordnet Business Messages die Antwort einer SMS zu. Wenn es eine ähnliche, aber abweichende Antwort verfügbar ist, wird eine weitere Antwort“ Vorschlag. Andernfalls enthält die Nachricht eine Frage und einen Vorschlag antwortet darauf, ob die Nachricht der Anfrage des Nutzers entsprochen hat.
Mit Intent-Antwort automatisch antworten
Intent-Antworten können eine oder mehrere der folgenden Antworten enthalten.
- Dialogflow ES: Text, Benutzerdefinierte Nutzlast
- Dialogflow CX: Text Benutzerdefinierte Nutzlast, Live-Übergabe an Kundenservicemitarbeiter
Wenn eine Intent-Antwort die höchste Übereinstimmung mit dem Konfidenzniveau hat, gilt Folgendes: gilt.
- Wenn die Antwort mindestens einen Textwert hat, ordnet Business Messages diesen Wert zu in eine Textnachricht.
- Wenn die Antwort mindestens eine benutzerdefinierte Nutzlast mit einer gültigen Business- Messages JSON-Objektstruktur erstellt, erstellt Business Messages eine Nachricht mithilfe der bereitgestelltes JSON-Objekt.
- Wenn die Antwort mindestens eine Übergabeantwort eines Kundenservicemitarbeiters hat, lesen Sie den Abschnitt Automatische Antwort mit einer Live-Agent-Anfrage.
Da Dialogflow mehrere Antworten innerhalb einer Intent-Übereinstimmung einbeziehen kann, Business Messages sendet jede Nachricht, benutzerdefinierte Nutzlast oder Übergabe an einen Kundenservicemitarbeiter als separate Nachricht. Wenn in einem Intent mehrere Nachrichten vorhanden sind aber einige fehlerhaft sind, sendet Business Messages nur gültige Nachrichten als automatische Antworten.
Automatisch mit einer Anfrage an einen Kundenservicemitarbeiter antworten
Dialogflow CX unterstützt die Live-Übergabe an Kundenservicemitarbeiter Antwort. Es signalisiert, dass das Gespräch an einen Menschen übergeben werden sollte und ermöglicht es Ihnen, benutzerdefinierte Metadaten für die Übergabe Verfahren. Wenn eine Intent-Antwort die höchste Übereinstimmung mit dem Konfidenzniveau hat und eine Übergabe an einen Kundenservicemitarbeiter enthält, sendet Business Messages eine Termin durch einen Kundenservicemitarbeiter angefragt mit Ihrem Webhook. Informationen zum Verarbeiten dieses Ereignisses finden Sie unter Übergabe vom Bot an den Kundenservicemitarbeiter
Automatische Antwort mit Fallback-Nachricht
Wenn Dialogflow keine Übereinstimmung mit hoher Zuverlässigkeit erzielt, sendet Business Messages eine Fallback-Antwort. Fallbacks werden in Dialogflow ES anders behandelt und Dialogflow CX
Dialogflow ES
Wenn es bei FAQ-Bots keine Übereinstimmung mit einer FAQ-Antwort gibt, sendet Business Messages Es wird eine Fallback-Meldung angezeigt, dass keine Antwort gefunden wurde.
Wenn es bei konfigurierten Intents keine Übereinstimmung mit einer Intent-Antwort gibt, Messages sendet eine Fallback-Intent-Antwort. Sie können den von Dialogflow bereitgestellten Fallback-Text verwenden oder die Methode Fallback mit zusätzlichem Text und benutzerdefinierten Nutzlasten.
Hier ist ein Beispiel für eine Fallback-Intent-Antwort, die Ihr Webhook kann Folgendes empfangen:
{
"intentResponses": [
{
"intentName": "projects/df-integration/agent/intents/12345",
"intentDisplayName": "Default Fallback Intent",
"intentDetectionConfidence": "1.0",
"fulfillmentMessages": [
{
"text": "One more time?"
}
]
}
]
}
Dialogflow füllt intent_name
und intent_display_name
vorab aus.
Dialogflow CX
Dialogflow CX verarbeitet Fallback-Intent-Antworten so integrierte Ereignisse verwenden. Wenn es keine Übereinstimmung mit einer Intent-Antwort gibt, sendet Business Messages eine Fallback-Nachricht aus dem Standardereignis "Keine Übereinstimmung" in Dialogflow. Sie können Verwenden Sie den von Dialogflow bereitgestellten Fallback-Text oder konfigurieren Sie das Fallback mit zusätzlichem Text, benutzerdefinierten Nutzlasten und Optionen für die Übergabe an einen Kundenservicemitarbeiter.
Hier ist ein Beispiel für eine Fallback-Intent-Antwort, Webhook kann Folgendes empfangen:
{
"intentResponses": [
{
"intentName": "sys.no-match-default",
"intentDisplayName": "Default Fallback Intent",
"intentDetectionConfidence": "0.3",
"fulfillmentMessages": [
{
"text": "I missed that, say that again?"
}
]
}
]
}
intent_name
und intent_display_name
werden in Business Messages hartcodiert.
Dialogflow-spezifische Felder
Nachdem Sie die Dialogflow-Integration aktiviert haben, sendet der Nutzer eine Nachricht an den Agent
erhält
einschließlich der
dialogflowResponse
-Objekt enthält. Ihr Webhook empfängt Nutzlasten für alle Nutzernachrichten, unabhängig von
ob Business Messages automatisch auf die Nachricht auf Ihrem
Um zu überprüfen, ob eine automatische Antwort vorliegt, schauen Sie sich den Wert der
autoResponded
und entscheiden, ob Sie dem Nutzer antworten müssen.
Dialogflow ES
... "dialogflowResponse": { "queryText": "TEXT", "intentResponse": { "intentName": "INTENT_ID", "intentDisplayName": "INTENT_NAME", "intentDetectionConfidence": "CONFIDENCE_NUMERIC", "fulfillmentMessages": [{ "text": "FULFILLMENT_TEXT", "jsonPayload": "JSON", "error": "ERROR_STATUS", }], "faqResponse": { "userQuestion": "USER_QUESTION", "answers": [{ "faqQuestion": "FAQ_QUESTION", "faqAnswer": "FAQ_ANSWER", "matchConfidenceLevel": "CONFIDENCE_LEVEL", "matchConfidence": "CONFIDENCE_NUMERIC", }], }, "autoResponded": "BOOLEAN", "autoRespondedMessages": [{ "message": "MESSAGE_JSON", "responseSource": "SOURCE", }], }, ...
Feld | Beschreibung |
---|---|
queryText
|
Der ursprüngliche dialogorientierte Abfragetext. Wenn automatische Rechtschreibung
Die Korrektur ist für das Dialogflow-Modell queryText aktiviert
enthält die korrigierte Nutzereingabe. |
intentName |
Die eindeutige Kennung des zugeordneten Intents. |
intentDisplayName |
Der Name des zugeordneten Intents. |
intentDetectionConfidence
|
Die numerische Konfidenzbewertung für die Übereinstimmung
zwischen queryText und intentName . |
text |
Eine Textantwort. |
jsonPayload
|
Eine benutzerdefinierte Nutzlastantwort.
Dieser String stimmt mit der benutzerdefinierten
der in Dialogflow definierten Nutzlast.
Wenn die Nutzlast keine gültige JSON-Datei für Business Messages hat
Objektstruktur, error beschreibt das Problem. |
error |
Die Beschreibung eines Fehlers mit einer Nachricht zur Intent-Auftragsausführung. |
userQuestion |
Die vom Nutzer gestellte Frage, wie von Dialogflow geparst. |
faqQuestion |
Eine Frage von Dialogflow, die der Frage des Nutzers zugeordnet wurde. |
faqAnswer |
Eine Antwort von Dialogflow, die der Frage des Nutzers zugeordnet wurde. |
matchConfidenceLevel
|
Das Vertrauen in die Übereinstimmung zwischen
userQuestion und faqQuestion . |
matchConfidence
|
Die numerische Konfidenzbewertung in der Übereinstimmung zwischen
userQuestion und faqQuestion . |
autoResponded
|
Ob auf Business Messages automatisch geantwortet wurde mit einer Antwort von Dialogflow. |
message |
Die Nutzlast der automatischen Antwort. |
responseSource
|
Die Quelle der automatischen Antwort. Weitere Informationen finden Sie unter
ResponseSource |
Dialogflow CX
... "dialogflowResponse": { "queryText": "TEXT", "intentResponse": { "intentName": "INTENT_ID", "intentDisplayName": "INTENT_NAME", "intentDetectionConfidence": "CONFIDENCE_NUMERIC", "fulfillmentMessages": [{ "text": "FULFILLMENT_TEXT", "jsonPayload": "JSON", "error": "ERROR_STATUS", "liveAgentHandoff": { "metadata": {} } }], "autoResponded": "BOOLEAN", "autoRespondedMessages": [{ "message": "MESSAGE_JSON", "responseSource": "SOURCE", }], }, ...
Feld | Beschreibung |
---|---|
queryText
|
Der ursprüngliche dialogorientierte Abfragetext. Wenn automatische Rechtschreibung
Die Korrektur ist für das Dialogflow-Modell queryText aktiviert
enthält die korrigierte Nutzereingabe. |
intentName |
Die eindeutige Kennung des zugeordneten Intents. |
intentDisplayName |
Der Name des zugeordneten Intents. |
intentDetectionConfidence
|
Die numerische Konfidenzbewertung für die Übereinstimmung
zwischen queryText und intentName . |
text |
Eine Textantwort. |
jsonPayload
|
Eine benutzerdefinierte Nutzlastantwort.
Dieser String stimmt mit der benutzerdefinierten
der in Dialogflow definierten Nutzlast.
Wenn die Nutzlast keine gültige JSON-Datei für Business Messages hat
Objektstruktur, error beschreibt das Problem. |
error |
Die Beschreibung eines Fehlers mit einer Nachricht zur Intent-Auftragsausführung. |
liveAgentHandoff |
Benutzerdefinierte Metadaten für die Übergabeprozedur des Live-Kundenservicemitarbeiters. |
autoResponded
|
Ob auf Business Messages automatisch geantwortet wurde mit einer Antwort von Dialogflow. |
message |
Die Nutzlast der automatischen Antwort. |
responseSource
|
Die Quelle der automatischen Antwort. Weitere Informationen finden Sie unter
ResponseSource |