Skip to main content
Exposed webhooks let Arya notify external systems via HTTP when events happen in the workspace. The opposite of incoming webhooks.
Diagram: Arya → HTTP POST → external system

Typical use cases

  • ETL: every record change replicated to an external data warehouse
  • Analytics: Arya events sent to Segment, Mixpanel, Amplitude
  • Legacy ERP: notify accounting system when an invoice is issued
  • Custom internal system: real-time dashboard consuming Arya events

Configuration

Via workflow

Use a normal workflow with HTTP Request action:
1

Create workflow

Trigger: the event you want to notify (record created/updated, status changed).
2

HTTP Request action

  • URL: external system endpoint
  • Method: POST (typical)
  • Headers: auth, content-type
  • Body: JSON with record data
3

Handle errors

Retry logic, fallback, notify admin on repeated failure.

Preconfigured exposed webhooks

For common use cases, Arya offers pre-made webhooks to activate with one click:
deal.created, deal.updated, deal.stage_changed, deal.won, deal.lost. Payload: full deal data + before/after of changed fields.
invoice.issued, invoice.paid, invoice.overdue.
employee.hired, employee.terminated, leave.approved.
quote.sent, quote.viewed, quote.signed, quote.rejected.
task.assigned, task.completed, task.overdue.
Activate from Settings → Exposed webhooks → + New.

Standard payload

Example deal.won payload:
{
  "event": "deal.won",
  "timestamp": "2026-04-14T15:30:00Z",
  "workspace_id": "ws_abc123",
  "data": {
    "deal": {
      "id": "deal_xyz",
      "name": "Acme Renewal 2026",
      "value": 25000,
      "currency": "EUR",
      "stage": "Won",
      "closed_at": "2026-04-14T15:30:00Z",
      "owner": {
        "id": "user_def",
        "name": "Mario Rossi",
        "email": "mario@arya.so"
      },
      "company": {
        "id": "comp_ghi",
        "name": "Acme SpA",
        "vat": "IT12345678901"
      }
    }
  },
  "signature": "hmac-sha256-hash-of-body"
}

Security

Arya signs the body with a shared secret. The receiving system verifies the signature for authenticity.
If the external system has fixed IPs, whitelist at the network level.
Arya rejects plain HTTP URLs.
Default 10 seconds. If the external system doesn’t respond, Arya considers it failed and retries.

Retry and idempotency

Arya auto-retries on failure (503, timeout, network errors) with exponential backoff (1, 2, 4, 8 min). After 5 attempts, marks failed and notifies admin.Your endpoint must be idempotent: you may receive the same notification multiple times. Use the event ID to deduplicate.

Monitoring

Settings → Exposed webhooks → Log shows per webhook:
  • Timestamp
  • Called URL
  • Sent payload
  • Received response
  • Status (success, failed)
  • Attempt count
You can manually retry a failed webhook.

Frequently asked questions

Depends on fields. To avoid sending confidential data (salaries, tax codes), configure field filters on payload inclusion.
Yes, each webhook has its URL + subscribed events.
It stops. Webhooks already queued are still delivered before stopping.