First response
First response on new tickets
An internal note on every new Zendesk or ServiceNow ticket within seconds, and a guarded public reply draft.
8 min read
What happens
When a ticket is created, Solvaro reads the ticket, its comments and attachments, checks déjà vu, your KB, internal docs, Slack, Jira and known issues, and posts an internal note with cited evidence. It also drafts a public reply. The draft is only posted when your org has opted in and every gate below passes; otherwise it sits inside the internal note for an agent to send.
Attachments it reads
- Logs up to 64 MB: errors grouped by signature with counts and first/last timestamps; Python, Java and Node stack traces and product versions extracted
- zip, gz and tar archives, two levels deep (40 members / 256 MB cap)
- HAR files: failed requests (status 0 or ≥400) and slow requests (≥5 s)
- JSON, CSV and PDF files
- Screenshots via the vision model, with OCR as a fallback
- Every finding carries a reference such as agent.log:2003, and the note cites it
Public reply gates
- Auto-posting public replies is off by default (auto_public)
- A customer-safe fix must exist; fixes that need our own action are never offered to customers
- Confidence must reach the org threshold (default 0.8). Confidence is deterministic: known issue 0.92, déjà vu similarity × 0.85 (+0.15 on matching signature), KB 0.7 × score
- Priorities urgent, critical and 1 are blocked by default
- The draft must pass the public reply guard against the ticket’s internal comments
Zendesk webhook
- Admin Center → Apps and integrations → Webhooks → Create webhook, type “Trigger or automation”.
- URL: https://api.solvaro.ai/api/v1/webhooks/zendesk?org_id=<org_id>, method POST, format JSON.
- Add the header X-Arcus-Webhook-Secret with your org’s webhook secret.
- Objects and rules → Triggers → Add trigger. Condition: Ticket | Is | Created (add Group or Brand to narrow scope).
- Action: Notify webhook, with the JSON body below. Later updates never trigger a second first response.
{"event_type": "ticket.created", "ticket": {"id": "{{ticket.id}}", "subject": "{{ticket.title}}",
"description": "{{ticket.description}}", "status": "{{ticket.status}}", "priority": "{{ticket.priority}}",
"requester": {"name": "{{ticket.requester.name}}", "email": "{{ticket.requester.email}}"},
"organization": {"name": "{{ticket.organization.name}}"}}}ServiceNow webhook
- System Web Services → Outbound → REST Message. Endpoint https://api.solvaro.ai/api/v1/webhooks/servicenow?org_id=<org_id>, method POST, header X-Arcus-Webhook-Secret.
- Create a Business Rule on Incident: When After, Insert, Advanced → async. Its script calls the REST Message with the body below.
{"event": "insert", "number": "${number}", "sys_id": "${sys_id}", "short_description": "${short_description}",
"description": "${description}", "state": "${state}", "priority": "${priority}"}Settings and limits
- Settings API: GET (member) / PUT (admin) /api/v1/first-response/{org_id}/settings
- Fields: enabled, auto_public, public_confidence_threshold (0.5–1), queues, priorities, public_blocked_priorities, max_per_hour, analyze_attachments, max_attachment_mb, providers
- Rate limit: max_per_hour per org, default 120. Over-limit tickets are queued, not dropped
- Design-partner auto-investigate uses a created_at cutoff (new tickets only) plus a daily cap so older backlog is not drained
- Idempotent: one note per ticket. Failures retry after 60 s and 300 s, up to 3 attempts
- Every run writes a ticket.first_response audit event
Connector permissions
The helpdesk connector user needs to read tickets and attachments and add internal comments (Zendesk) or work notes (ServiceNow).
Next
Zendesk: connect step by step
Create the Zendesk OAuth client (or API token), paste it into Solvaro, sign in, and see your Cases queue.
ServiceNow: incidents and work notes
Connect a ServiceNow instance for incidents, work notes and first response.
How we handle data
The repository index stays on your machine. A snippet is sent only when you ask.