External data is for server-side integrations that display read-only information from external systems. For visitor-provided input fields that are collected during sign-in, see the
extra fields in the Tickets overview.API Endpoint
POST and PUT are accepted with identical behavior.
Parameters
Parameters are sent as form-encoded fields (not a JSON body). Thedata field contains a JSON string, which must be URL-encoded.
Example Request
Data Structure
Thedata parameter must be a JSON string containing an object with a fields array:
text, email, phoneNumber), and list. You can mix and combine them freely within the fields array.
Message Fields
Displays a colored alert banner. Use messages to highlight important information that clerks should see immediately.
The
importance level controls the visual styling:
error — red background, for critical alerts:

warning — orange background, for important notices:

info — gray background, for general information:

Textual Fields
Displays a key-value row. Three subtypes are available:text for plain text, email for email addresses, and phoneNumber for phone numbers.

List Fields
Displays a titled section with a collection of items. Each item has a required title and optional metadata.
List item properties:
A list item with all optional properties:



Key Behaviors
- Upsert semantics: One record per
(ticketId, provider)pair. Calling the endpoint again with the same provider replaces the previous data entirely. - Multiple providers: A single ticket can have external data from many providers (e.g., both
"salesforce"and"epic"). Each appears as a separate section in the Service View. - Schema validation: The
dataJSON is validated server-side. Invalid structures or unknown properties return a 400 error. - Real-time updates: After storing, the Service View updates immediately — no page refresh needed.
Reading External Data
External data attached to a ticket can be read back via the GraphQL API using theexternal field on the Ticket type. The data field returns a JSON scalar — a parsed JSON object matching the structure you originally sent: