FlowRunner
PricingContact
Theme
Start Free

Orderry

ERP

Connect AI agents to Orderry, a business management platform for repair shops and field service. Agents open orders and estimates, take bookings and inquiries, raise invoices and transactions, and read the product and service catalog a job draws on.

33 actions API key available
A scheduled run calls Get Orders for jobs that reached their completed status
Get Order and Get Order Items read the job, its parts and its labor lines
Get Order Public Page URL produces the customer-facing link for the finished job
Create Invoice raises the invoice against the completed order
The customer receives the order status and the public page link by text message
Get Finance Accounts is read, and the payments with no matching visible account are reported rather than posted
A person confirms the account and amount before Create Transaction posts a payment nothing here can reverse

What This Integration Enables

Orderry runs repair shops, field service teams, auto services and salons, businesses where the same job is a lead, a quote, a work order, a parts list, an invoice and a payment, and where all six live inside one week. The same platform ships under the RO App brand, formerly RemOnline, and this connector serves both: a Product config item picks the API host and everything else is identical. What this integration is actually for is closing the loop between the shop floor and everything around it, because the failure mode in a service business is not that the platform lacks a field, it is that the job progresses and nothing outside the platform finds out.

Agents work the whole cycle. Inquiries capture the lead through Get Inquiries, Create Inquiry and Update Inquiry Status. Estimates quote it through Get Estimates, Create Estimate and Change Estimate Status, and Create Estimate takes order_type_id rather than an estimate specific field name, which is the vendor's own naming and is reproduced verbatim so the call succeeds. Orders carry the work through Get Orders, Get Order, Create Order, Update Order and Update Order Status, with Get Order Items and Add Order Item for the parts and labor lines and Create Order Comment for the running narrative. Get Order Public Page URL returns the shareable customer facing page for a job, which is the single most underrated action here, because it turns a status change into something you can send someone. Bookings are covered through Get Bookings and Create Booking, people and organisations through Get People, Create Person, Update Person, Get Organizations and Create Organization. Invoices are raised and progressed through Get Invoices, Create Invoice and Update Invoice Status, and finance is real: Get Finance Accounts and Get Account Transactions read the accounts and their movements, and Create Transaction posts cash and card payments into them.

The catalog is read only, and it is worth being exact about that. Get Products and Get Services search the catalog, and there is no create, update or delete for a product or a service in this connector. So this integration does not maintain a parts catalog. It reads one, which is the right shape for resolving a part reference before it is added to an order through Add Order Item, and the wrong shape if you were hoping to sync a supplier price list into Orderry from here. Note also that catalog searches and the reference lists expose no page parameter and return their full result set, while ordinary list endpoints return 50 records per page with page and a count in the envelope.

On events, be plain about the distinction. This connector ships no triggers. Orderry does publish a documented webhook catalog covering tasks, inquiries, bookings, orders, estimates, sales, clients, invoices, comments, attachments and logins, with a documented JSON payload, so the events exist. But subscriptions are created only through the web app under Settings, then API, and the public API exposes no subscription endpoint at all, with /v2/webhooks returning 404. There is therefore no action here that registers one and nothing that creates a FlowRunner trigger. If you want those events today, you register a FlowRunner callback endpoint of your choosing by hand in the Orderry web app, which is a configuration you make in Orderry rather than a capability of this connector. Otherwise change detection is a scheduled poll of Get Orders, Get Invoices or Get Inquiries with the date range filters, which every action exposes as a From and a To parameter and assembles into the one or two element ISO 8601 array the API expects. Two more details decide whether writes land: order, estimate, inquiry and invoice statuses are configured per account and each order or estimate type carries its own status set, so a status ID from one type is rejected on a document of another type and should be read from the status dictionaries rather than hardcoded. And Add Order Item requires entity_id, assignee_id, quantity, price, cost, a discount object and a warranty object, with the connector always sending the discount and warranty objects using the vendor's documented defaults when you leave them empty.

Without FlowRunner

Inquiries live in whichever channel they arrived in A request in a chat thread, a form and a phone call, and only some of them become jobs
Customers ask where their job is Status updates happen when somebody has a minute, so the shop takes the call instead
Payments are reconciled at the end of the week Cash and card takings are matched to orders later, from memory and receipts

With FlowRunner

Inquiries become records at the point of arrival Create Inquiry logs the lead against the right location, and Create Order opens the job once it qualifies
Status changes reach the customer Update Order Status is followed by Get Order Public Page URL and a message with the link
Payments post against the order they settle Create Transaction records the payment on a named finance account, linked to the order or sale

Use Case Scenarios

A shared inbox that turns into a qualified job

Customer requests land in a shared channel and a website form, and the ones that become jobs are the ones somebody re-typed. The agent watches a support channel in Slack and a web form, extracts the customer, the device or vehicle and the described fault, then calls Get People and Get Organizations to check whether the customer already exists, creating them with Create Person or Create Organization only when they do not. It calls Create Inquiry to log the lead against the right location, resolved through Get Locations rather than assumed. When the inquiry qualifies, the flow calls Create Estimate, using order_type_id as the vendor's schema requires, and Change Estimate Status as the quote is sent and accepted. On acceptance it calls Create Order to open the job, and Create Order Comment to record where the request came from. Nothing that arrived is lost, and nothing that has not qualified becomes a work order.

Status changes the customer hears about first

The most expensive call a repair shop takes is the one asking whether a job is ready. When a technician moves a job forward, the agent calls Update Order Status with a status ID read from the status dictionary for that order type, because a status ID from another type is rejected outright. It then calls Get Order Public Page URL to produce the shareable page for that job, and sends the customer a message through Twilio with the new status and the link, so the answer to "is it ready" is a page rather than a phone call. When the job reaches its completed status, the same flow calls Get Order Items to read the parts and labor lines, Create Invoice to raise the invoice against the completed order, and posts the invoice to the customer. Get Employees resolves which technician closed the job so the notification names a person.

A daily view of jobs, cash and workload

Owners of service businesses want three numbers each morning: what came in, what went out and what is owed. On a nightly schedule the agent calls Get Orders with a From and To date range for the day's activity, paging through 50 records at a time and reading count from the envelope for the total, then Get Invoices with a past Due To date to find what is overdue, and Get Account Transactions per account from Get Finance Accounts to read the day's movements. Get Employees turns the order list into a workload picture by technician. The consolidated view is appended to Google Sheets for the running tracker, and a short summary goes to the owner, naming overdue invoices with the customer and the days past due so chasing has a list rather than a feeling. This run writes nothing, which is what makes it safe to schedule unattended.

Human-in-Loop Highlight

Create Transaction is the gate, and the reason is not just that it moves money. It is that the connector cannot see the whole board it is being asked to decide on. The Orderry API key is personal to one employee and inherits that employee's permissions, so if the employee cannot see a location or a warehouse, neither can the integration. An agent reconciling payments therefore reads the finance accounts that one person can see, which may be a subset of the accounts the business runs, and Get Finance Accounts will return that subset without any indication that it is one. A payment that belongs in a location's till account gets posted to the account the key can reach, and the books balance to a number that is wrong in a way no error surfaces. Sitting next to that is the reversal question. The finance surface here is Get Finance Accounts, Get Account Transactions and Create Transaction. There is no update and no delete for a transaction, so a payment posted to the wrong account is corrected by a person inside Orderry, and until they do it two reports disagree. And the linking is real: a transaction is posted against the order or sale it settles, so a misrouted payment also detaches from the job it was supposed to close. So the agent reconciles, proves what it can and stops on the rest. It posts to the shop owner: "31 payments received through the card terminal export for yesterday. 26 match an Orderry order by amount and reference, and I will post those to the account they came from. 5 need you. 2 are for orders at the Riverside location, and Get Finance Accounts under this API key returns 4 accounts with none of them named for Riverside, so the key's employee may not have access there and I would be posting them to the wrong till. 1 is a part payment of 340 against an invoice of 900, so it settles nothing on its own. 2 have no matching order at all and may be walk-in sales. I cannot update or delete a transaction once posted. Confirm the 26, and tell me which account the Riverside pair belongs in, or give me a key with access to it." The owner answers once. This is the human-in-the-loop moment on a service business's books: an agent can match a payment to a job with more patience than any human will spend on it, and only a person can confirm that the accounts it can see are all the accounts there are.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

33 actions

Company

3
  • Get Company Information Returns the company record for the connected account. A lightweight check that the key and the Product host match before a flow runs.
  • Get Locations Returns the locations on the account. Resolves a location to a real record before an inquiry or order is created against one, and note that the key's employee may not see every location.
  • Get Employees Returns employees, used to resolve an assignee for an order line or to name the technician in a customer notification.

Orders

9
  • Get Orders Returns orders with filters including a date range expressed as a From and a To parameter. Returns 50 records per page with `page` and a `count` in the envelope. The scheduled poll that stands in for the events this connector does not receive.
  • Get Order Returns a single order with its full detail.
  • Create Order Opens a work order, the record the whole job hangs from.
  • Update Order Updates an existing order. Custom field values are sent as a JSON string keyed by field ID, and the action serializes an object for you.
  • Update Order Status Moves an order to a new status. Statuses are configured per account and each order type carries its own status set, so read the current ID from the status dictionary rather than hardcoding it: an ID from another type is rejected.
  • Get Order Items Returns the parts and labor lines on an order. This nested collection returns a bare JSON array with no envelope.
  • Add Order Item Adds a part or labor line to an order. Requires `entity_id`, `assignee_id`, `quantity`, `price`, `cost`, a discount object and a warranty object, and the action always sends the discount and warranty objects using the vendor's documented defaults when you leave them empty.
  • Create Order Comment Adds a comment to an order, which is where the origin of a job or a decision made on the phone should be recorded.
  • Get Order Public Page URL Returns the shareable customer facing page for an order. The action that turns a status change into something you can send a customer.

Estimates

3
  • Get Estimates Returns estimates with filtering, using `client_ids` in its filter set, which differs from the inquiry and booking filters.
  • Create Estimate Creates an estimate. It takes `order_type_id` rather than an estimate specific field name, which is the vendor's own naming reproduced verbatim.
  • Change Estimate Status Moves an estimate through its status set, for example sent then accepted. Status IDs are per account and per type.

Inquiries

3
  • Get Inquiries Returns inquiries with filtering. Note that inquiry and booking filters use `clients_ids` while order and estimate filters use `client_ids`, a vendor inconsistency reproduced so the calls succeed.
  • Create Inquiry Logs a lead against a location, which is the right first record for a request that has not yet qualified into a job.
  • Update Inquiry Status Moves an inquiry through its status set as it is qualified or dropped.

Bookings

2
  • Get Bookings Returns bookings with filtering.
  • Create Booking Books an appointment, for example a drop-off slot or a scheduled site visit.

Contacts

5
  • Get People Returns individual customers, with the filter set declared as query parameters.
  • Create Person Creates an individual customer record.
  • Update Person Updates an existing individual customer record.
  • Get Organizations Returns organisation customers. The vendor spec declares this route's filters as a request body, which is a documentation error, and this connector sends them as query parameters like its sibling route.
  • Create Organization Creates an organisation customer record.

Catalog

2
  • Get Products Searches the product catalog. Read only, and it exposes no `page` parameter, returning the full result set. Used to resolve a part before Add Order Item, not to maintain the catalog.
  • Get Services Searches the service catalog. Read only, with the same full result set behaviour. Nothing in this connector creates, updates or deletes a product or a service.

Invoices

3
  • Get Invoices Returns invoices with a date range filter, including a past Due To date for finding what is overdue.
  • Create Invoice Raises an invoice, typically against an order that reached its completed status. Note that this route sends `payment_method` while the update route uses `payment_type`, a vendor inconsistency the connector reproduces.
  • Update Invoice Status Moves an invoice through its status set.

Finance

3
  • Get Finance Accounts Returns the finance accounts the key's employee can see. That last clause is the point: this may be a subset of the accounts the business runs, and the response does not say so.
  • Get Account Transactions Returns the movements on a finance account, the read behind any daily cash reconciliation.
  • Create Transaction Posts a cash or card transaction to a finance account, linked to the order or sale it settles. There is no update and no delete for a transaction in this connector, so this runs behind an approval.

Frequently Asked Questions

What can FlowRunner do with Orderry?

FlowRunner agents can run Get Company Information, Get Locations, and Get Employees in Orderry, plus 30 more actions.

Does connecting Orderry to FlowRunner require OAuth?

No. Orderry connects to FlowRunner with an API key, no OAuth flow required.

Can Orderry trigger a FlowRunner workflow automatically?

Orderry doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Orderry

$100 in credits. No card required. Connect in minutes.