Skip to main content
Version: Latest
User ManualNeed configuration, code or deployment details? In the Technical Manual: Contact Memory and Signed Webhooks

Contact Memory and Integrations

The AI can remember each customer from one conversation to the next, on every channel. Workflows send what happened to your other systems, signed so they can trust it, and connect the AI to your calendar and your CRM.

MenuArtificial Intelligence > AI Profiles, Design > Workflows, and your contacts
PermissionManage AI profiles, Manage workflows, and edit contacts
FeatureAI Services and Omnichannel Management. Workflows for the webhooks and integrations.
Can't find it?

What you see depends on your role. If the menu, a button or a setting on this page is missing, ask your administrator to give you the permission listed above or to turn on the feature. Only administrators can turn features on and change site settings.

Contact memory​

Each contact can have a short note, up to 2,000 characters, of what the AI remembers about them: preferences, facts that are still true, and anything still open, such as a refund they are waiting for. The note is shared by every AI profile and every channel, so a customer who texted last week is remembered when they call.

Turn it on for each AI profile, on the Data Processing & Metrics tab:

OptionWhat it does
Use contact memoryWhen a call or a text is with a known contact, the AI starts with what it remembers about them.
Save to contact memoryWhen a conversation with a known contact ends, the note is rewritten from it. Resolved matters are dropped and new ones added.

The note is rewritten when the conversation is closed: a phone call's as soon as the call ends, and a text or chat conversation's after the profile's session inactivity timeout (30 minutes by default). The post-session analysis and the AI Chat Session Closed workflow event run at the same moment. Website chats with anonymous visitors have no contact, so they neither read nor write memory.

Memory works the same for leads: a call or text with a lead reads and writes the lead's note. When the lead is converted, its note moves to the contact it became, or is added to the note of the contact it was merged into.

To see or correct a note, open the contact. What the AI remembers shows the note: edit it, or empty it to make the AI forget.

To build a note from a contact's past conversations, for example after turning memory on, tick Rebuild from past conversations on the contact and save. The note is written again from the contact's past AI calls, texts and chats, oldest first, as if each had just ended (at most the 50 oldest). It runs after the save, so reload the contact a moment later to see it.

What the AI keeps in a note follows built-in instructions. To change them, for example to keep only open orders or to write the note in another language, go to Settings > Artificial Intelligence and write your own Memory instructions under Contact memory. Leave them empty to go back to the built-in ones. The note is kept to 2,000 characters either way.

Payment details and secrets

The note is written by the utility model, which is told never to keep card numbers, passwords or other secrets. Still, check the notes of profiles that handle sensitive matters, and leave Save to contact memory off where it is not needed.

Update memory from a workflow​

The Update Contact Memory task (under AI Conversations) rewrites a contact's note from a finished conversation, whatever the profile's own setting. Use it when only some conversations should be remembered, for example after an If/Else on the disposition. Conversation defaults to the session the event was raised for, and Contact to the contact the call or text was with.

Send signed webhooks​

The Send Signed Webhook task (under HTTP) posts JSON to another system, signed with a secret you share with that system, so it can check that the request came from your site and is not an old one sent again.

FieldWhat to write
URLThe address to post to.
Event nameA name the receiver uses to tell your webhooks apart, such as conversation.evaluated.
BodyThe JSON to send, as Liquid. The default sends everything the workflow started with.
Signing secretA long random string, given to the receiver too. It is kept encrypted and never shown again; leave it empty to keep it.
AttemptsHow many times to try when the receiver times out, is busy or fails, a few seconds apart.

Each request carries these headers, the same as the commerce webhooks:

HeaderHolds
X-Webhook-IdA unique ID for the delivery, the same on every attempt.
X-Webhook-EventThe event name.
X-Webhook-TimestampWhen it was signed, in seconds since 1970.
X-Webhook-Signaturev1= followed by the HMAC-SHA256, in lowercase hex, of the timestamp, a dot and the body, keyed with the secret.

The receiver computes the same signature and compares, and refuses a timestamp more than a few minutes old.

The task goes on by Delivered or Failed. What happened is in Workflow.Output.Webhook: its StatusCode, Attempts and Error.

For example, start a workflow with AI Conversation Evaluated, tick Only conversations that failed, and add Send Signed Webhook with Event name conversation.failed_qa to tell your QA tool.

Webhook subscriptions​

With the AI Webhooks feature on, AI events are offered to the webhooks under Configuration > Webhooks, next to the commerce events, and are sent to another system without a workflow. Click Add webhook, enter the URL (HTTPS), and tick the events to send under AI; the webhook's page shows the Signing secret to copy into the receiver. Webhooks you had added under Artificial Intelligence > Webhooks were moved there, with the same secret:

EventSent when
conversation.startedAn AI conversation starts, on any channel.
conversation.endedAn AI conversation ends.
conversation.analyzedA conversation's analysis finishes, with its extracted fields and results.
conversation.transferredAn AI call is handed to a person or transferred to a number.
conversation.evaluatedA conversation is scored, by a QA cohort, a test or a workflow.
alert.triggeredAn AI alert rule crosses its threshold.
alert.resolvedAn AI alert rule is back within its threshold.

The body is JSON: { "id": "...", "event": "conversation.ended", "createdUtc": "...", "data": { ... } }, signed with the same headers as the Send Signed Webhook task below. Events are sent once the conversation's work is saved, so a slow receiver never holds up a conversation.

Click Deliveries to see what was sent: each event, the receiver's answer and the number of attempts. A delivery that isn't answered with a 2xx status is tried again after 1, 5 and 30 minutes, then 2, 6, 12 and 24 hours; an address on the site's own network is refused at once. Send again sends a delivery once more, and Send a test event sends webhook.ping to check the receiver.

Calendars​

Workflows connect the AI to a booking service that has an API, such as Cal.com, Calendly or your own system:

  1. Create a workflow that starts with AI Tool Called, with an HTTP Request to the service's available times API, using {{ Workflow.Input.Arguments.date }}, and Set Output with the times it returns.
  2. Create a second one that books a time from {{ Workflow.Input.Arguments.time }} and the customer's details.
  3. Create a Workflow tool instance for each (see Automate AI conversations), described as Finds free appointment times on a date and Books an appointment at a time the customer chose, and add both to the AI profile.

Keep the service's API key in the HTTP Request's headers. Built-in connections to Google Calendar and Microsoft 365 are not available yet.

CRMs​

The same way, workflows keep a CRM such as HubSpot or Salesforce up to date:

  • Look a caller up before the AI answers: in an AI Conversation Starting workflow, an HTTP Request to the CRM's search API with {{ Workflow.Input.CustomerAddress }}, then Set Conversation Variables with what it returns.
  • Let the AI update a record: a Workflow tool instance whose workflow calls the CRM's update API.
  • Log the conversation: an AI Chat Session Post-Processed workflow with an HTTP Request that creates a CRM activity with the summary and the transcript.
  • Start an AI call from the CRM: the CRM's own automation calls the AI API (POST /api/ai/v1/calls) with an API key, or an HTTP Request Event workflow that runs Create AI Activity.

Built-in CRM connectors, with field mappings and scheduled imports, are not available yet.