Execute Action APIs
Use the execute action API to run an execute action from your Data Library, such as creating a return, cancelling an order, or updating a record in an external system. Flowcall runs it the same way it does inside a workflow.
The call runs the action once and returns its result. To run the same action for many rows, use Bulk Execute in the dashboard.
Authentication
Create an access token from Settings -> Integrations in the Flowcall dashboard.
Pass the token as a Bearer token in every request:
Authorization: Bearer <your_access_token>
The access token determines the Flowcall account. The execute action must belong to that account.
Only access tokens and account admins can call this API. Requests from other dashboard users return 403.
Execute actions change data in external systems. Keep the token on your server, and make sure your system does not call the API twice for the same operation.
Run an execute action
POST https://api.flowcall.co/apis/workflow-config-library/execute-action/run
Rate limits
| Window | Limit |
|---|---|
| Per hour | 30 requests |
The limit is shared by all callers in the account. Requests over the limit return 429 with Retry-After, X-RateLimit-Limit, and X-RateLimit-Remaining headers.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
workflowConfigLibraryId | string | One of | ID of the execute action in the Data Library. |
executeActionKey | string | One of | Key of the execute action. Use it instead of workflowConfigLibraryId. |
inputs | object | No | Input values keyed by the action's input names. Required inputs must be included. |
Send either workflowConfigLibraryId or executeActionKey. If you send both, Flowcall uses workflowConfigLibraryId.
To find the ID, key, and input names, open Data Library -> Execute Actions in the dashboard and click API on the action. It shows a ready-to-use curl command for that action.
Input values
Flowcall converts each input using the field type set in Configure for the action:
| Field type | Accepted values |
|---|---|
string | Any value. It is converted to text and trimmed. |
number | A number, or text that parses as a number. |
boolean | true/false, "yes"/"no", or "1"/"0". |
enum | One of the options configured for the field. |
date | A date in yyyy-mm-dd format. |
Fixed inputs configured on the action are always applied and override any value you send for the same input.
Example request
curl -X POST https://api.flowcall.co/apis/workflow-config-library/execute-action/run \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"workflowConfigLibraryId": "3f1c2a9e-6b7d-4c1e-9a55-2d0e8f4b7c61",
"inputs": {
"order_name": "#ORDER-123",
"reason": "damaged_product",
"pickup_date": "2026-09-25"
}
}'
Success response
result is the value returned by the action's output function. Its shape depends on the action.
{
"success": true,
"workflowConfigLibraryId": "3f1c2a9e-6b7d-4c1e-9a55-2d0e8f4b7c61",
"executeActionKey": "create_return_request",
"result": "Return created with ID RET-98765"
}
Errors
| Status | When |
|---|---|
400 | Neither identifier was sent, inputs is not an object, or an input is missing or has the wrong type. |
401 | The Bearer token is missing or invalid. |
403 | The caller is not an account admin or an access token. |
404 | No execute action with that ID or key exists in the account. |
422 | The action ran but failed, for example because the external API returned an error. |
429 | More than 30 requests in the last hour for the account. |
500 | An unexpected server error. |
An input validation error lists every problem in errors:
{
"success": false,
"error": "order_name is required; pickup_date must be a valid yyyy-mm-dd date",
"errors": ["order_name is required", "pickup_date must be a valid yyyy-mm-dd date"]
}
A failed run returns the reason in error:
{
"success": false,
"error": "Failed to execute action API"
}
Custom API calls made by the action are recorded in API Logs, whether they succeed or fail.