Printavo
ERPConnect AI agents to Printavo, shop management software for screen printers and decorators. Agents create quotes and line items, register customers and inquiries, request and record payments, and email customers about status.
What This Integration Enables
Printavo runs the office side of a screen printing, embroidery or promotional products shop, and the thing it is genuinely built around is the pricing matrix. A garment order is not a price, it is a calculation: garment cost, size breaks, imprint locations, colour counts, quantity tiers and the shop's own margin rules. That is why the most interesting operation this connector exposes is not a create at all. Calculate Line Item Group Pricing prices a proposed line item group against the account's pricing matrices without saving anything, and returns a signed receipt that Create Line Item can consume. The vendor shipped a dry run, which means an agent can answer "what would this actually cost" before anything exists in the shop's records.
Around that sits the full quote to cash path, built on Printavo API v2, the GraphQL generation of the API. Quotes are created, updated and duplicated. Invoices are read, updated and duplicated, and Duplicate Invoice deliberately returns a quote rather than an invoice, because a reorder restarts at the quoting stage and can be re approved before it is billed again. That is Printavo behaviour and this connector does not paper over it. Orders are read as a union of quotes and invoices, each tagged with its type, so a flow can look at the whole board and then narrow. Update Order Status advances a job through the production pipeline against statuses resolved from List Statuses rather than typed in. Customers and contacts are created and updated, with Create Customer building a company and its required primary contact in one call. Line items are created, updated and deleted, tasks are managed and preset task groups are stamped onto an order as a production checklist. Merch stores, their orders and the inbound inquiry queue are readable, and Create Inquiry pushes a lead captured somewhere else into the shop's own inbound queue.
Two design decisions in this connector deserve to be stated rather than discovered. Deletes are deliberately limited to line items and tasks, the child records a flow legitimately manages. Quote, invoice, customer, contact, payment and mockup deletes exist in the Printavo API and are not exposed here, because they destroy business records irreversibly and no reasonable flow needs them. And GraphQL faults arrive as HTTP 200 with an errors array rather than a failure status, including for authorization failures, so this connector inspects every response and raises the error instead of letting a flow carry on believing an empty result was a real one.
On events, be plain about it. This connector ships no triggers. Printavo v2 documents no webhook subscription API and the schema declares no webhook types, so there is nothing here to register and nothing here that creates a FlowRunner trigger. Change detection is a scheduled poll of List Orders, List Tasks or List Inquiries with a date filter. Two limits shape how that poll should be built: Printavo allows 10 requests per 5 seconds per user email or IP, and connections page at 25 records by default, with every list action exposing First and After so a flow pages explicitly rather than hoping.
Without FlowRunner
With FlowRunner
Use Case Scenarios
A reorder priced against today's matrices, not last year's
A repeat customer asks for the same job again. The agent finds the original with List Invoices and Get Invoice, reads the line item groups, sizes and imprints, and then calls Calculate Line Item Group Pricing with the same specification. Because that call prices against the pricing matrices without saving, the shop learns what the job costs now before anything is created. Where the number has moved, the delta and its cause go to the account manager. Where it has not, Duplicate Invoice creates the reorder, which Printavo returns as a quote so it can be re approved before it is billed, and Create Line Item Group consumes the signed receipt from the pricing call so the saved line matches the number that was quoted. The quote reference goes back to the customer record in HubSpot.
Leads captured anywhere, queued where the shop actually looks
Enquiries arrive through a website form, a trade show list and a spreadsheet. The agent reads them from Google Sheets and a form tool, checks List Contacts, which is the only list query with server side free text search, to see whether the person already exists, and then either creates the customer and its primary contact with Create Customer or adds a contact to the existing company with Create Contact. Every enquiry then goes into Create Inquiry so it lands in the same inbound queue the shop's own quote request form feeds, rather than in a second list nobody checks. New inquiries are announced in Slack with the customer, the garment interest and the source.
A production board that reflects what is actually happening
Jobs move through the shop and the statuses fall behind. On a schedule the agent calls List Orders, which returns quotes and invoices together each tagged with its type, and List Tasks filtered by completion and due window. It compares the production status on each order to whether the preset task group for that stage is complete. Where a job has every press task closed but is still sitting in a pre production status, the agent proposes the advance and, once cleared, calls Update Order Status against a status resolved from List Statuses. Where a job is in a late status with open tasks behind it, the agent raises it rather than quietly correcting either side. The board summary goes to production in Microsoft Teams every morning.
Human-in-Loop Highlight
Create Payment is the gate, and the vendor's own security note is the reason. Create Payment records an externally captured payment against an order. It does not charge a card. It writes to the money ledger, and a flow that runs it twice double credits the order. In a print shop that is not an accounting inconvenience. The balance due is what the front counter reads before releasing 400 shirts, so a payment recorded against money that never arrived releases goods that were never paid for, and the shop finds out at the end of the month. The other half of the risk sits next to it: Create Payment Request and Send Email Message both send mail from the shop's Printavo account and reach real customers, so chasing a balance that was actually settled is a mistake the customer sees. So the agent assembles the reconciliation and stops before it commits. It reads List Transactions on every candidate order first, because payments, refunds, returns, voids and disputes come back as a tagged union and a "missing" payment is sometimes a payment that was voided on purpose. It posts to the shop owner: "12 bank deposits from Tuesday match 12 unpaid Printavo orders by amount. 9 of them also match on customer name and I have listed them below with the order number and the deposit reference. 3 do not. Deposit 4471 for 1,842.50 matches invoice 20913 for Ridgeline Athletics on amount only, and that invoice already has a voided transaction for the same figure from March. Recording a payment here credits the order and there is no charge behind it, so if I am wrong the counter will release the order. Confirm the 9, and tell me what to do with 20913?" The owner answers once. Create Payment runs on the confirmed set, Create Payment Request goes out only on the balances that survive the reconciliation, and nothing that reaches a customer goes out before the ledger is right. This is the human-in-the-loop moment on a system where the write is trivially cheap, entirely believable, and downstream of it is a door that opens.
Agent Capabilities
45 actionsAccount
3- Get Account Returns company details, address, locale, logo, invoice settings and the enabled catalogs, which is how a flow learns what this shop is configured to sell before it searches products.
- Get Current User Returns the user the API token belongs to, with its full permission list. Worth checking, because a Printavo token is unscoped and acts as the user it belongs to.
- List Statuses Returns order statuses with colour and position, filterable to quotes or invoices, so a status change is applied by a resolved value rather than a remembered name.
Orders
3- List Orders Returns quotes and invoices together, each tagged with its type. Union connections do not expose a total, so this returns page information without a count.
- Get Order Returns a single quote or invoice by ID without the caller needing to know which it is.
- Update Order Status Advances a job through the production pipeline.
Quotes
5- List Quotes Returns quotes only, with search, status, payment, tag and date filters.
- Get Quote Returns a full quote with its line item groups, line items, sizes, imprints and fees.
- Create Quote Creates a quote for an existing contact.
- Update Quote Changes selected fields on a quote.
- Duplicate Quote Copies a quote and its pricing into a new quote.
Invoices
4- List Invoices Returns invoices only, with the same filter surface as quotes. Filtered to unpaid, this is the read a collections flow is built on.
- Get Invoice Returns a full invoice with its line item groups, line items, sizes, imprints and fees.
- Update Invoice Changes selected fields on an invoice.
- Duplicate Invoice Copies an invoice, and Printavo returns the copy as a quote. A reorder therefore restarts at the quoting stage and can be re approved before it is billed again.
Customers and Contacts
8- List Customers Returns customer companies with addresses, tax settings and primary contact.
- Get Customer Returns a single customer together with its contact list.
- Create Customer Creates a company and its required primary contact in one call.
- Update Customer Changes selected fields on a customer.
- List Contacts Returns contacts, and is the only list query with server side free text search, which makes it the right place to check for an existing person before creating one.
- Get Contact Returns a single contact with its parent customer.
- Create Contact Adds an extra contact person to a customer.
- Update Contact Changes a contact's name, emails, phone or fax.
Line Items
5- Create Line Item Group Adds a garment group to an order, optionally with its lines and imprints.
- Create Line Item Adds a garment line with per size quantities, and can consume the signed receipt returned by the pricing calculation so the saved line matches the number that was quoted.
- Update Line Item Changes price, colour, status or sizes, or moves the line to another group. Position is declared non-null, so pass the line's current position on an update that does not move it.
- Delete Line Item Removes a garment line from an order. Line items and tasks are the only deletes this connector exposes.
- Calculate Line Item Group Pricing Prices a proposed group against the account's pricing matrices without saving anything, returning a signed receipt that Create Line Item can consume. This is the vendor's own dry run, and it is what lets a flow answer what a job costs before committing it.
Tasks
6- List Tasks Returns tasks filtered by assignee, completion, due window and order status.
- Get Task Returns a single task with what it is attached to.
- Create Task Creates a task, optionally attached to a quote, invoice or customer.
- Update Task Renames, reassigns, reschedules or completes a task.
- Delete Task Removes a task.
- Apply Preset Task Group Stamps a saved production checklist onto an order, which is how a job picks up the right sequence of press and finishing steps without anyone building it by hand.
Payments
4- List Transactions Returns payments, refunds, returns, voids and disputes as a tagged union. This read runs before any payment is proposed, because an absent payment and a voided payment look the same on a balance.
- Create Payment Records an externally captured payment against an order. It writes to the money ledger and does not charge a card, so running it twice double credits the order.
- List Payment Requests Returns customer facing payment asks, filterable by status.
- Create Payment Request Requests a payment and optionally emails the customer a payment link. This reaches a real customer from the shop's own account.
Products and Merch Stores
4- Search Products Searches the garment catalogs enabled on the account.
- List Merch Stores Returns online stores with live or closed status and a sales summary.
- Get Merch Store Returns a store with its orders, filterable by fulfillment status and date.
- Get Merch Order Returns a single store order with delivery and address details.
Inquiries and Messaging
3- List Inquiries Returns inbound leads from the Printavo quote request form.
- Create Inquiry Pushes a lead captured elsewhere into the shop's inbound queue, so every channel arrives in one place.
- Send Email Message Sends an email attached to an order's message thread. This sends from the shop's Printavo account and reaches the customer, so it belongs downstream of a decision.
Frequently Asked Questions
What can FlowRunner do with Printavo?
FlowRunner agents can run Get Account, Get Current User, and List Statuses in Printavo, plus 42 more actions.
Does connecting Printavo to FlowRunner require OAuth?
No. Printavo connects to FlowRunner with an API key, no OAuth flow required.
Can Printavo trigger a FlowRunner workflow automatically?
Printavo doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Printavo
$100 in credits. No card required. Connect in minutes.