Expedy
LogisticsDrive Expedy cloud printing and digital signage, pushing order tickets straight to a thermal printer in a kitchen, bar, or warehouse. Agents put the ticket where the work happens without a person relaying it.
What This Integration Enables
Every order that has to be read aloud, forwarded or re-typed before it reaches the person who fills it is a handoff, and handoffs are where orders go missing. Expedy removes that handoff by making a thermal printer an addressable endpoint. A flow that receives an order can put the ticket on paper at the station that will make it, in a kitchen, behind a bar or at a packing bench, with no POS terminal in the loop and no local print software to install. Ticket content is built with Expedy's own layout tags, so <C> centres a line, <BOLD> emphasises it, <QR> places a QR code, <IMG> places a logo and <CUT/> fires the auto-cutter. Paper width is a real constraint rather than a suggestion: 32 characters at 58mm and 48 at 80mm, and List Printers tells the agent which width it is dealing with before the ticket is composed.
The connector also covers the hardware around the printer. List Devices, Get Device and Ping Device inventory the Cloud Print Boxes and Raspberry Pi units in the estate and report firmware version and last ping, which turns "is the kitchen printer alive" into a scheduled check rather than a discovery. Reboot Device recovers a stuck unit without sending anyone to site. Scan USB Ports and Get USB Port Configuration find printers wired to a device by USB, which is how a warehouse label printer gets addressed through Create USB Print Job, and that action accepts a notification URL so Expedy can call a FlowRunner webhook once the job has been handled. Digital signage sits on the same account: List Displays, Set Display Resolution, Set Display Orientation and Play Media drive the screens attached to those devices. In Orchestration as a Service terms, this is the connector that lets a flow reach the physical floor, and reaching the physical floor is exactly where the honesty about what an API can promise starts to matter.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Marketplace Orders Straight to the Pass
Orders arrive from a storefront and from delivery marketplaces into different systems and formats. The agent normalises them into one ticket layout, sizes the lines against the paper width returned by List Printers, and calls Create Print Job against the printer at the station responsible. Modifiers, allergen notes and collection times print in the same place on every ticket regardless of which channel the order came from, and a <QR> code carrying the order reference goes at the foot so a packer can scan rather than re-type. The kitchen stops learning a different ticket format per channel, and nobody stands at a tablet reading orders out.
Warehouse Labels Without a Print Server
A fulfilment flow generates a shipping label as a PDF. Rather than routing it through a workstation, the agent sends it with Create USB Print Job to the label printer wired to the Cloud Print Box at the packing bench, targeting the specific USB port that Get USB Port Configuration reported after a Scan USB Ports pass. For label printers a bare PDF URL can be sent with no layout tags at all. The notification URL on the job calls back into FlowRunner when the device has handled it, so the fulfilment record carries a real completion signal rather than an assumption. Where the label originated from a Shopify order, the whole path from paid order to printed label stays inside one flow.
Watching the Estate Instead of Waiting for Complaints
A scheduled flow walks List Devices across every site, reads the last ping timestamp on each, and calls Ping Device on any unit that has gone quiet. Boxes that fail to answer raise an alert to the site manager in Slack naming the site, the device nickname and how long it has been silent, and Reboot Device is offered as the first remedy so a stuck unit is recovered without a callout. Because a reboot takes a device offline briefly, the flow schedules it outside service hours unless a person overrides that. The same pass audits signage through List Displays and reports any screen showing an unexpected resolution or power state.
Human-in-Loop Highlight
Expedy is unusually clear about what its own success response means, and that clarity is the whole design of the gate. A success from Create Print Job confirms the cloud print server accepted and queued the job. It does not confirm that paper came out. The printer may be offline, out of paper or unreachable, and the status returned by List Printers is an administrative activation flag set by Expedy rather than a live connectivity check. The endpoint also does not de-duplicate. Put those two facts together and the automatic retry, which is the correct reflex almost everywhere else, becomes the dangerous move: a job that timed out may have printed perfectly, and reprinting it puts a second identical ticket at the pass, where a duplicate ticket means the dish gets made twice and thrown away once. No retry policy can resolve that, because the information needed is not in the API. It is on a spike at the station. So the agent never silently retries an ambiguous print. It calls Ping Device to get the last contact time, then asks the floor manager on their phone: "Order [ref] ticket to [printer] returned no confirmation at [time]. Device last contacted the platform [interval] ago. Is the ticket already at the pass, or should I reprint?" That is the digital andon cord applied to a printer, and it is the one question the flow genuinely cannot answer for itself.
Agent Capabilities
13 actionsPrinting
3- Create Print Job Sends a receipt or order ticket to a cloud-connected Expedy printer. Content is built with Expedy's layout tags, including `<C>` to centre, `<BOLD>` for emphasis, `<QR>` for a QR code, `<IMG>` for a logo and `<CUT/>` to fire the auto-cutter, and lines must stay inside the paper width at 32 characters for 58mm and 48 for 80mm. A success response confirms the job was accepted and queued by the cloud print server, not that paper was produced: the printer may be offline, out of paper or unreachable. The endpoint does not de-duplicate, so guard against double printing when retrying.
- Create USB Print Job Sends content to a printer attached by USB to an Expedy device such as a Cloud Print Box or Raspberry Pi, targeting a specific USB port. Use it instead of Create Print Job when the printer is wired to a local device rather than connected to the cloud directly, which is the usual arrangement for a label printer in a warehouse. Unlike the cloud printer endpoint it accepts a notification URL, so Expedy can call back once the job has been handled, and for label printers a bare PDF URL can be sent with no layout tags.
- List Printers Retrieves every cloud printer attached to the account with its UID, human-readable name, paper width and activation state. Use it to discover printer UIDs programmatically, or to size ticket content to the right paper width before printing. The returned status is an administrative activation flag set by Expedy rather than a live connectivity check, so a test print remains the only proof a printer is genuinely reachable.
Device Fleet
6- List Devices Retrieves every Expedy device registered to the account, including Cloud Print Boxes and Raspberry Pi units, with firmware version, nickname and the timestamp of the last ping. Use it to inventory hardware across sites or to spot devices that have stopped reporting in.
- Get Device Retrieves summary information for a single device by its UID, including firmware version and last-seen timestamp. Useful for checking one unit's health before dispatching a print job or a signage change to it.
- Ping Device Checks that a device is reachable and reports when it last contacted the platform. This is the health check to run inside a monitoring flow, for example to raise an alert when a kitchen print box stops responding during service.
- Reboot Device Restarts a device remotely, which recovers a unit that has stopped printing or displaying correctly without sending someone to site. The device is unavailable for a short period while it restarts, so avoid issuing it during service hours.
- Scan USB Ports Asks a device to rescan its USB ports and detect attached printers. Run it after plugging in new hardware, then read the result with Get USB Port Configuration. Scanning is asynchronous, so allow a moment before reading the configuration back.
- Get USB Port Configuration Reads the last saved USB port configuration for a device, showing which printers are attached to which ports. This is where the USB port identifier needed by Create USB Print Job comes from.
Digital Signage
4- List Displays Retrieves every signage display attached to the account, including model, host device, HDMI port, connection state, power state, resolution and refresh rate. Use it to audit screens across sites or to find the display identifier needed by the orientation and resolution actions.
- Set Display Resolution Sets the output resolution and refresh rate of a signage display. Choose a combination from the capabilities the display reports through List Displays, since an unsupported mode may leave the screen blank until it is corrected.
- Set Display Orientation Rotates the output of a signage display. Used for screens mounted in portrait, for correcting an upside-down ceiling mount, and for switching orientation when content moves between landscape and portrait campaigns.
- Play Media Plays a media file on a signage device, targeting one HDMI output or both at once in sync. Choose whether the media plays once or loops indefinitely: looping suits ambient background content, a single play suits a scheduled announcement, and playing on both ports in sync suits paired screens showing identical content.
Frequently Asked Questions
What can FlowRunner do with Expedy?
FlowRunner agents can run Create Print Job, List Printers, and Create USB Print Job in Expedy, plus 10 more actions.
Does connecting Expedy to FlowRunner require OAuth?
No. Expedy connects to FlowRunner with an API key, no OAuth flow required.
Can Expedy trigger a FlowRunner workflow automatically?
Expedy doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Expedy
$100 in credits. No card required. Connect in minutes.