Triggers
Start a BizFirst workflow automatically when a new transaction lands on a watched Accumulate account — a different kind of node from the other eight resources on this site.
The design proposal's own Quick Facts table counts 8 resources (Identity
through Utility) and lists Triggers separately. That's not an oversight: unlike every resource
above, which implements INodeExecutor, a trigger implements
ITriggerNodeExecutor and returns
TriggerNodeResult { HasNewItems, Items, ErrorMessage }, following the
established pattern already used by email-imap-trigger. It's cron/interval-scheduled
polling, not a real push subscription. This site gives it a full page as the ninth building
block because a workflow author reasoning about "what can this node do" needs to see it
alongside the other eight — but architecturally, it's its own category.
Operations
| Code | Operation | Maps to | Why a workflow author wants it | Priority |
|---|---|---|---|---|
| TRIG01 | Watch Account for New Transactions | Poll QX01/QX02 (V2 query-tx / query-tx-history) on a 1-second interval |
Start a workflow automatically when a new transaction lands on a watched account — e.g. "a payment arrived" | MVP |
How it works — the poll loop
sequenceDiagram
loop every 1 second
participant TRIG as TRIG01 poll cycle
participant NET as Accumulate Network
participant WF as BizFirst Workflow
TRIG->>NET: QX01/QX02 query-tx / query-tx-history
on watched account
NET-->>TRIG: latest transaction state
alt new transaction found
TRIG->>WF: TriggerNodeResult { HasNewItems: true, Items }
WF->>WF: workflow instance starts
else nothing new
TRIG->>TRIG: TriggerNodeResult { HasNewItems: false }
end
end
A 1-second interval is aggressive relative to Accumulate's synthetic-transaction settlement
delay (see SmartSigner and
004.References/AboutAccumulate.md §1) — a newly-submitted transaction's
cross-chain effects may not be visible that quickly, so most 1-second polls will find nothing
new. It also means one poll call per second, per workflow instance using this
trigger, which is worth keeping in mind for API rate limits and node load at scale — a
dedup/backoff strategy, if needed, is a Phase 2 concern, not part of this design decision. The
interval itself is fixed by owner decision, not left as a per-workflow configurable default; if
per-workflow tuning is wanted later, that's a follow-up, not implied by this decision.
Business use case — reactive automation on incoming payments
001.BusinessIdeas/README.md §2.5TRIG01 lets a workflow start when a transaction lands on a watched account, rather than only ever being the thing that sends one — e.g. "start the fulfillment workflow when a customer's payment arrives," or "notify finance when a disbursement account receives an unexpected deposit." The scalability caveat above is called out directly in the business-ideas document too, not just the design proposal — worth being direct about it rather than presenting TRIG01 as a free lunch.