- Create an intent with objective + conditions + guardrails
- Listen for events (webhook)
- If needed, handle user action required
- Read the result (and optionally fetch receipt/proof)
Example 1: Buy an item across retailers (below price by date)
Goal: “Buy PS5 Pro if it’s in stock at Target/BestBuy/Walmart for under $800, any time before Feb 1.”Step 1 - Resolve product (no URLs)
product_id from the returned candidates (optionally confirm with the user).
Step 2 - Create intent
Typical event sequence
Example 2: Restaurant reservation (watch cancellations)
Goal: “Table for 4 Fri or Sat between 7–9pm. Watch cancellations. Give up if not confirmed by Thursday.”Step 1 - Resolve venue (no URLs)
venue_id (and provider) from the returned candidates.
Step 2 - Create intent
Example 3: Passport / DMV appointment (earliest slot within 30 miles)
Goal: “Book the earliest appointment within 30 miles. Keep watching cancellations until booked.”Step 1 - Resolve facilities (no URLs)
facility_id from the returned candidates.
Step 2 - Create intent
What the partner app does
- Listen for
execution.needs_user_actionto collect missing identity fields or confirmations. - Once
intent.succeededarrives, show the user the booked slot. - Optionally fetch proof:
Example 4: SMB replenishment (avoid double ordering, net terms)
Goal: “Reorder when inventory < 10. Net-30 only.”Create intent
What the partner app does
- De-dupe create calls with
Idempotency-Keyso a retry can’t create duplicate orders. - Use webhook events to update internal order state (pending → executing → succeeded).
- On success, fetch receipt/proof for accounting:
Integration checklist (what you build on your side)
- API client: call
POST /intents,GET /intents/{id},POST /intents/{id}/cancel,POST /intents/{id}/resume - Webhook receiver: store
event_idfor de-duplication and update intent state - User-action UI: handle
execution.needs_user_actionand callresume - Receipt storage: download/store proof artifacts when needed (support, disputes, compliance)