Chat Variables

Leverage dynamic data during live messaging.

Definition

Chat variables store information from a chat session, including data about the app, user, and any inputs during the interaction. These variables can be utilised in an AI assistant's subsequent actions.


Actions & Delimiters

The following actions support chat variables. To display a variable's value within an AI assistant's action content, enclose the variable name within curly braces { } as a delimiter.

Actions that require { ... } delimiter
Actions that do not require delimiter

System Variables

The Set Chat Variable action can create new variables or reference existing system variables:

_user_input

Captures and stores the person's input at each interaction stage within the AI assistant. It is dynamic, meaning that it updates automatically each time the person enters a new input.


_lang

Records the language identified from the person's input during each interaction.


_channel_profile

Holds profile information for the person as obtained from the messaging app. It includes details such as the person's ID in Proto, their display name, the type of channel they're using, their profile picture URL, and other information that varies depending on the app.

For people connecting through Webchat, this variable also captures additional information if certain features are activated in the Webchat settings, such as:

  • Data from a pre-chat form

  • Person's location and IP address

Example
{
	"id": JSHSFHDHBJVKOISFIU,
	"display_name": "Weiying",
	"location": "MY",
	"email": "weiying@proto.cx",
	"phone_number": "34898483245",
	"ip_address": "0.0.0.0",
}

_customer

Note that "customer" is a legacy term for an audience member, now referred to more generically as "people" or "persons" in the current platform and documentation.

Contains profile information for persons who have a People profile in Proto AICX. This includes their name, email, phone number, and any custom fields.

Example
{
	"id": customer.id,
	"external_customer_id": customer.external_customer_id,
	"name": customer.name,
	"location": customer.location,
	"email": customer.email,
	"phone_number": customer.phone_number,
	"provided_unique_id": customer.provided_unique_id,
	"tags": list(set(customer_tags)),
	"tag_groups": [tag_group.name for tag_group in customer.tag_groups],
	"custom_fields": {
		cf.custom_field.name: cf.value
		for cf in (customer_custom_fields or [])
	}
}

_channel

Channel variables store information about a channel such as the channel ID, channel type, and other details unique to each channel.

Example
{
	"id": channel.id,
	"type": "webchat",
}

_new_ticket

Contains ticket info when a new email ticket is created.

Example
{
    "id": new_ticket_id,
    "title": subject,
    "customer_id": customer_id,
    "assignee_type": assignee.type, 
    "assignee_id": assignee.id,
    "description": description,
    "bot_id": bot.id,
    "channel_id": channel.id,
    "custom_attrs": ["fetched_custom_field.name: cf.value"]
}

_track.fetch_ticket_by_ticket_id("ticket_id_here")

Ticket variable that fetches ticket info by ticket ID.

Example
{
    "id": new_ticket_id, 
    "status": ticket_status, 
    "assignee_names": [assignee_names], 
    "assigned_team_names": [assigned_team_names],
    "customer_name": customer_name
}

_track.fetch_tickets_by_email("customer_email_here")

Ticket variable that returns a list of tickets and their info by user email.

Example
[
    {
        "id": new_ticket_id, 
        "status": ticket_status, 
        "assignee_names": [assignee_names], 
        "assigned_team_names": [assigned_team_names],
        "customer_name": customer_name
    }
    ...
]

Last updated