Automations
Durable accounting recipes and their execution model.
Queue a recipe with POST /v1/automations:
{
"connection_id": "00000000-0000-0000-0000-000000000000",
"recipe": "quote.accept_and_create_invoice",
"input": {
"quote_resource_id": "00000000-0000-0000-0000-000000000000",
"external_reference": "deal_814"
}
}Recipes
| Recipe | Result |
|---|---|
contact.upsert | Creates or reconciles a contact |
quote.draft | Creates a draft quote |
quote.accept_and_create_invoice | Accepts a quote, then creates a linked draft invoice |
invoice.create | Creates an invoice |
invoice.record_payment | Records a payment against an invoice |
purchase_order.create | Creates a purchase order |
document.fetch | Fetches an invoice, quote, or purchase-order PDF |
Every recipe runs as a durable operation: claimed under a lease, retried with bounded exponential
backoff, resumed from its last completed step, and moved to dead_letter when attempts are
exhausted rather than failing silently. Operations covers the states, the
reconciliation safety net, and replay.
An automation run is metered once, after it succeeds. Failed attempts do not create duplicate usage events.