/
/
Record a Shopify order in Sage Intacct, never twice
For finance teams who want a Shopify order posted to Sage Intacct with the right customer and items, by asking their AI assistant.
On this page
Connector
Connect Shopify, pick your AI tool and paste the prompt.
The problem
One missed check and the same order is billed twice
Getting a Shopify order into Sage Intacct by hand means finding the right customer, matching each product to an item by SKU and checking nobody already posted it. Miss that last check and the same order is billed twice.
Without PopdockAI
- Search recent Intacct invoices for the order number
- Find the customer through the company or a contact
- Match each product to an item by SKU
- Post it and hope nobody did already
With PopdockAI
- Recent Intacct documents are searched for the order number first
- The customer is found through the B2B link, an email or the name
- Every line must match exactly one item by SKU
- Nothing is posted until you confirm, and the document is read back
The prompt
Use this prompt
Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.
**Objective:** Record Shopify order `{order-name}` in Intacct as a `{transaction-type}` document (default Sales Invoice) for Intacct customer `{intacct-customer-id}` (default: found from the order), after confirming it has not been posted already. Write nothing without the user's confirmation.
**Step 1: Read the Shopify order**
Call `shopify-get-order` with `name` = `{order-name}`; if nothing matches and the value is numeric, retry with `order-number`. If it matches more than one order, list them and stop. If the order has a `cancelled-at` value, report that and stop. Keep `order-id`, `name`, `created-at`, `email`, `customer-id`, customer first and last name, `total-price`, `total-tax` and `currency`.
Call `shopify-get-order-line` with `order-id` and keep each line's `sku`, `title`, `quantity` and `price`.
**Step 2: Check it is not already in Intacct**
Call `intacct-get-invoice` and `intacct-get-order-entry-document` with date ranges covering the order date to 30 days after it. If any document's `reference-number` or `customer-po-number` equals the order name or number (ignoring a leading `#`), report that document and stop.
**Step 3: Find the Intacct customer**
If `{intacct-customer-id}` is set, call `intacct-get-customer` with `customer-id` = it and use it. Otherwise try, in order, and stop at the first single match:
1. B2B: `shopify-get-company-contact` with `customer-email` = the order email; if it returns a `company-id`, call `shopify-get-company` with it and use its `external-id` as the Intacct customer-id.
2. `intacct-get-contact` with `email` = the order email, then `intacct-get-customer` with `customer-name` = the contact's `company-name`.
3. `intacct-get-customer` with `customer-name` = the order's customer first and last name.
If nothing matches, or a step matches several customers, list what you found and ask the user for the Intacct customer-id. Never create a customer from this prompt.
**Step 4: Match the items**
For each order line, call `intacct-get-item` with `item-id` = the line `sku`. Every line must resolve to exactly one Intacct item. If a line has no SKU or no matching item, list it and stop.
`intacct-create-order-entry-document` accepts at most two lines. If the order has more than two lines after matching, report that it cannot be posted by this tool and stop. Do not merge or drop lines.
**Step 5: Confirm, then post**
Show the user: customer id and name, transaction type (`{transaction-type}`, default Sales Invoice), date (the order's created date), reference number (the order name), each line's item-id, quantity and unit price, and the document total against the Shopify total. Say plainly that Shopify tax, shipping and discounts are not carried across by this tool, so the totals may differ by those amounts.
Only after a yes, call `intacct-create-order-entry-document` once with `customer-id`, `transaction-type`, `date`, `reference-number` = the order name, `customer-po-number` = the order name, `item-id`, `quantity`, `price` and, for a second line, `item-id-2`, `quantity-2` and `price-2`. Leave `state` unset so Intacct applies its default.
**Step 6: Confirm**
Report the returned `document-id`, then call `intacct-get-order-entry-document` with `document-id` and show its total and state.
**Rules & Guidelines:**
* `shopify-get-order`, `shopify-get-order-line`, `shopify-get-company-contact` and `shopify-get-company` are on the shopify server. `intacct-get-invoice`, `intacct-get-order-entry-document`, `intacct-get-customer`, `intacct-get-contact`, `intacct-get-item` and `intacct-create-order-entry-document` are on the intacct server.
* The only write tool this prompt may call is `intacct-create-order-entry-document`, once, after confirmation. Do NOT call `intacct-create-customer`, `intacct-update-order-entry-document`, `shopify-update-order` or any other write tool.
* If the user does not know the transaction type, read recent documents with `intacct-get-order-entry-document` and offer the `transaction-type` values in use.
**Validation:**
* If the order currency differs from the customer's Intacct currency, stop and ask the user how to proceed.
* If the create call fails, show the error, do not retry with changed values, and stop.Who it's for
One answer, three teams that use it
Accounts receivable
Bill web orders without double entry
Post an order as a sales invoice in one conversation, with the duplicate check done first.
Post Shopify order #1764 to Sage Intacct as a sales invoice.
B2B sales operations
Get a wholesale order on the right account
The customer is found through the B2B company link, so the invoice lands on the account that pays.
Record Shopify order #1820 from Northwind Traders in Sage Intacct against their customer record.
Controllers
Keep the ledger free of duplicates
An order already carried by a recent document is stopped, and you are told what tax and shipping do not carry.
Is Shopify order #1902 already in Sage Intacct? If not, post it.
How it works
What PopdockAI does when you ask
You name the order, and your AI assistant checks Sage Intacct for an existing document and matches the customer and items. It tells you what does not carry across before you confirm.
01
Ask
You name the Shopify order.
02
Check
It stops if a recent Intacct document already carries the order number.
03
Match
It finds the customer and matches each line to one Intacct item by SKU.
04
Post
You confirm, it posts the document and reads it back.
What PopdockAI provides
The tools behind the answer
Ready made tools for Shopify and one secure connection to your AI tool. No code, no exports.
shopify-get-order
shopify-get-order-line
sage-intacct-get-invoice
sage-intacct-get-order-entry-document
sage-intacct-get-customer
shopify-get-company-contact
shopify-get-company
sage-intacct-get-contact
sage-intacct-get-item
sage-intacct-create-order-entry-document
This report is built from Get data tools only. PopdockAI applies the row, field and parameter rules your admin sets, and every query is written to the audit trail.
The outcome
Shopify orders in your ledger once, never twice
Related use cases
More ways to put this data to work
One prompt template with infinite possibilities.
Your AI assistant adapts its approach, tone, and capabilities to match each unique context while you maintain a single, manageable workflow.
Join forward-thinking companies that are transforming their operations with intelligent, secure AI automation.

.webp)
