Kustomer
Integrate the Kustomer CRM with Agent Connect services.
This guide describes how to integrate Medallia Agent Connect and Kustomer to send survey requests when tickets are solved. Feedback in Agent Connect links directly to Kustomer, enabling your team to see the tickets and related feedback together.
-
The team member that resolved the ticket has an approved Agent Connect profile.
-
The customer’s record includes an email address.
-
A team member is assigned to the ticket when it is closed.
Configure the workflow in Kustomer
-
Create your Kustomer API Key:
-
In the Kustomer Admin area, open Settings > Security > API Keys, then click New API Key.
-
Name the key "Role: org.admin.tag.read".
-
Click Create.
-
-
Open Settings > Platform Settings > Workflows, then click Add Workflow.
-
Name the workflow "Send Agent Connect Request", then click Create.
-
From the options menu, select "Edit Workflow JSON".
-
Replace the existing JSON code with the following, then click Update:
{ "description": "This sends the Agent Connect Request.", "name": "Send-Agent-Connect-Request", "steps": [ { "meta": { "displayName": "Find Conversation by ID" }, "id": "HkY67ShOM", "action": "kustomer.conversation.find-by-id", "params": { "id": "/#steps.1.id" }, "appVersion": "kustomer-^1.2.1", "transitions": [ { "target": "Hynv6df-Z", "condition": { "op": "gt", "values": [ "/#steps.HkY67ShOM.assignedUsers.length", "0" ] }, "meta": { "name": "Check Assigned Users Exists" } } ] }, { "appVersion": "kustomer-^1.2.1", "meta": { "displayName": "Enter Agent Connect API-Key" }, "params": { "regex": "(.*)", "testString": "YOUR AGENT CONNECT API KEY" }, "action": "kustomer.regex-match.generic", "id": "Hynv6df-Z", "transitions": [ { "target": "BJh-I15vM", "condition": { "op": "true", "values": [ true ] } } ] }, { "id": "BJh-I15vM", "action": "kustomer.regex-match.generic", "params": { "regex": "(.*)", "testString": "YOUR KUSTOMER API KEY" }, "meta": { "displayName": "Enter Kustomer API Key for finding Tags" }, "appVersion": "kustomer-^1.2.1", "transitions": [ { "target": "B1uHx6WZW", "condition": { "op": "true", "values": [ true ] }, "meta": { "name": "If Done and Assigned" } } ] }, { "meta": { "displayName": "Find Customer by ID" }, "appVersion": "kustomer-^1.2.1", "params": { "identifier": "/#steps.1.customer" }, "action": "kustomer.customer.find", "id": "B1uHx6WZW", "transitions": [ { "meta": { "name": "Check Customer has Email" }, "condition": { "values": [ "/#steps.B1uHx6WZW.emails.0.email" ], "op": "exists" }, "target": "HJZib6WWW" } ] }, { "meta": { "displayName": "API Call to Kustomer to fetch Tag mapping" }, "appVersion": "kustomer-^1.2.1", "params": { "headers": { "Authorization": "Bearer {{steps.BJh-I15vM.original}}", "Content-Type": "application/json" }, "json": true, "tags": "/#steps.1.tags", "uri": "https://api.kustomerapp.com/v1/tags/{{#each steps.1.tags}}{{this}},{{/each}}aaaaaaaaaaaaaaaaaaaaaaaa", "method": "GET" }, "action": "kustomer.rest-api.json", "id": "HJZib6WWW", "transitions": [ { "condition": { "values": [ true ], "op": "true" }, "target": "B14sZ6--b" } ] }, { "appVersion": "kustomer-^1.2.1", "params": { "id": "/#steps.HkY67ShOM.assignedUsers" }, "action": "kustomer.user.find-by-id", "id": "B14sZ6--b", "meta": { "displayName": "Find Assigned User by ID" }, "transitions": [ { "meta": { "name": "Voice conversation?" }, "condition": { "values": [ "/#steps.1.channels", "voice" ], "op": "contains" }, "target": "VIS2vXe5p" }, { "target": "ByRKk3PgZ", "condition": { "op": "not-contains", "values": [ "/#steps.1.channels", "voice" ] }, "meta": { "name": "Other channel" } } ] }, { "appVersion": "kustomer-^1.2.1", "meta": { "displayName": "API Call to Agent Connect with 'phone' channel hard-coded" }, "params": { "json": true, "headers": { "Content-Type": "application/json", "x-api-key": "/#steps.Hynv6df-Z.captures.0" }, "data": { "customer": { "name": "/#steps.B1uHx6WZW.name", "email": "/#steps.B1uHx6WZW.emails.0.email" }, "tags": "/#fn:map,steps.HJZib6WWW.response.body.data,attributes.name", "do_not_send": "/#steps.HkY67ShOM.custom.doNotSendStellaConnectRequestBool", "ext_interaction_id": "/#steps.1.id", "employee": { "email": "/#steps.B14sZ6--b.email" }, "channel": "phone", "external_url": "https://YOUR_DOMAIN_HERE.kustomerapp.com/app/customers/{{steps.1.customer}}/event/{{steps.1.id}}" }, "method": "POST", "uri": "https://api.stellaconnect.net/v1/requests" }, "action": "kustomer.rest-api.json", "id": "VIS2vXe5p", "transitions": [] }, { "appVersion": "kustomer-^1.2.1", "id": "ByRKk3PgZ", "action": "kustomer.rest-api.json", "params": { "headers": { "Content-Type": "application/json", "x-api-key": "/#steps.Hynv6df-Z.captures.0" }, "uri": "https://api.stellaconnect.net/v1/requests", "method": "POST", "data": { "customer": { "name": "/#steps.B1uHx6WZW.name", "email": "/#steps.B1uHx6WZW.emails.0.email" }, "tags": "/#fn:map,steps.HJZib6WWW.response.body.data,attributes.name", "do_not_send": "/#steps.HkY67ShOM.custom.doNotSendStellaConnectRequestBool", "ext_interaction_id": "/#steps.1.id", "employee": { "email": "/#steps.B14sZ6--b.email" }, "channel": "/#steps.HkY67ShOM.channels.0", "external_url": "https://YOUR_DOMAIN_HERE.kustomerapp.com/app/customers/{{steps.1.customer}}/event/{{steps.1.id}}" }, "json": [ true ] }, "meta": { "displayName": "API Call to Agent Connect" }, "transitions": [] } ], "trigger": { "transitions": [ { "meta": { "name": "Check if Marked Done" }, "target": "HkY67ShOM", "condition": { "op": "eq", "values": [ "/#steps.1.changes.attributes.status.after", "done" ] } } ], "appVersion": "kustomer-^1.2.1", "id": "1", "eventName": "kustomer.conversation.update" } } -
Select the Enter the Agent Connect API Key box.
- Replace the key with your Agent Connect Test API Key, then click Save.
You can find your Test API Key on the Company Info page in Agent Connect.
-
Select the Enter Kustomer API Key for finding Tags box.
-
Replace the existing API key with the key you created earlier, then click Save.
-
Select the API call to Agent Connect with phone channel hardcoded box.
-
In the Data field, enter your Kustomer account external URL, then click Save.
-
Select the API call to Agent Connect box.
-
In the Data field, enter your Kustomer account external URL, then click Save.
-
Toggle the workflow on.
Create a Do Not Send Agent Connect Request field
If needed, create a checkbox field to allow agents to prevent an Agent Connect survey from being sent when they solve a ticket:
-
In Kustomer, open Settings > Platform Settings > Klasses > Conversation, then click Create Attribute.
-
Name the field "Do not send Agent Connect Request".
-
Specify the Type of the field as "True/False".
-
Enable the new field.
Move your integration to production
Work with the Agent Connect team to test your automated integration and resolve any issues. When everything is working as expected, move your integration to production via the steps below:
-
In Kustomer, open the Agent Connect workflow you created earlier.
-
Select the Enter the Agent Connect API Key box.
-
Replace the existing API key with your Agent Connect Production API Key, then click Save.
-
In Agent Connect, open the Integrations page (Settings > Integrations).
-
For each channel you integrated, switch that field on, then click Update.
Optional configuration
The following integration configurations are options. Work with the Agent Connect team for assistance with any of these options.
-
Do not send — Although we recommend that all interactions receive an Agent Connect survey, there might be some instances when a survey is not appropriate. You can manage this process by establishing a custom workflow exclusion rule in your Kustomer account.
Note: You do not need to create a rule specifically to limit the number of surveys that a customer receives within a specific period of time. On the Company Info page, Agent Connect includes a suppression period that automatically stops surveys from flooding a customer within a specified number of days. -
Multiple brands — If you use multiple brands in Agent Connect, you must update the data sent to Agent Connect to include the brand for each interaction.
-
Multiple languages — If you use multiple languages in Agent Connect, you must update the data sent to Agent Connect to include the language of each interaction.
-
Delays — If you require your Agent Connect survey requests to be sent after a specified delay, consult the Support team for help.
-
Service recovery — If you would like to implement a workflow to identify negative interactions and send followup surveys after service recovery interactions, contact the Support team for help.
