Print orders automatically with Zapier, Make or n8n: no code

If your platform has no print connector, an automation tool bridges the gap in fifteen minutes. Here is the setup, and where each tool starts to cost you.

Not every platform has a print connector, and not every team has a developer available this week. Airtable, Typeform, Stripe, HubSpot, a custom form, a Google Sheet: if the tool can fire a webhook or be polled by an automation platform, it can print.

The short answer: the automation tool watches for a new order, formats the ticket text, and makes an HTTP POST to the print endpoint. That is one trigger and one action. No server, no code, no computer in the shop.

Which tool

Zapier Make n8n
Setup Easiest Visual, more control Most control
Pricing model Per task Per operation Free if self-hosted
Multi-step logic Paid tiers Native Native
Self-hosting No No Yes
Best for Getting it working today Branching and formatting Volume, or data that must stay in-house

All three connect to Expedy Print: Zapier, Make and n8n.

The setup, in three steps

1. The trigger. New order, new row, new form submission, new payment: whatever your source produces. Prefer a webhook trigger over polling: polling adds minutes of delay and consumes tasks even when nothing happens.

2. Format the ticket. This is the step people underestimate. Thermal tickets are around 42 characters per line on 80 mm paper, and the printer will not lay out your data for you. Build the text explicitly:

ORDER {{order_number}}
{{date}}
--------------------------------
{{line_items}}
--------------------------------
TOTAL: {{total}} {{currency}}

In Zapier this is a Formatter step; in Make a text aggregator; in n8n a Set or Code node.

3. The HTTP action. A POST to the print endpoint:

  • URL: https://www.expedy.fr/api/v2/printers/{printer_uid}/print
  • Method: POST
  • Headers: Authorization: API_SID:API_TOKEN and Content-Type: application/json
  • Body: {"printer_msg": "<your formatted text>", "origin": "zapier"}

Test it with a static string first. Once a ticket comes out, wire the real fields in.

What to watch

Line items are the hard part. Most triggers deliver line items as an array, and most automation tools flatten arrays awkwardly. Use the tool's loop or line-item support rather than dumping the raw array into the text: otherwise you print a JSON fragment.

Duplicates. Automation platforms retry failed steps. Put a stable value such as the order id into origin so you can spot a duplicate in the print history, and prefer webhook triggers, which fire once, over polling triggers that can re-read the same row.

Newlines. printer_msg uses \n for line breaks. Some formatter steps convert them to literal \n text; check the test output rather than assuming.

Cost at volume. Every order is a task or an operation. At a few dozen orders a day this is negligible; at a few thousand it becomes the most expensive part of the chain, and a direct API call from your backend (or self-hosted n8n) is dramatically cheaper.

Latency. Add a few seconds for the automation platform to pick up and run the scenario. Fine for a warehouse, sometimes too slow for a kitchen at peak service. If sub-second matters, call the API directly.

When to graduate to a direct call

The automation route is the right choice for getting a workflow live quickly, for platforms with no connector, and for anything with conditional routing that a non-developer maintains. Move to a direct API call when volume makes per-task pricing hurt, when latency matters, or when the formatting logic has grown past what a visual editor holds comfortably. The endpoint is the same, so the migration is only about moving the call.

Create a free account, grab the credentials, and print a test ticket from a single-step scenario before building the whole flow.

FAQ

Can I print orders without writing any code?

Yes. Zapier, Make and n8n can watch for a new order and POST it to the print endpoint. It is one trigger and one HTTP action, typically fifteen minutes of setup.

Which of Zapier, Make or n8n should I use?

Zapier to get something working fastest, Make when you need branching and formatting control, n8n when volume makes per-task pricing painful or the data must stay on your own infrastructure.

Why does my ticket print as raw JSON?

Because the line items arrived as an array and were inserted directly into the text. Use the tool's loop or line-item handling to build one line per product instead of dumping the array.

Is automation slower than calling the API directly?

Yes, by a few seconds while the platform picks up and runs the scenario. That is irrelevant for a warehouse and can be too slow for a kitchen at peak service.

Does it cost more at high volume?

Every order consumes a task or operation, so cost grows linearly. At a few thousand orders a day a direct API call from your backend, or a self-hosted n8n, is substantially cheaper.