v6
OpenAPI 3.1.02026-08-0331136162.2 KBWork Order Event Webhook
Whenever a work order is created, updated, cancelled, or completed in EliseAI, we will post the event to your registered webhook. Use these events to keep an external system in sync with Elise-originated work-order changes. If that system also creates or updates work orders, it can send those changes back through the Maintenance API.
Webhooks can be registered at the organization level or the property level. Please reach out to the EliseAI support team to register your webhooks.
Event Types:
- WorkOrderCreated: Posted whenever a new maintenance work order is created in EliseAI
- WorkOrderUpdated: Posted whenever an existing work order is updated
- WorkOrderCancelled: Posted whenever a work order transitions to Closed
- WorkOrderCompleted: Posted whenever a work order transitions to Completed
Each delivery includes an X-Signature header: an HMAC SHA-256 hex digest of the JSON request body, signed with your registered webhook secret.
Linking your work-order ID: if you create a matching work order in your own system when you receive WorkOrderCreated, respond with a JSON body containing your system's work-order identifier and EliseAI will store it:
{"external_work_order_id": "WO-12345"}
The response body must be a JSON object with external_work_order_id as a top-level key. String IDs are stored as-is after trimming whitespace; numeric IDs are accepted and stored as strings. Once linked, future webhook payloads include external_work_order_id, and you can update the work order through PATCH /v2/maintenance/work_orders/external/{external_work_order_id} without tracking the EliseAI work order ID.
If your integration will update EliseAI by work_order_id instead, returning external_work_order_id is optional. If you omit it, EliseAI still treats a successful HTTP response as a successful webhook delivery, but your system's work-order ID will remain unknown to EliseAI.
For WorkOrderUpdated, WorkOrderCompleted, and WorkOrderCancelled, EliseAI only uses the HTTP success/failure status. Response bodies for those events are ignored.
Work order events will include:
- event_id: Unique identifier for the event. Use this for idempotency/deduplication.
- type: The type of event that occurred
- event_date: Date and time of the event
- elise_property_id: Elise identifier for the property
- external_property_id: External identifier for the property
- work_order_id: Elise identifier for the work order (numeric ID as string)
- external_work_order_id: Your external work-order identifier, if EliseAI has one
- unit_id: Elise unit identifier (numeric ID as string), if applicable
- unit_number: Unit number associated with the work order
- resident_uuid: Resident UUID from the residents API (if applicable)
- status: Current status. Possible values: Started, Submitted, Scheduled, Paused, NotStarted, InProgress, OnHold, AwaitingParts, AwaitingVendor, ResidentDeniedAccess, DoneReadyToInvoice, DoneReadyForReview, Completed, Closed.
- priority: Priority level (Low, Medium, High, Emergency)
- category: Category of the issue (e.g., Plumbing, Electrical, HVAC)
- description: Description of the issue
- assignee_names: Names of assigned technicians
- scheduled_time: When work is scheduled
- completed_date: When the work was completed
- notes: General notes
- closing_notes: Resolution notes
- created_by: How the work order was created. Public values: AI, Resident, Agent, API, PMS, Project.
Payload
Example payload
{
"event_id": "evt_123",
"event_date": "2026-07-14T22:15:30Z",
"elise_property_id": "856098",
"external_property_id": "PMS-PROP-001",
"work_order_id": "37002740",
"external_work_order_id": "WO-12345",
"unit_id": "1911721181",
"unit_number": "01-05",
"resident_uuid": "48924907-4841-4ab1-a36d-58eba931234d",
"status": "InProgress",
"priority": "Medium",
"category": "Plumbing",
"description": "Leak under kitchen sink",
"assignee_names": [
"Jane Technician"
],
"scheduled_time": "2026-07-15T18:00:00Z",
"completed_date": "2026-07-16T20:30:00Z",
"notes": "Technician dispatched.",
"closing_notes": "Replaced supply line."
}Response
Successful Response