Overview
Ticket forms control:- What information users provide when creating tickets
- How fields are displayed and validated
- Integration with external ticketing systems (Zendesk, HelpScout)
- Embedding external forms (HubSpot, Typeform, etc.) directly in the chat
- AI-powered ticket prefilling
- Post-submission user experience
Creating Ticket Forms
Basic Setup
- Navigate to Tickets → Ticket Forms
- Click Create Form
- Configure form properties
- Add and arrange fields
- Save the form. Default-form selection is configured separately
Form Properties
Which Form a User Gets
When someone opens a ticket from the chat, AGO picks the form in this order:- The form attached to the user — set on their profile, in Settings → User Management → Users → open the user → Ticket Form
- A form matching the Zendesk tag rules on their highest-priority permission — when Zendesk is the active ticketing system
- The form attached to their highest-priority permission — set when editing a permission
- The default form — the one marked as default
Select a Form from Zendesk User Tags
With Zendesk as the active ticketing system, open a permission and select Ticket Instructions. Under Zendesk user tags → ticket forms:- Click Add mapping.
- Enter the exact tag from the Zendesk user profile and select an AGO ticket form belonging to Zendesk.
- Add more mappings as needed. Use the arrows to put higher-priority rules first.
- Click Save.
premium to a Premium Support form and partner to a Partner Support form. If someone has both tags, the first matching row wins. Each tag can appear once; several tags can select the same form.
AGO reads user-profile tags for signed-in users whose authenticated email matches an active Zendesk user. Ticket tags and organization tags do not trigger these rules. Tag changes can take up to one minute to be reflected; reload the chat configuration afterward. If no rule matches, the mapped form was deleted, or Zendesk is unavailable, AGO falls back to the remaining rules on that permission, its ticket form, and then the default form. A manually assigned user form always takes priority.
Automatic Internal Notes
For an inline Ago or Zendesk form, open Advanced and enter instructions in Automatic internal note. Save the form to enable it. Leave the instructions empty to disable it. Each form can use its own format and language, up to 10,000 characters. After a ticket is successfully submitted, AGO generates a private note from the saved ticket and the full visible conversation. For Zendesk, it reads the accepted ticket, including custom field labels and selected choices. The ticket supplies the current request; the conversation supplies the history, attempted solutions and results. Opening or cancelling the form does not generate a note. Example instructions:Field Configuration
Available Field Types
The built-in chat form renders a checkbox for checkbox fields, a single-choice select for fields with options, and a single-line text input for other custom fields. A custom type name alone does not add multiple selection or email or number validation. Use the form’s detailed context input for multiline text, and a validation pattern for custom text formats.Field Properties
Configure fields in the form builder. Field and option settings are separate; these tables describe the available settings rather than a complete API request.Conditional Fields
Show or hide fields based on user selections to create dynamic, streamlined forms.Basic Conditional Field
Choose a parent field and a value that makes the dependent question relevant. For example, show Error Message only when Issue Category is Technical. The trigger uses the parent’s saved option value, not its display label.Multiple Trigger Values
A question can accept several parent answers. For example, show Account Details when Issue Category is either Billing or Account Management. Field conditions store these accepted values as a comma-separated list, such asbilling,account.
The SDK chat widget supports these questions across ticketing providers.
Conditions may refer to a field UUID or its external ID. When an answer changes,
responses from branches or choices that no longer apply are cleared. Active
hidden fields retain defaults when both the field and its selected option still apply.
Nested Conditionals
Chain conditions for complex forms:Conditional Options
Individual choices can depend on another answer too. Configure both the parent field and the accepted values for each conditional option.
For API integrations, option conditions use
conditional_field_id and the array
conditional_field_values, for example ["account", "billing"]. Unlike a field
condition, an option condition does not use a singular comma-separated value.
Grouped Options
Create hierarchical dropdown menus with option groups.Configuration
Give related options the samegroup value. For example, place Slack Connector
and Notion Connector in Connectors, and Chat Widget in Channels.
Leave group empty for choices that do not need a group.
Display
The hosted chat uses a hierarchical hover menu. The SDK widget uses native select groups. Both present the choices under their configured group names:Option Messages
Show a contextual message below the field when a specific option is selected. Useful for warning users about expected delays, asking them to attach extra documents, or pointing them to a self-serve resource before submitting.Configuration
Open the field builder, expand an option’s extras panel, fill in the Info message text, and pick a style:
The message appears immediately below the field as soon as the option is picked, and disappears if the user changes their selection.
External System Integration
Import a Zendesk Form
Rebuild an existing Zendesk ticket form in AGO instead of recreating it by hand:- Create or open a form whose ticketing system is Zendesk.
- In Custom Fields, click Import a Zendesk form and pick a form from the list.
- Review the fields, then click Save to update the form.
- The custom fields customers can edit, in the Zendesk order. Fields and options missing from AGO are created as soon as you import, even if you do not save the form.
- The conditions shown to customers (Zendesk end-user conditions) on drop-down and checkbox fields.
- Show Subject, Show Body, Show Status, Show Priority and Show Typology, turned on for the Zendesk system fields customers can edit and off for the others.
- The Zendesk ticket form ID, and the form name if it was empty.
Zendesk Field Mapping
Set the numericzendesk_field_id for a custom field. The integration also
recognizes an external_id such as ticket_field_12345678 when no explicit
Zendesk field ID is set.
Zendesk Group Assignment
An option can route the ticket with its numericzendesk_group_id. The fallback
option identifier format is groups_123456.
Tagger Fields (Zendesk Tags)
Selected values oftagger fields are included in the ticket’s tags. Configure
option values to match the tags you want to send.
HelpScout Tags
For HelpScout, a field with the external IDtag_helpscout supplies a tag from
its selected value.
Name Extraction
Configure fields to extract user names for ticket requesters.First Name Field
A field markeduse_to_set_first_name supplies its complete value as the first
name for integrations that support requester name extraction.
Last Name Field
A field markeduse_to_set_last_name supplies its complete value as the last name.
Full Name Split
There is no automatic split of a full-name answer. Use separate designated fields when your integration needs separate first and last names.Form-Level Settings
Static Tags
Apply tags to all tickets from this form:Brand Assignment (Zendesk)
Route tickets to a specific Zendesk brand:Group Assignment (Zendesk)
Route all tickets to a specific group:Private Comment Content
Include all field values in the private comment:AI Prefilling
Configure AI to extract ticket information from conversations and pre-fill form fields automatically.How It Works
When a user requests to create a ticket, the AI analyzes the conversation and extracts relevant information to pre-fill the ticket form. This includes standard fields (subject, body, priority, typology) and any custom fields you enable for AI pre-fill. Visitors can review and edit pre-filled values before submitting. The sparkles icon in the admin field manager controls which custom fields the AI may pre-fill.Enabling AI Pre-fill for Custom Fields
Each custom field on a ticket form can be individually enabled for AI pre-fill:- Navigate to Tickets > Ticket Forms
- Open a form in the builder
- In the Fields section, click the sparkles icon next to any field to toggle AI pre-fill
- Save the form
System Prompt
Customize the AI extraction behavior with a system prompt:Best Practices
- Enable AI pre-fill only for fields where automated extraction adds value
- Be specific about expected formats and lengths in the system prompt
- Provide examples for ambiguous fields
- List available options for select fields
- Define keywords that indicate priority levels
Example: E-commerce Support
Embedded External Forms
Instead of using the built-in inline form, you can embed an external form (such as HubSpot, Typeform, or any web form) directly in the chat. When a user requests to talk to a human, the embedded form is displayed inside the conversation.Setting Up Embed Mode
- Navigate to Tickets > Ticket Forms
- Create or edit a form
- In the General tab, set Form Mode to Embedded Form
- Go to the Embed tab
- Paste your Embed HTML Code (e.g., a HubSpot form script tag)
- Optionally set a Description to display above the form
- Save the form
Embed HTML Code
Paste raw HTML embed code (such as a HubSpot or Typeform script tag) directly. The HTML is rendered inside the chat conversation and auto-resizes to fit the content. Example — HubSpot form:Submission Detection
The system automatically detects when a user submits the embedded form. Detection is supported for:- HubSpot — HubSpot form callback events
- Generic HTML forms — standard
<form>submit events
AI Prefilling in Embed Mode
AI prefilling works in embed mode. When a user requests to create a ticket, the AI analyzes the conversation to extract relevant information and automatically fills matching fields in the embedded form. Auto-fill supports the following standard names, including HubSpot names with a prefix ending in/email, /subject, or the corresponding property name.
Matching custom-field names can also be filled from the extracted custom values:
Match your form property names to the standard or custom values you want to pre-fill.
Form Data Capture
AGO captures submitted values from forms that emit a standard HTML submit event and from supported HubSpot callbacks. Custom AJAX forms need one of these supported events; arbitrary network submissions are not detected automatically. Captured subject and body values populate the ticket when available, and the supported captured fields are stored for reference. Files, empty values, provider tracking and consent fields, and text values longer than 2,000 characters are excluded. Large captured payloads may be truncated before storage.Limitations
- Submission detection depends on the form provider supporting cross-origin messaging (HubSpot is supported; Google Forms is not)
- Auto-fill requires matching standard or custom property names
Success Messages
Customize the confirmation text and ticket link label. A configured ticket URL prefix changes the link destination by appending the external ticket ID; it does not automatically redirect the visitor away from the success screen.Basic Message
Message Formatting
Success messages are plain text. Line breaks are preserved; Markdown headings and bold markers are not rendered as formatting.With Action Link
Complete Form Examples
Use these as form-builder layouts rather than JSON import payloads.Simple Contact Form
Show the subject and detailed context, hide priority, and add a short success message. The requester email input is separate from custom fields.Enterprise Support Form
Add static tags as a list of values and set a plain-text success message.
Multi-Product Form with Routing
Use a product choice with a Zendesk group ID on each option. Add an issue-type question, then show Integration Name only when the issue type is Integration. A separate tagger field can add the selected tag to the ticket.Best Practices
Form Design
- Keep forms concise - Only ask for essential information
- Use conditional fields - Show complexity only when needed
- Provide clear labels - Avoid jargon and abbreviations
- Explain expected formats - Give examples in the question title when needed
- Order logically - Most important fields first
Field Configuration
- Set sensible defaults - Pre-fill when possible
- Validate custom text formats - Configure a pattern when a field requires an email, number or specific identifier
- Mark critical fields required - But don’t overdo it
- Group related options - Use hierarchical dropdowns
Integration
- Test field mappings - Create test tickets to verify
- Validate external IDs - Double-check Zendesk/HelpScout IDs
- Monitor for errors - Check logs after deployment
Troubleshooting
Field not appearing
Field not appearing
- Check the condition references the intended parent field
- Verify
conditional_field_valuematches option value (not label) - Verify field is included in form configuration
- Check browser console for errors
Values not mapping to external system
Values not mapping to external system
- Verify
external_idformat (e.g.,ticket_field_12345for Zendesk) - Check field type matches external system expectations
- Test with a simple ticket first
- Review AGO logs for mapping errors
Prefilling not working
Prefilling not working
- Verify
system_promptis set on the form - Verify AI pre-fill is enabled (sparkles icon) on the desired custom fields
- Check conversation has enough context
- Review AI instructions for clarity
- Test with explicit conversation content
Related
- Ticketing — Feature overview
- Ticketing Tool — Agent ticketing tool
