REST endpoints for automations in ServFlo: 11 operations with parameters, request and response fields, permissions and curl examples.
Base URL: https://app.servflo.ai/api. Every call needs Authorization: Bearer sfk_… (Authentication); {organizationId} ($ORGANIZATION_ID in the examples) is your business's id.
The organization's automations (engagement rules: trigger → conditions → messages → guardrails), on ones first, each with its message stats (sent, delivered, failed, deferred by quiet hours, skipped). Read-only.
CUSTOMER-FACING when enabled: a rule that messages customers when it fires. Templates named in the action must be this organization's and match the step's channel (GET /message-templates). Created off unless enabled is true.
Permission
engagement.manage (Owner, Admin)
Risk
sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP tool
automations_create (toolset marketing)
Approval
Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals.
GET /organizations/{organizationId}/automations/presets
The field-service automations ready to turn on: request received, booking confirmation, 24-hour and 2-hour reminders, on my way, thank you + review request, quote follow-up, invoice payment link, overdue reminders, membership renewal, membership visit due, win-back and payment receipt. Each says whether the organization already has it on and what setup it still needs. Read-only.
POST /organizations/{organizationId}/automations/presets/{presetKey}
Customer-facing: creates the preset's message templates and automation (once) and turns it on; from then on matching events, timers and schedules message customers (in test mode they are only logged). Calling it again turns the existing automation back on, keeping edits. Get preset keys from GET /automations/presets.
Permission
engagement.manage (Owner, Admin)
Risk
sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP tool
automations_enablePreset (toolset marketing)
Approval
Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals.
From GET /automations/presets. One of request_received, booking_confirmation, reminder_24h, reminder_2h, on_my_way, job_thanks_review, quote_follow_up, invoice_sent, invoice_overdue, membership_renewal, membership_visit_due, win_back, referral_reward, payment_receipt.
Customer-facing: replaces the automation's settings (send the whole rule, as GET returns it). Editing a RELATIVE timing re-arms its timers; turning it off withdraws armed timers, open cadences and queued messages.
Permission
engagement.manage (Owner, Admin)
Risk
sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP tool
automations_update (toolset marketing)
Approval
Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals.
Destructive: turns the automation off (withdrawing what it queued) and deletes it with its execution log. Its sent messages stay in the message log. A preset can be turned on again from the gallery.
Permission
engagement.manage (Owner, Admin)
Risk
sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP tool
automations_delete (toolset marketing)
Approval
Over MCP, this tool always waits for your approval in ServFlo. See Approvals.
POST /organizations/{organizationId}/automations/{ruleId}/enabled
Customer-facing: on, it messages customers when it fires (emits automation.enabled); off, its armed timers, open cadences and queued messages are withdrawn (automation.disabled).
Permission
engagement.manage (Owner, Admin)
Risk
sensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP tool
automations_setEnabled (toolset marketing)
Approval
Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals.
GET /organizations/{organizationId}/automations/{ruleId}/executions
Each time the automation fired (an event, a timer, a schedule slot): for which customer and record, and what came of it (queued, skipped because conditions did not match or the frequency cap). Newest first. Read-only.
GET /organizations/{organizationId}/automations/{ruleId}/timers
For a RELATIVE automation (e.g. 24 hours before each visit): the timers armed per record and time, with their state (armed, fired, cancelled because the visit was rescheduled or cancelled, skipped because the time had passed). Read-only.
POST /organizations/{organizationId}/automations/preview
Renders an automation (saved or not) for a real customer, and optionally one of their records: each condition's outcome (true, false, or unavailable for a prediction that is not computed, such as best send time; predictions come from the customer's own records) and every message as it would be sent, with merge fields filled. Nothing is sent; an invoice link may be made on first use, as the invoice page does. Find customers with GET /customers.
Permission
engagement.read (Owner, Admin, Dispatcher)
Risk
write, OAuth scope servflo.write. Write: creates or changes records inside the business; nothing leaves it.