type names the resource
and what happened to it, like run.failed or phone.online. The body’s data
is a snapshot of that resource. It uses the same field names and formats as the
API, but carries only the fields listed for each event: never your own content
(variables, names, tags), files or download links. See
Webhooks for the request format, signatures and delivery
guarantees.
Events about a session, a run or a device you rent carry device_class, which
says what kind of device the event concerns. It is phone today.
You can send every type below from the dashboard with Test on a
destination’s page. A test carries the example payload shown here and
"test": true.Recognising duplicates
The body’sid (and the webhook-id header) is the same every time one change
reaches you, so you can skip an id you have already handled. Axilio builds it
from the event type and the resource:
Runs
data carries these fields of the run:
id, workflow_id, device_class, phone_id, session_id, status,
trigger, started_at, completed_at, canceled_at, success and
created_at. A field with no value yet is left out, so a run still waiting for
a phone has no device_class or phone_id. run.cancelled adds reason. Fetch the run for
anything else, such as its variables, error message or recording.
data for each run event, exactly as a Test delivery sends it:
run.cancelled
run.cancelled
run.completed
run.completed
run.failed
run.failed
run.started
run.started
Sessions
end_reason is one of:
released: you released the session, or Axilio released it for you (a connection that never finished setting up, or maintenance on the rack).idle_timeout: no one used the session for longer than its idle timeout.max_duration: the session reached the maximum session length.run_finished: the run that the session served finished.device_lost: the phone stopped answering during the session.
data for session.started and session.ended carries these fields of the
session: session_id, status, source,
device_class, phone_id, workflow_id, allocated_at, deallocated_at and
is_dedicated_phone. A field with no value yet is left out.
session.recording_ready carries session_id, device_class and phone_id;
fetch the recording with
GET /phones/sessions/{session_id}/recording.
data for each session event, exactly as a Test delivery sends it:
session.ended
session.ended
session.recording_ready
session.recording_ready
session.started
session.started
Billing
Amounts use the same units as the billing API:
balances in microdollars with a formatted
balance_display, invoices in cents.
data for each billing event, exactly as a Test delivery sends it:
auto_recharge.failed
auto_recharge.failed
auto_recharge.succeeded
auto_recharge.succeeded
balance.depleted
balance.depleted
balance.low
balance.low
balance.recovered
balance.recovered
invoice.paid
invoice.paid
invoice.payment_failed
invoice.payment_failed
subscription.canceled
subscription.canceled
subscription.updated
subscription.updated
Files
file.ready and file.capture_failed carry the file’s id, filename,
mime_type, size_bytes and, for a capture, session_id. file.ready adds
source; file.capture_failed adds reason. The delivery events carry the
delivery: id, file_id, phone_id, filename,
mime_type, size_bytes, status, bytes_transferred, error and
created_at. No event contains the file itself or a download link; list the
file through the API to get one.
The data for each file event, exactly as a Test delivery sends it:
file.capture_failed
file.capture_failed
file.delivered
file.delivered
file.delivery_failed
file.delivery_failed
file.ready
file.ready
Phones
Axilio sends these events only for phones your organization rents. Shared phones never send them.
The health events carry
device_class (phone), phone_id, phone_name,
nickname, status, reason and changed_at. reason on the maintenance and
offline events is one of hardware, update, unresponsive or operator. The rental events carry the rental as
GET /billing/phone-rental-subscriptions returns it.
data for each phone event, exactly as a Test delivery sends it:
phone.maintenance_ended
phone.maintenance_ended
phone.maintenance_started
phone.maintenance_started
phone.offline
phone.offline
phone.online
phone.online
phone.rental.activated
phone.rental.activated
phone.rental.canceled
phone.rental.canceled
phone.rental.past_due
phone.rental.past_due
Platform
The
data for each platform event, exactly as a Test delivery sends it:
webhook.test
webhook.test
Next steps
Webhooks
Register a destination and verify signatures.
Monitor runs
What each run status means.