Skip to main content

Data Points

A data point is a named piece of information the AI can use during a conversation — the order status, the number of days since delivery, the customer's default address. Flows reference data points by name, either as an objective the AI works through or as passive context injected for the whole conversation (see Flows).

There are two kinds:

  • useDatafetches or derives a value the AI can read (no side effect).
  • executeActionperforms a side effect against an external system (create a ticket, cancel an order) and can expose a result.

Both live in the Data Library so they can be defined once and reused across flows. Build and change them conversationally with the Copilot.

Where a data point gets its value

Every data point has a source that says where its value comes from:

SourceWhere the value comes from
OrderThe current order — its status, fulfillment, tracking, dates, line items. Backed by your order-detail source (see Custom APIs → Source APIs).
CustomerThe customer record — contact details, address, order history.
Order listThe customer's orders, used for selecting which order the conversation is about.
Custom APIA Custom API endpoint you've configured — anything with an API.
Google SheetA row looked up in (or written to) a connected Google Sheet.
StandaloneA pure computation from values already collected — no external call.

Built-in data points

Alongside the data points you configure, Flowcall ships a small set of always-available data points. Reference them by their exact key — no setup needed. Several represent information only the customer can provide, so when you use one as an objective it must be set to ask the customer.

KeyWhat it holdsAsks the customer
customerNameThe customer's name, from customer context or the conversation.
customerPhoneThe customer's phone number.Yes
customerEmailThe customer's email address.Yes
selectedOrderNameThe order the customer selected. May also hold the informational order-source marker ECOMMERCE or OFFLINE.Yes
shopifyOrderIdThe Shopify order ID for the selected order, when available from order context.
selectedLineItemTitle (alias selectedLineItem)Title of the single order line item the customer selected.Yes
selectedLineItemsTitle (aliases selectedLineItems, selectedLineItemTitles)Comma-separated titles of one or more selected line items.Yes
imageUrlsImage URLs the customer shared in the conversation.Yes
pdfUrlThe most recent PDF/document URL the customer shared.Yes
pdfUrlsAll PDF/document URLs the customer shared, as a comma-separated list.Yes

The order- and line-item selection keys are paired with an options_data_point that supplies the list to choose from, and are usually marked required so the flow can't proceed until a concrete selection is made. Use imageUrls / pdfUrl / pdfUrls only to collect the attachment itself — to pull a value out of an image or PDF (a serial number, an address on an invoice), use a plain inferred objective instead.

Beyond these always-available keys, order and customer values — order status, delivery dates, tracking, addresses, order history — are configured data points backed by your order and customer sources. Because they read from your order-detail source, they work the same whatever system your orders live in.

Ticket context

Data points and execute actions can also read values from the current ticket without the flow having to collect them. These keys are available as inputs whenever a data point or execute action needs ticket details:

KeyWhat it holds
ticketIdThe ticket's ID.
ticketNameThe ticket's name.
ticketSummaryThe ticket's summary.
ticketResolutionThe resolution recorded on the ticket.
ticketCustomerIdThe customer the ticket belongs to.
ticketTaskIdThe flow that created the ticket.
ticketDispositionDataThe ticket's disposition field values.
ticketMoodsThe customer sentiment/mood signals on the ticket.

These aren't Data Library items and don't need to be asked for — map them into a data point or execute action's inputs when the call needs them (for example, passing ticketId to an execute action that updates the ticket in Freshdesk).

Custom-API-backed data points

When the value or action comes from a Custom API, the data point maps the flow's values into the API's inputs:

  • API input mappings — each of the API's input fields is fed by a data point or objective value collected in the conversation. For a phrase like "pass pincode to service_address_pincode," the conversation value pincode supplies the API field service_address_pincode.
  • Fixed inputs — constant values sent on every call (an account ID, a channel name).
  • Required inputs — inputs the flow must collect before the data point can run.
  • Possible values — the bounded set of values the data point can return, which conditions and transitions can branch on.

Changing an input mapping (which conversation value feeds an API field) is a change to the data point. Changing the API field itself, or how a value is formatted before it's sent, is a change to the Custom API — a distinction the Copilot is careful about.

Execute actions

An execute action is a data point that does something rather than just reading a value — update a Freshdesk ticket, cancel an order, submit a rating. It's configured like a custom-API-backed data point (input mappings, fixed inputs, required inputs), and because it changes an external system, its calls are recorded in API Logs. Execute actions can also draw on ticket context — the ticket's ID, name, summary, resolution, and more — without the flow having to collect it.

  • Flows — how objectives use data points and execute actions.
  • Custom APIs — the endpoints that back data points, and the source APIs behind built-in order data.
  • Workflows → Data Library — where data points are managed.
  • Copilot — create and change data points by chatting.
  • Testing → Mocking — mock data point values so tests stay evergreen.