Orca work order updates → Clara

Proposed, pending review · rewritten 2026-10-29 night · pilot: Western Slope · owner Fede, build Gera

What the resident sees

TODAY No word while the tech is out 9 in 10 resident orders get no update WITH ORCA CONNECTED on_the_way Jonathan is on the way, about 15 min. arrived Jonathan has arrived. completed Your repair is done. How did it go? The order also closes in the PMS, with notes and photos.
Figure 1. Western Slope today versus with Orca connected.
The design

How a customer connects

No screens on either side. We run one admin command for the partner and the customer. It makes one secret for that pair, which we share with Orca's engineer out of band. To cut a customer off, we disable that row.

Decided (Orca's email, Oct 29): Orca sends that secret on every update as Authorization: Bearer, stored per customer on their side. Signed webhooks (the Stripe, Slack and Twilio pattern) stay on the later list for a partner that already signs; the POC does not build them.

1. One admin command for one partner and one customer 2. One secret for that pair shown once, stored encrypted 3. Shared with Orca's engineer out of band, once per customer 4. Orca sends it with every update Authorization: Bearer, one secret per customer Revoke: disable the row the next update gets 401
Figure 2. The secret decides the customer. Nothing in an update can reach another customer's work orders.

The three statuses

One update per POST to https://propflowai.co/api/work-order-updates, plain JSON { id, time, work_order { pms_account_id, pms_property_id, pms_work_order_id }, status }.

StatusWhen Orca sends itExtra data (optional)What Clara does
on_the_wayTech taps start, which Orca's founder confirmed is when they leave for the job (call, Oct 29)etaTexts "on the way"
arrivedTech is at the unitnoneTexts "has arrived"
completedTech says nothing is left to donotes, photos[url], labor_minutesAdds notes and photos, closes as job done, asks "how did it go?"
POST /api/work-order-updates HTTP/1.1
Host: propflowai.co
Content-Type: application/json
Authorization: Bearer wspm-orca-••••••••

{
  "id": "88cdca95-2a99-4f1a-82c4-68d9eba0f63c",
  "time": "2026-10-29T19:28:00-06:00",
  "work_order": {
    "pms_account_id": "westernslopepm",
    "pms_property_id": "112",
    "pms_work_order_id": "48213"
  },
  "status": "on_the_way",
  "eta": "2026-10-29T19:45:00-06:00"
}

HTTP/1.1 202 Accepted
Content-Type: application/json

{ "id": "88cdca95-2a99-4f1a-82c4-68d9eba0f63c" }

Three replies only: 202 accepted (repeats too), 401 bad or disabled credential, 400 anything else wrong (the body says what). No reply: resend with the same id. Full contract: work-order-updates-openapi.yaml.

What happens on our side

Update accepted (202) secret and time checked Stored once by its id a repeat changes nothing One workflow per work order on_the_way, arrived, completed Text on the way and arrived Stamp notes and photos Close as job done in the PMS Rating text "How did it go?" Texts and writes follow the maintenance mode Supervised holds texts and writes for approval; Live sends
Figure 3. Stamp, close and rating come from completed.

Prototype result (2026-10-29, local)

Branch fede/orca-poc-local, local only, no CI.

AppFolio work order 3463-1 at the Willows test property showing Ready to Bill and the tech's note
Figure 4. Willows test work order 3463-1 in AppFolio after the prototype's close.

Later, only if a customer needs it

PropFlow Docs