Skip to main content
The EventConfig system enable Agents to detect intention and drive conversations towards relevant topics as well as to provide output and request additional context from your systems via HTTP webhooks. Each EventConfig defines the condition that trigger the event, the payload sent to your webhook, and how the Agent should handle the response. Event will only be created when the conditions defined in the description and required data defined in the EventConfig are met. An Agent can have multiple EventConfigs to handle different scenarios. An EventConfig can be specified to operate in either synchronous or asynchronous mode, i.e whether the Agent should wait for a response from your system before proceeding with the conversation. An EventConfig with stopConversation set to true will mark the Thread as doNotProcess after the event is triggered, preventing any further interactions.

Key Capabilities

  • Provide a structured way to influence Agent behavior and conversation flow.
  • Detailed description and structure schema guarantee Event payload consistency.
  • Determine if an incoming email is “out of scope” and should not be processed.
  • Sync mode to supplement Agent with additional context before proceeding. Async mode to notify external systems without waiting for a response.
You can query, update, and manage EventConfigs via the API or the Dashboard.

Attributes

Each EventConfig is configured with the following attributes:
  • id: string
  • agentId: string - The ID of the Agent this configuration belongs to
  • displayName: string - Human-readable name
  • key: string - Unique key for referencing this EventConfig
  • description: string - Description of what this EventConfig represents, its purpose, and when it should be triggered.
  • schema: JSON - The JSON schema describing the expected payload when this event is triggered
  • waitForResponse: boolean - If true, the Agent will wait for a response before proceeding
  • stopConversation: boolean - If true, the Thread will be stopped after this event
  • isActive: boolean - Whether this EventConfig is currently active
  • createdAt: Date - Timestamp when the EventConfig was created
  • updatedAt: Date - Timestamp when the EventConfig was last updated

Example

This EventConfig will produce the following Event with the specified schema if a user reach out to schedule an appointment. When the Agent detect the relevant Event that can be triggered (appointment_request) and all required data are provided, an Event will be extracted to be sent to your system as webhooks. If an detected relevant Event is still missing required data, the Agent will continue to steer the conversation to collect the missing information.
{
  "id": "332fd8d5-faab-4e70-8289-767abef001c7",
  "agentId": "93abd68b-c936-40c8-abe6-ec07eac24d1e",
  "displayName": "Appointment Request",
  "key": "appointment_request",
  "schema": {
    "name": "appointment_request",
    "schema": {
      "type": "object",
      "required": ["firstName", "lastName", "phoneNumber", "preferredDateTime"],
      "properties": {
        "lastName": {
          "type": "string",
          "description": "The last name of the individual making the appointment request."
        },
        "firstName": {
          "type": "string",
          "description": "The first name of the individual making the appointment request."
        },
        "phoneNumber": {
          "type": "string",
          "description": "The phone number of the individual making the appointment request."
        },
        "preferredDateTime": {
          "type": "string",
          "description": "The preferred time and date in ISO 8601 format for the appointment."
        }
      },
      "additionalProperties": false
    },
    "strict": true
  },
  "description": "Trigger when a customer requests an appointment",
  "waitForResponse": true,
  "stopConversation": false,
  "isActive": true,
  "createdAt": "2025-10-07 01:22:27.452+00",
  "updatedAt": "2025-10-07 01:22:47.143197+00"
}
When the above EventConfig is triggered, an Event will be created with the following structure:
{
  "id": "6d0cc985-8bbf-462c-ba8a-d3cf18763780",
  "eventConfigId": "2359d467-4360-4e79-acb3-e33841655e90",
  "extractedData": {
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "+1234567890",
    "preferredDateTime": "2025-10-10T14:30:00Z"
  },
  "activityId": "89fdc161-4ed3-4d05-963d-56ad4dfcdb04",
  "threadId": "3ad08956-f97d-4da0-809e-7ac3f66b38f5",
  "createdAt": "2025-10-07T12:34:56.789Z",
  "updatedAt": "2025-10-07T12:34:56.789Z"
}