Programmatically create support tickets in Halo from form submissions, applications, or any external system.
When a user submits an application, fills out a form, or triggers an action in your app, you can automatically create a support ticket in Halo — no manual intervention required. This guide walks through the recommended approaches from simplest to most flexible.
Halo creates tickets through the AI chat pipeline. When you send a message to the chat API with the right context, the AI agent evaluates the request and creates a ticket when it detects an issue that needs human follow-up. There are two approaches:
Send a message that explicitly requests human help. The AI creates a ticket immediately.
Both approaches use the same Chat API endpoint and benefit from the full AI pipeline — the ticket includes conversation context, user data, and company information automatically.
The widget key is publishable and safe in your install snippet. For server-side REST calls in this guide, call from your backend and enable identity verification when scoping by user_id.
This is the recommended approach. Send the form/application data as structured context alongside a chat message describing the request. The AI agent triages the submission and creates a ticket with full context attached.
Use the Chat API to send the submission data. Pass the form fields as context entries so the AI (and your team) can see exactly what was submitted:
curl -X POST https://api.haloagents.ai/api/sdk/chat \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ab_live_xxxxxxxxxxxxxxxx" \ -d '{ "user_id": "user_123", "message": "New partnership application submitted by Jane Doe from Acme Corp. Please review and follow up.", "context": { "application": { "label": "Partnership Application", "type": "custom", "value": { "company_name": "Acme Corp", "contact_name": "Jane Doe", "contact_email": "[email protected]", "application_type": "Technology Partner", "annual_revenue": "$2M-$10M", "use_case": "Integrate our analytics platform with Halo for mutual customers", "submitted_at": "2026-03-15T10:30:00Z" } } } }'
The AI agent processes the message, sees the application context, and — if escalation is enabled — creates a ticket that includes all the submitted data.
If you want a ticket created every time (no AI triage), phrase the message to explicitly request human follow-up. The AI recognizes escalation intent and creates a ticket immediately:
curl -X POST https://api.haloagents.ai/api/sdk/chat \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ab_live_xxxxxxxxxxxxxxxx" \ -d '{ "user_id": "user_123", "message": "Please create a support ticket: New enterprise onboarding request from Acme Corp. They need help setting up SSO integration and custom reporting. This requires human assistance.", "context": { "onboarding_request": { "label": "Onboarding Request", "type": "custom", "value": { "company": "Acme Corp", "plan": "enterprise", "requested_services": ["SSO Setup", "Custom Reporting", "API Integration"], "preferred_start_date": "2026-04-01", "contact": "[email protected]" } } } }'
Phrases like “please create a support ticket”, “I need human help”, or “please escalate this” trigger the AI’s escalation logic, which creates a ticket and routes it to your team.
The AI’s ticket creation behavior is controlled by your agent’s escalation settings. Configure these in the dashboard under AI Agents > [Your Agent] > Actions > Ticket Escalation:
Setting
Effect
Mode
always creates tickets on every escalation signal. conditional adds gates (must search knowledge base first).
Default Assignee
Automatically assign new tickets to a specific team member.
Priority Filters
Segment rules that mark matching users’ tickets as “priority” (e.g., enterprise plan customers).
Escalation Filters
Only create tickets for users matching specific segments.
If a user already has an open ticket, new escalations are merged into the existing ticket instead of creating duplicates. This keeps your inbox clean when the same user submits multiple requests.
After a ticket is created, you can view it in the Halo dashboard. The ticket includes:
The original submission message
All structured context data from the request
User and company information
The AI’s triage notes and conversation history
Priority status (based on your escalation filters)
Tickets created through the chat API appear in your Halo inbox just like any other ticket. Your team can respond, reassign, snooze, or resolve them using the standard workflow.