Contents · 22 sections
Part A
Set up
Ten steps, about ten minutes. Do them in order — each one depends on the one before.
Setup checklist
Create your AttiBooks account
The account carries your plan, your monthly invoice quota, and your automation history. Your QuickBooks credentials never go through it.
- 1
Go to attibooks.com/get-started and sign up.
- 2
Open the verification email and confirm your address.
Done when: You can sign in at attibooks.com/login and see the setup checklist.
Install the app in Attio
- 1
In Attio, open Settings → Apps, search for AttiBooks, and install it. Or click Install AttiBooks to go straight to the authorized listing.
- 2
Approve the permissions. You need to be a workspace admin.
Done when: AttiBooks appears in Attio’s left sidebar.
Link the workspace to your account
- 1
Open AttiBooks → Workspace settings. The first section is AttiBooks Account.
- 2
Press Link Account, then Continue to AttiBooks in the dialog.
- 3
On attibooks.com, confirm the workspace.
Done when: The button’s description reads Linked to you@company.com (free plan).
One workspace, one account
A workspace links to a single AttiBooks account. If you see “Already linked elsewhere”, a colleague linked it first — they can press Unlink on their dashboard, or email help@attibooks.com.
Connect QuickBooks
- 1
Open AttiBooks in the Attio sidebar and press Connect QuickBooks in the header. Sign in to QuickBooks Online and authorize.
- 2
Find your Company ID in QuickBooks: gear icon → Additional info (a ~16-digit number).
- 3
In settings, scroll to 7. Advanced and paste it into QBO Company ID (required).
- 4
Go back to 1. QuickBooks Connection and press Check Status.
Done when: A green toast reads Connected to QuickBooks (Company: …).
Sandbox or production? Detected automatically from the token. Leave Environment blank unless you want to pin it to sandbox or production. Re-authorize after switching QuickBooks companies.
Pick your target objects
Tell AttiBooks which Attio objects you invoice from. This fills the attribute dropdowns in the next steps with the right fields.
- 1
In 7. Advanced, set Target Objects to the object slugs, comma-separated — e.g.
companiesorcompanies,deals.
The Create QuickBooks Invoice action works on any record. Target objects only decide which attributes the settings dropdowns offer.
Choose an invoice mode
Quick mode
One click. AttiBooks reads the record, fills gaps from your defaults, and submits to QuickBooks.
Best for: Repeat work with steady rates
Custom mode
A form opens first — edit lines, pick a QuickBooks product per line, set tax, discount, and memo.
Best for: Project work, every invoice different
- 1
Type
quickorcustominto Mode. Blank means quick. Switch any time.
Set template defaults
Fallbacks for anything a record doesn’t have, so an invoice is never half-built. Quick mode uses them as-is; custom mode pre-fills the form with them. Type numbers plainly (150, not $150).
e.g. Consulting services. Built-in fallback: “Consulting services”.
e.g. 150. Built-in fallback: 150.
e.g. 1. Built-in fallback: 1.
e.g. USD. Must be enabled in your QuickBooks company.
e.g. 30 — days from invoice date to due date.
Optional. Keeps invoices posting to the right income account.
Optional. TAX or NON on US companies; a tax code id elsewhere.
Optional. 0–100.
Map writeback fields
After QuickBooks accepts an invoice, AttiBooks writes the result back to the Attio record — so your CRM shows invoice number, status, and what’s still owed.
- 1
In Attio, create the attributes first on each target object (e.g. a text attribute Invoice number, a number attribute Balance).
- 2
Back in settings, pick each one from its dropdown. You can also type a slug that isn’t listed.
Start with these three
Invoice Number, Invoice Status, and Sync Error. Sync Error is where every failure is written — without it, errors only show as a toast. Add the rest when you need them.
QuickBooks invoice id. Required for sync, send, push, remind, and edit.
The number your customer sees.
Open, Paid, Voided — refreshed on every sync.
Opens the invoice inside QuickBooks.
When the record was last refreshed.
Last error. Empty on success — read this first when something breaks.
0 once paid in full. Filter on it to find who owes you.
Total minus balance.
As QuickBooks holds it. Powers overdue views and reminders.
Set by the estimate action; needed to convert.
The number on the quote.
Pending, Accepted, Converted.
Opens the estimate inside QuickBooks.
Map Balance Due and Due Dateand an Attio view filtered on “balance > 0 and due date in the past” becomes your collections list.
Map source fields
Source fields pull invoice data from the record you click. Any field left blank uses the template default from step 7.
Optional. Blank uses the record's own name (company, person, or deal name).
Where QuickBooks sends the invoice. Needed for Send and Remind.
Line description.
Unit price.
Multiplied by rate.
3-letter code, e.g. EUR.
Net terms for this record.
Linked records: type reference.attributeto read one hop away — e.g. on a deal, company.name bills the linked company.
Create a test invoice
- 1
Open a record on a target object (a sandbox QuickBooks company is ideal for this).
- 2
Open the record’s actions menu and choose Create QuickBooks Invoice.
- 3
Custom mode: review the form and submit. Quick mode: it goes straight to QuickBooks.
Done when: A toast reads Invoice #1001 created! and the record shows the number, status, and link you mapped. Your dashboard checklist turns green.
Didn’t work? The error is on the record’s Sync Error field — look it up in Troubleshooting.
Part B
Everyday use
What you do from an Attio record once setup is done.
Create invoices
Quick mode builds the invoice from the record and your defaults and submits it in one click.
Custom mode opens a form first: edit the customer, add as many lines as you need, pick a QuickBooks product or service per line, and set a tax code, a percentage or fixed discount, and a memo.
Either way, the invoice number, status, link, balance, and due date are written back to the record within seconds.
Quote first, invoice later
Create a QuickBooks estimatefrom the same record data — same mapping, lines, tax, and discount. Its number, status, and link go to the estimate writeback fields.
When the deal closes, run the Convert estimate to invoice workflow block (see Workflow blocks). It copies the estimate into a linked invoice in QuickBooks.
Estimates are free
Creating an estimate doesn’t count toward your monthly limit. Converting does — that’s when the customer is billed. AttiBooks refuses to convert an estimate whose record already has an invoice, so nobody is billed twice.
Store invoices as Attio records
Optional. Gives every invoice its own record in an Attio invoicesobject — one row per invoice, with number, status, totals, customer, and QuickBooks ids. It also unlocks Edit & Void and bulk sync.
- 1
In 7. Advanced, turn on Store invoices as Attio records.
- 2
Optional: set Invoice Object Slug to use an object you already have. Blank creates
invoices. - 3
Press Run Setup.
Done when: A toast reads Invoice object ready.
Custom objects need an Attio plan that supports them. Without one, writeback to the source record still works.
Edit and void from Attio
These actions appear on records in the Invoice object:
Leave a field blank to keep its current value. Changes go straight to QuickBooks.
Voids the invoice in QuickBooks and re-syncs the record. Cannot be undone.
QuickBooks is the source of truth
Totals, balance, and payments are read-only in Attio. Every change goes to QuickBooks first, then syncs back — one writer, no conflicts. AttiBooks never deletes anything in QuickBooks.
Keep invoices in sync
Payments and edits made in QuickBooks flow back to Attio. Sync only reads what changed since the last run.
Pulls every changed invoice into the Invoice object.
Same as Sync Now, without leaving the record.
Refreshes one record's invoice — put it on a daily schedule.
Runs at 00:00 UTC into the Invoice object. Starts once you open AttiBooks settings after upgrading.
Sync Now, the record action, and the automatic daily sync need the Invoice object on. Without it, use the Sync invoice or Remindblock — both refresh status, balance, and due date on the source record.
Part C
Automate
Let Attio workflows create, send, and chase invoices for you.
Workflow blocks
- 1
In Attio, open Workflows → New workflow and pick a trigger (record created, stage changed, a schedule).
- 2
Add a step, search AttiBooks, and pick a block.
- 3
Bind Record to the trigger’s record. Fill any optional fields.
Blocks use the settings you already filled in — mapping, defaults, writeback. Nothing to configure twice. Failures land in Sync Error, just like manual runs.
Create QuickBooks invoice
Counts toward quotaBuilds an invoice from the record with your mapping and defaults, and writes the result back.
- Fields
- Record · Skip if already invoiced · Line description · Due in days · QuickBooks item · Extra lines · Tax code · Discount %
- Skips
- Records that already have an invoice, when the skip box is on.
Sync invoice from QuickBooks
Refreshes the record's invoice status, balance, and due date.
- Fields
- Record
- Skips
- Records without an Invoice ID.
Send invoice via QuickBooks
Emails the invoice through QuickBooks' own delivery.
- Fields
- Record · Send to (optional override)
- Skips
- Records without an Invoice ID.
Push invoice to QuickBooks
Updates the due date and/or memo on the QuickBooks invoice from Attio values.
- Fields
- Record · Due date (bind a date attribute) · Memo (bind a text attribute)
- Skips
- When both fields are empty, or already match QuickBooks.
Remind about an unpaid invoice
Re-sends overdue, unpaid invoices. Refreshes the balance either way — a daily run doubles as payment sync.
- Fields
- Record · Days past due · Minimum days between reminders · Send to (optional)
- Skips
- Paid invoices, ones not yet overdue, and ones reminded inside the cooldown.
Create QuickBooks estimate
Creates a quote from the record — same mapping and line options as an invoice.
- Fields
- Record · Skip if already estimated · Line description · Valid for (days) · QuickBooks item · Extra lines · Tax code · Discount %
- Skips
- Records that already have an estimate, when the skip box is on.
Convert estimate to invoice
Counts toward quotaTurns the record's estimate into a linked invoice in QuickBooks.
- Fields
- Record
- Skips
- Records with no estimate, or that already have an invoice.
Loop protection
Create, send, push, remind, and estimate are each capped at 50 runs per hour per workspace. Runs over the cap are logged as rate capped. Push compares with QuickBooks first and skips when nothing changed — safe on a “record updated” trigger.
Invoices created by a workflow — including converted estimates — count toward your monthly quota like manual ones. Sync, send, push, remind, and creating an estimate don’t.
Ready-made recipes
Copy these into Attio workflows. Each is one trigger and one or two blocks.
Invoice on Closed Won
When
Deal stage changes to Closed Won
Then
- 1.Create QuickBooks invoice (skip if already invoiced: on)
- 2.Send invoice via QuickBooks
Quote, then bill
When
Deal reaches Proposal → then Closed Won
Then
- 1.On Proposal: Create QuickBooks estimate
- 2.On Closed Won: Convert estimate to invoice
Daily collections chaser
When
Scheduled, daily — records with Balance Due > 0
Then
- 1.Remind about an unpaid invoice (7 days past due, 7 days between reminders)
Keep due dates in step
When
Record updated — Due Date attribute changes
Then
- 1.Push invoice to QuickBooks (bind Due date)
Part D
Account & billing
The attibooks.com side: usage, plans, alerts, and billing.
Your dashboard
Sign in at attibooks.com/login. Until setup is done it shows a checklist — verify email, link a workspace, connect QuickBooks, create your first invoice — that ticks itself off as you go. After that, each linked workspace gets a card with:
Current plan and invoices used this month against your limit.
Latest automation runs with their result and skip reason.
Pro, monthly or yearly.
Stripe portal: invoices, card, cancellation.
Email and/or Slack when a run fails. At most one alert an hour.
Detaches the workspace. AttiBooks stops working there until relinked; QuickBooks data is untouched.
Plans & limits
Free
$0/mo
- 10 invoices per month
- Quick & custom modes, estimates
- All seven workflow blocks
- Manual and workflow sync
Pro
$29/mo
or $290/year
- Unlimited invoices
- Everything in Free
- Automatic daily sync
At the free limit, new invoices are blocked until the 1st of next month or until you upgrade. Everything else — sync, send, reminders, estimates, existing invoices — keeps working.
Part E
Reference
Look things up when you need them.
Settings at a glance
Every section of AttiBooks → Workspace settings, and where it’s explained.
Troubleshooting
Find the message you see, then do what the right column says.
Settings couldn't be read. Reload Attio, open AttiBooks → Workspace settings once, then retry.
Press Connect QuickBooks in the AttiBooks header and authorize again.
The record has no name. Map Customer Name in §5 Source Fields, or add a name to the record.
You've used your 10 free invoices. Upgrade from the dashboard, or wait for the 1st.
Map Invoice ID in §4 Writeback Fields. Only invoices created after that are linked.
The source field isn't mapped, or the attribute is empty on that record. Check §5.
Add its object to Target Objects in §7, or type the slug and pick “Use …”.
Another account linked this workspace. Ask them to Unlink from their dashboard.
The invoice is in QuickBooks. Press Run Setup in §7, then Sync Now in §6.
Update QBO Company ID in §7, then reconnect from the header.
Turn on the Invoice object (§7 → Run Setup). Or use the Sync invoice block.
Still stuck? Email help@attibooks.com with the record link and the text of Sync Error.
22· Quick reference
Every feature, briefly.
Create
One-click invoices
From companies, deals, people, or any custom object.
Quick & custom modes
Speed when you want it, control when you need it.
Multi-line invoices
Each line with its own QuickBooks product or service.
Tax codes & discounts
Per invoice, or as defaults.
Estimates
Quote from a record; convert when the deal closes.
Stay in sync
Payment writeback
Balance, amount paid, and due date on every touch.
Invoice object
Every invoice as its own Attio record.
Edit & void from Attio
Due date and memo, or void — pushed to QuickBooks.
Incremental sync
Only invoices that changed. Daily and automatic on Pro.
Errors in your CRM
Failures are written to the record, not lost in a log.
Automate
Seven workflow blocks
Create, sync, send, push, remind, estimate, convert.
Overdue reminders
Re-send unpaid invoices with a per-invoice cooldown.
Loop-safe
Hourly caps per action, plus a no-change guard on push.
Run history
Every run logged with its result and skip reason.
Failure alerts
Email or Slack, at most one an hour.
Account
Attribute pickers
Choose fields from a dropdown of your real attributes.
Environment auto-detect
Sandbox or production, from the token.
Credentials stay in Attio
QuickBooks tokens never leave your workspace.
Self-serve billing
Upgrade, manage, or unlink from the dashboard.
“A good invoice is the one that gets paid —
a great one is the one you barely had to make.”