Turn accepted Xero quotes into instant client kickoff kits
Every 15 minutes, sweep Xero for newly accepted quotes and spin up a Notion project page, a Slack heads-up, and a draft welcome email for each new client.
Integrations
Xero
Notion
Slack Bot
Gmail
Type
Categories
- Sales
- Operations
Every 15 minutes on a cron schedule, sweep Xero for quotes that have just flipped to ACCEPTED and spin up a full client kickoff kit for each new one. Xero does not fire outgoing webhooks for quote status changes and is not in the platform's poll provider list, so cron polling with a status filter is the correct trigger.
Step 1: pull the candidate quotes. Call the Xero List Quotes operation filtered by Status=ACCEPTED, and pass an updated-since window (e.g. the last hour, or since the previous run's high-water mark) so each sweep only looks at recent movement. Xero quote statuses are DRAFT, SENT, DECLINED, ACCEPTED, INVOICED, and DELETED — only ACCEPTED should trigger this workflow.
Step 2: dedupe against a running Notion index. Use the Notion Query a Database operation against a customer-configured 'processed quote IDs' index (a database or index page holding one row per already-processed Xero QuoteID). Skip any quote whose ID is already in the index. This makes the sweep exactly-once even though cron polling is inherently at-least-once.
Step 3: for each genuinely new accepted quote, fetch the full quote detail with Xero Get Quote (to get the line items, totals, and reference/quote number if the list response is thin) and fetch the customer with Xero Get Contact using the contact ID on the quote. This gives you the customer name, primary contact person, email, phone, and address for personalisation.
Step 4: create the Notion project page with the Notion Create a Page operation, as a child of the customer-configured projects database. The page should contain: a short quote summary (customer, deal size, quote number, accepted date), the full list of accepted line items (description, quantity, unit price, line total), a kickoff checklist tailored to what they actually bought (use judgement here — a services engagement gets different checklist items than a product resale, and different line items imply different first-week actions), and owner assignments pulled from the customer-provided owner mapping (which team member owns which product or service line).
Step 5: post a Slack card to the customer-configured delivery channel using the Slack Bot Send a Message operation. The message should name the customer, the deal size, the account owner, and link back to the Notion project page. Format it as a compact card (Block Kit is fine) so the delivery team can scan the channel and see new kickoffs at a glance.
Step 6: draft a personalised welcome email with the Gmail Create a Draft operation, addressed to the primary contact on the Xero quote. The draft should reference the specific line items the customer accepted (not a generic 'thanks for signing'), name the account owner, and propose two or three kickoff meeting time options. Leave it as a draft in Gmail — do not send. The account owner will review, tweak, and hit send themselves.
Step 7: record the processed QuoteID on the Notion index (create a new row/entry) so the next sweep skips it. Do this last, after the Notion page, Slack card, and Gmail draft have all been created successfully, so a partial failure retries cleanly on the next run rather than silently marking a broken kickoff as done.
Expose these as customer-set variables: the Notion projects database ID, the Notion processed-quotes index page or database ID, the Slack delivery channel, and the account-owner mapping (either a Notion table the agent reads, or a simple JSON/YAML config listing who owns which product line or service category, plus their Gmail sender identity).
Hard rule: do not auto-send the welcome email under any circumstances. The email is always left as a draft for the account owner to review and send. The Notion page and Slack card can be posted automatically, but customer-facing email stays human-in-the-loop.
What it does
- Checks Xero every 15 minutes for quotes that just moved to Accepted
- Creates a Notion project page for each new client with the accepted line items, a tailored kickoff checklist, and owner assignments
- Posts a card to your delivery Slack channel with a link to the Notion project and the deal size
- Drafts a personalised welcome email in Gmail that references what the client bought and proposes kickoff meeting times, left in Drafts for the account owner to review and send
What you’ll need
- A Xero login with permission to read quotes and contacts
- A Notion workspace with a projects database and a running index page for processed quotes
- A Slack workspace and the channel where kickoff cards should land
- A Gmail account for the person who owns the welcome email
- A simple owner mapping (which team member owns which product or service line)
How to customize it
- Point it at your Notion projects database and the index page it should use to remember what has already been processed
- Set the Slack channel that receives the kickoff cards
- Configure the account-owner mapping so each new client gets the right owner assigned and the right person listed as sender on the draft email
- Adjust the sweep frequency if 15 minutes is too tight or too loose for your pipeline
Use cases
- Onboarding Automation
- Notifications & Alerts
- Email Automation