Support ops
Support ops is a set of routing, SLA, alerting, and integration features for teams on Ogma Plus or Enterprise. Configure them in dashboard Settings under the Operations and Integrations section groups.
Free plan servers can still use business hours and expected response time in away messages; other support ops features require an upgrade.
Where to configure
| Settings section | What it controls |
|---|---|
| Routing & SLA | Auto-assignment and first-response / resolution targets |
| Automation | JSON rules for ticket triggers — see Automation rules |
| Alerts & follow-ups | Manager alerts and proactive stale-ticket nudges |
| Quality flags | Open tickets flagged for escalation, negative CSAT, or low-confidence replies |
| Macros | Canned responses for /macro in Discord |
| Webhooks | HTTPS endpoints for ticket and SLA events |
Save settings after changes. Assignment and SLA tracking apply to new activity immediately; macros and webhooks are live as soon as saved.
Routing and assignment
Enable auto-assignment to assign new tickets to staff automatically.
| Mode | Behavior |
|---|---|
| Manual only | Staff claim tickets from the staff queue or run /claim in Discord |
| Round robin | Rotates through eligible staff in order |
| Load balanced | Assigns to the staff member with the fewest open assigned tickets |
Automation rules can also run { "type": "assign_round_robin" } on triggers like ticket_opened. See Automation rules.
Auto-assignment assigns a ticket by claiming it, so it stops entirely when the server has claiming turned off.
SLAs
When SLAs are enabled, Ogma tracks:
- First response — time until a staff member sends the first reply
- Resolution — time until the ticket is closed
Set targets in minutes (minimum 5). Enable Alert on SLA breach to notify managers when a target is missed (works with Manager alerts below).
SLA breaches can also trigger automation rules with the sla_breach trigger and webhooks with the sla.breach event.
Staff queue
The Staff queue page lists open tickets for triage — unclaimed, yours, escalated, awaiting staff, or awaiting customer. Claim or release tickets from the queue; the same assignment is reflected in Discord (/claim, /unclaim).
Manager alerts
Notify managers when support metrics need attention:
| Setting | Fires when |
|---|---|
| Queue depth threshold | Open unclaimed or escalated tickets exceed the count |
| CSAT drop threshold | Satisfaction percentage drops by the configured amount |
| Escalation spike threshold | Escalations in a short window exceed the count |
| SLA breach alerts | An SLA target is missed |
Alerts are delivered through your configured manager notification paths (see dashboard settings for the server).
Proactive follow-ups
Separate from the post-close follow-up DM in Settings → Tickets, proactive follow-ups nudge customers on stale open tickets:
- Stale after (hours) — no activity for this long triggers a message in the ticket channel
- Reopen on negative CSAT — optionally reopen or follow up when a user rates 👎 after close
- Custom messages for stale tickets and negative CSAT
Quality flags
The Quality flags section lists open tickets that need review:
- Escalated — reached staff without a confident bot answer
- Negative CSAT — user rated not helpful after close
- Low confidence — bot replied but retrieval scores were weak
Resolve flags from Settings after you have reviewed the ticket. Jump to the ticket from the list.
Macros
Create canned responses with a shortcut (for example refund-policy) and content. Staff insert them in Discord with:
/macro refund-policyMacros require Plus or Enterprise. See Commands → Staff shortcuts.
Suggested macros
On Plus and Enterprise, Ogma scans recent closed tickets for repeated staff replies (same normalized text in at least three messages across two or more tickets). Pending suggestions appear above your macro list:
- Accept — pick a shortcut and create the macro
- Dismiss — hide the suggestion
Suggestions run on a daily schedule; they never create macros without staff approval.
Webhooks
Send signed HTTPS POST requests to your endpoints when events occur:
| Event | When |
|---|---|
ticket.opened | New ticket channel created |
ticket.claimed | A ticket is claimed — payload source is staff or auto_assignment |
ticket.unclaimed | A claimed ticket is released |
ticket.tagged | Tags change — payload source is automation_rule, auto_tag, public_api, or absent for a dashboard edit |
ticket.escalated | Ticket escalated to staff |
ticket.reopened | A closed ticket is reopened |
ticket.message.created | A message is recorded on an open ticket (high volume; no message body is sent) |
ticket.closed | Ticket closed |
csat.received | Any satisfaction rating is submitted |
csat.negative | User submits a low rating |
sla.breach | SLA target missed |
Each webhook has a name, URL, enabled flag, event selection, and optional signing secret.
URLs Ogma will not call
Webhook URLs must be HTTPS, must not embed credentials, and must not be a raw IP address, localhost, or a .local / .internal hostname. The hostname is resolved before each delivery and rejected if it points at a private or reserved address, so a public hostname pointed at internal space will not be called either. The same rules apply when you edit an existing webhook.
Verifying the signature
When a signing secret is set, each request carries:
| Header | Value |
|---|---|
X-Ogma-Event | The event name |
X-Ogma-Delivery | Unique delivery id — use it to make your handler idempotent |
X-Ogma-Timestamp | Unix seconds when the request was signed |
X-Ogma-Signature-V2 | t=<timestamp>,v1=<hex> where the HMAC-SHA256 covers <timestamp>.<raw body> |
X-Ogma-Signature | Legacy sha256=<hex> over the raw body only |
Verify X-Ogma-Signature-V2 and reject timestamps older than about five minutes; because the timestamp is inside the signed payload, a captured request cannot be replayed later. The legacy X-Ogma-Signature header is still sent for receivers written against the original format and will be removed in a future release.
Retries and delivery history
A delivery is retried with backoff when the endpoint times out, refuses the connection, or returns 5xx, 408, or 429. Other 4xx responses are treated as a rejection your endpoint will repeat, so they are not retried.
Every attempt is recorded. The delivery log shows the event, status code, latency, error, and a short response preview, and any delivery can be replayed with its original body — the replay arrives as a new delivery linked to the original. After 20 consecutive failures Ogma disables the endpoint so it stops being called; re-enabling it from this page clears the failure streak.
Webhooks complement agentic tools — use agentic tools when the AI needs live lookup data during a ticket; use webhooks when your systems need to react to ticket lifecycle events.
Related
- Automation rules
- Tickets
- Commands
- Billing — Plus and Enterprise plans
