Text version. The interactive version, with live examples, is at https://app.proptonomy.ai/docs/automations. This page as Markdown: https://app.proptonomy.ai/docs/automations.md. Index of all pages: https://app.proptonomy.ai/llms.txt.
SOPs and automation triggers
Start SOPs, automatic tasks and messages from events, schedules or webhooks, with typed conditions and assistant chat commands.
https://app.proptonomy.ai/docs/automations
One routine, several ways to start
SOPs, automatic tasks and automatic messages share the same trigger and condition rules.
A routine can start when a task, reservation or review changes, on a schedule, before or after a stay, from an incoming webhook, or when you explicitly request it. You choose When, narrow it with Only if, then choose Do.
The SOP still contains the instructions: what to check, who to notify, and how to write the report. The trigger decides when to start; it does not replace those instructions.
Set up and enable a routine
Use an organisation administrator account in the workspace where the routine belongs.
- Open Workflows Settings → Workflows. Choose a starter or New automation. An SOP or a task-automation rule can also open the shared builder through its trigger control.
- Choose When and Only if Select a trigger and its conditions. For a booking with one guest, choose reservation.created, then Number of guests is 1.
- Choose Do Run an SOP selects the actual SOP and internal agent. Plan a task selects an existing task-automation rule. Task work timing is configured separately from when the workflow starts.
- Save, review, then publish Saving a draft does not enable a new routine. Publish the reviewed version to enable it. Later edits remain drafts until published; the current published version keeps running. Publication captures the SOP instructions for that revision. If you change the SOP, review and republish the workflow to use the new instructions.
Example on the page: Try the actual trigger builder. These are the product's real controls and starter templates, with a small example field catalogue. Your workspace discovers its full available catalogue from C# contracts. This example never saves or runs anything.
The six trigger types
- When an event occurs: Start from a committed change, such as task.created or reservation.updated.
- On a schedule: Run once or repeat daily, on weekdays, weekly, monthly or with custom cron. Choose a timezone; 17:00 Pacific/Auckland follows New Zealand daylight saving.
- Relative to a reservation date: Choose check-in or check-out and hours before or after it. Uses the organisation's timezone and re-evaluates changed booking dates. Cancelled reservations cannot start a new task action.
- When a webhook arrives: An authenticated request to a configured incoming source starts the routine. Declare payload fields before using them as conditions.
- When run manually: An administrator runs the published version from the app, with reservation context if its actions need a stay.
- When requested by an AI tool: An administrator asks the assistant to invoke the published workflow. Add this trigger before asking to run a workflow from chat.
Choose events by their names
Event keys are lower-case and dot-separated. The catalogue shows which events and fields are available in your workspace.
- Tasks: task.created, task.updated, task.deleted. Selecting task subscribes to these three. Add task.status.changed separately for status transitions.
- Reservations: reservation.created, reservation.updated, reservation.deleted. Selecting reservation subscribes to these three. reservation.status.changed covers all status transitions.
- Properties: property.created, property.updated, property.deleted; property is their CRUD selector.
- Reviews and ratings: review.created, review.updated and reservation.rating.created. Choose review.created for every new review; a booking-linked review can also emit reservation.rating.created, so selecting both can start two separate runs.
- Inbox and contacts: inbox.message.received; conversation.created/updated/deleted; contact.created/updated/deleted and contact.tag.added/removed.
- Inventory: inventory.item.created/updated/deleted; inventory.delivery.created/updated/deleted and inventory.delivery.status.changed; inventory.transaction.created.
- Enso: enso.upsell.created, enso.upsell.status.changed and enso.boardingpass.verification.status.changed. Availability requires the workspace's supported active Enso connection; these observe integration syncs, rather than promising instant provider callbacks.
A status change can also produce an ordinary updated event. Select the precise event you need to avoid doing the same business action twice.
Only if: visual rules or an expression
Choose All rules match for AND, Any rule matches for OR, or Does not match for NOT. Fields, value types and allowed operators come from the same C# catalogue used by the assistant and server. An unknown guest count does not match the number 1.
For AI maintenance monitoring, require task type Maintenance and Created by AI, then an Any group for Has assignee is false or Scheduled date is missing. Include events produced by other automations if their AI-created tasks should be monitored too. The maintenance starter also checks for missing title and property; remove those two rules if you only want assignee and date checks.
The optional expression editor suggests available fields and the values they accept. reservation.numPeople === 1 compiles to the same visual rule. Comparisons, &&, ||, !, null and registered helpers are supported. Only supported conditions can be applied. In the actual workflow, use Apply as rules and publish the validated rules.
Example on the page: Try field suggestions. Type reservation. and choose Show suggestions or Ctrl+Space. This is the actual editor; this documentation example does not compile, apply or publish a condition.
A short wait groups matching events
Event and incoming-webhook triggers default to 5 seconds quiet, with a 30-second maximum wait from the first match. Each matching arrival extends the quiet period up to that maximum. Under Run timing and origin, choose Immediately for urgent work or In a fixed window to collect for the configured maximum.
Each run receives an events[] list, even for one event. Only events matching this trigger's conditions enter it. All items have the same concrete type and schema version: task.created and task.updated never share a list, even when you selected task. Two one-guest bookings can share a run; a two-guest booking cannot join it.
Limits can split a burst into further runs. There is no promise that everything in a busy workspace becomes one invocation. The SOP should process every relevant item in its event list.
Ask the assistant in a staff chat
Use an administrator's normal staff conversation in the correct organisation, with the assistant's Automation tools enabled. Knowledge tools find named SOPs; Task Automation tools find existing task rules. Guest chats and a running workflow cannot configure automation authority.
Example on the page: Draft, then enable a one-guest SOP. Illustrative wording, not a recorded conversation. The assistant must resolve the actual SOP and agent, save it, and read back its state before claiming it is enabled.
You: Proptonomy, draft a workflow that runs our Number of People SOP whenever a new reservation has exactly one guest. Use our operations agent. Show me the trigger before enabling it. Proptonomy: Draft saved: reservation.created; Number of guests is 1; Run the Number of People SOP with the selected operations agent. Timing: 5 seconds quiet, 30 seconds maximum. It is not enabled yet. You: Enable that reviewed draft. Proptonomy: The published revision is enabled. New matching reservation events will trigger it. Existing event history is not replayed.
- Discover: Proptonomy, which automation events can I subscribe to, and which reservation fields can I filter on?
- Find and read: Show our automations for new reviews, including their triggers and published state.
- A new review: Run our Review SOP every time a new review arrives. Use our operations agent and enable the workflow.
- AI maintenance: Draft a workflow: when AI creates a maintenance task with no assignee or scheduled date, run our Maintenance Monitoring SOP and report to this operations group. Include tasks created by other workflows. Use immediate timing.
- A schedule: Draft our Unfinished Tasks SOP for every day at 5 PM Pacific/Auckland. Check whether it already has a schedule first.
- Automatic tasks: Draft a workflow to plan tasks using our existing Solo Guest Checklist rule whenever reservation.created has Number of guests equal to 1.
- Change a condition: Change the draft one-guest workflow to use reservation.numPeople === 1. Validate it and show the rule; leave it as a draft.
- Run from chat: Add a When requested by an AI tool trigger to our published Review workflow. After publication, run that workflow now for the reservation I selected.
- Existing cron: Show the existing Unfinished Tasks schedule and import it into a draft workflow without stopping the current schedule.
- Capacity and cost: Show our automation execution limits. Estimate the AI-step token cost of the reviewed one-guest workflow for 20 matching events and two model calls per AI step.
Existing tasks and schedules keep working
Deploying the shared builder does not automatically move existing cron schedules or task rules into workflows. Existing schedules keep running. Importing a schedule into a draft also leaves the original running; publishing the reviewed import transfers ownership so the original scheduler does not run a duplicate.
A Plan a task step uses the existing rule and its template, work dates, property scope and lifecycle. Its trigger time is separate from its work time. Publication transfers that rule's planning ownership, while existing live tasks and pending automatic messages retain their work slots. Review a transfer before enabling it.
Incoming and outgoing webhooks do different jobs
An incoming source starts a workflow. Create it in Workflows, declare its fields, and select it in When a webhook arrives. Your sender uses HTTPS, the source secret as a Bearer token, and a stable X-Delivery-Id. Retrying the same delivery with the same body deduplicates it; changing the body under the same ID is a conflict. Keep the secret private.
An outgoing event subscription sends committed facts to your endpoint independently of any SOP. Select native events in the webhook settings. Deliveries are individual CloudEvents envelopes and use the endpoint's signing contract; they do not inherit a workflow's debounce. A Send a webhook step is a separate workflow action.
Check what actually ran
- Open the workflow's run history to inspect its published revision, trigger, matched context, action results and receipts.
- Pending means queued; Running means execution started; Waiting means a wait or reply step is active. Completed means workflow processing finished, including any skipped steps. Planned tasks and messages may still be pending; inspect their receipts and lifecycle. Held, Failed and Cancelled need their recorded reason checked.
- A chat confirmation that a run was queued is not proof that its message was delivered or its task was approved. Required approvals and tool permissions still apply.
- New event subscriptions begin with future eligible facts after activation. They do not replay all historical events. Execution limits can defer work while retaining its run identity.
All documentation pages
- Working for a client — How a cleaning or maintenance company receives a client's tasks in its own workspace, and what it sees of the client.
- Roles and what they can do — The six roles, which one to give whom, and a live view of what each role can read and change.
- Inviting people and managing roles — Inviting a coordinator or a cleaner, accepting the invitation, changing a role, and property scopes.
- Receiving and delegating tasks — Where a client's tasks appear, how a coordinator hands one to a cleaner, and what the client sees back.
- The app for cleaners — Installing and signing in, the Today list, and a task from Start work to Finish.
- Location sharing and the team map — What the app records about where people are, with whose consent, and what a coordinator sees on the team map.
- Working from WhatsApp — One message connects you. What a cleaner can ask and do from WhatsApp, and how coordinators reach their team.
- Languages and translation — The relay that re-posts every group message in each language, your inbox language, translating one message, and the language the AI writes in.
- SOPs and automation triggers — Start SOPs, automatic tasks and messages from events, schedules or webhooks, with typed conditions and assistant chat commands.
- What syncs with each integration — For each PMS, task tool, key service, pricing tool and messaging channel: what Proptonomy reads, what it writes back, how often it syncs, and how to connect it.