Flowcall Built-in APIs
Most Custom APIs call an outside system — Shopify, Unicommerce, your ERP. But some things a flow needs already live inside Flowcall: your product catalog, your tickets, your uploaded resource tables, your connected mailbox.
The Flowcall Integration is a preset integration that points at Flowcall's own backend. Build a Custom API on it and the AI can use Flowcall's own capabilities the same way it uses any external provider — same endpoint layer, same input fields, same data points on top.
Setting it up
Add the Flowcall preset in Integrations → API Library. It's usually named Flowcall Integration. Authentication is handled by the integration itself, so you're never asked for a token or an API key — and neither is the Copilot when it drafts an endpoint on it.
The Flowcall Integration is required for resource-backed Custom APIs. If it isn't connected, the Copilot will ask you to add it before generating the draft.
What's available
| Capability | What it does |
|---|---|
| Send email | Sends a new outbound email from the mailbox connected to your account. |
| Search products | Searches your Flowcall product catalog. |
| Search tickets | Searches or counts tickets, with filters for status, customer, task, and date. |
| Resource records | Searches, inserts, updates, or upserts records in one of your resource objects. |
Each becomes an ordinary Custom API in the library, so it can be wired into a flow as a lookup or an execute action, called by another Custom API as a dependency, or run manually from the API Library.
Send an email
Sends a brand-new outbound email (not a reply) from whichever Gmail or Outlook mailbox is connected to your account.
- Recipients — one or more
toaddresses, with optionalccandbcc. - Subject — the subject line.
- Body — plain text is converted to HTML automatically; HTML is sent as-is.
- Attachments — optional file uploads (up to 10 files, 25 MB each).
The most common pattern is a fixed template with a variable part: hardcode the recipient address and subject inside the Custom API, and generate only the body from the endpoint's inputs. That keeps the flow simple — it passes the order number and the reason, and the endpoint composes the mail.
"Create an API that emails ops@ourcompany.com when a customer reports a damaged item, with the order id and the description in the body." "Add a
ccfor the warehouse address onnotify_ops_email."
Search products
Searches the product catalog Flowcall already holds for your account.
- Search text — what the customer is looking for ("black running shoes", "monstera plant").
- Page size — how many products to return; defaults to 5, capped at 50.
Results come back with the fields your catalog carries — title, description, price, image, store URL, variants, collections, and any account-specific product fields — so the AI can recommend, check availability, or assemble an order from them. You never pass a catalog or schema ID; the account's catalog is used automatically.
"Create an API that searches our product catalog by description and returns the top 3 matches."
Search and count tickets
Searches tickets in your own account, and — because the response carries a total — is just as often used to count them.
Filters:
- Statuses — one or more of
in_progress,queued,assigned,blocked,closed,marked-awaiting-response-by-agent,marked-awaiting-response-by-system,awaiting_response_to_resolve,stale,stale_marked_automatically,resolved_by_agent,resolved_by_ai. - Customer — the current conversation's customer, or a phone-number search when no customer ID is available.
- Task — one or more workflows, for "tickets on this same task" questions.
- Date window — a start and end timestamp, measured against created, resolved, executed, or assigned time.
- Paging — page and limit (max 250). When you only need the number, ask for a limit of 1 and read the total.
This is the endpoint behind repeat-contact guardrails: "has this customer already had a ticket like this resolved recently?" Relative windows like "in the last 24 hours" are computed inside the endpoint — you don't pass "24h" as a filter.
"Create an API that counts how many tickets this customer had resolved by an agent on the same task in the last 24 hours." "Create an API that lists this customer's open tickets."
Resource records
Resources are your own structured tables in Flowcall — an uploaded price list, a store directory, a warranty register. A resource-backed Custom API reads or writes those records.
Four operations are available:
| Operation | What it does |
|---|---|
| Search | Finds matching records, with filters, sorting, and paging. |
| Insert | Adds one new record. |
| Update | Changes exactly one existing record, found by record ID or by an exact field match. |
| Upsert | Updates the record matching an identifier field, or inserts it if there is none. |
Search filters support eq, contains, gt, gte, lt, lte, and between. Use contains for text, enum, and relation fields; use the comparison operators for number and date fields. Results can be sorted ascending or descending and are returned up to 100 at a time.
A few rules shape how these endpoints are built:
- One resource object per Custom API. The object is chosen when the endpoint is created and fixed inside it — it is never an input, so a flow can't point the endpoint at a different table. Build a separate endpoint per resource object.
- Only real field keys. Filters and written values must use fields that exist on that resource object, and must respect their types.
- Inputs stay flat. The endpoint takes plain values (a phone number, a pincode, a status) and maps them into filters, sort order, or the record body internally.
- Update and upsert must resolve to exactly one record. If the match finds none or several, the call returns an error rather than guessing.
"Create an API that looks up a pincode in our serviceability resource and returns the delivery days." "Create an API that adds a row to the warranty-claims resource with the order id, reason, and photo URL." "Update the store-directory resource record for store code
BLR-04with the new phone number."
If your account has several resource objects and the request is ambiguous, the Copilot asks which one to use before drafting.
For the direct HTTP request and response contract, including an order_name upsert example, see Resource Record APIs.
Good to know
- Auth is never your problem. Every one of these endpoints authenticates through the Flowcall Integration, so drafts built on it don't ask for credentials.
- They compose. A Flowcall endpoint can be a dependent API of another Custom API — for example, look up an order at your ERP, then write the outcome into a resource table, then email ops.
- Read endpoints are auto-tested. Safe read-only drafts (product search, ticket search, resource search) are run with your sample inputs as soon as they're drafted, so you see real output before saving. Writes — insert, update, upsert, send email — are never fired automatically; test those yourself from the draft card.
Related
- Custom APIs — the endpoint layer these are built on.
- Integrations → API Library — where the Flowcall Integration is added.
- Copilot → Connect External Systems — building and changing these endpoints by chatting.
- Data Points — turning an endpoint into a value or an action a flow can use.
- Tickets — what the ticket search reads.