A Flow is a structured sequence of questions and end actions. End actions are executed at the conclusion of the flow, such as sending an SMS or email, or making an API call. Within a flow, you can create scenarios and assign points to possible answers. These points help determine the appropriate course of action when the flow reaches a specific point. Assigning points is optional, but it allows for more granular decision-making based on user responses.
Returns all Flows for the Partner based on their API KEY
| apiKey required | string |
{- "apiKey": "your_api_key"
}{- "errorMsg": "string",
- "success": true,
- "flows": [
- {
- "flowId": "string",
- "name": "string",
- "description": "string",
- "status": "Active",
- "language": "string"
}
]
}Sets a callback URL to call with POST method after the event has run and send data back in JSON. More on callbacks part.
| apiKey required | string |
| flowId required | string |
| endActionURL required | string |
{- "apiKey": "your_api_key",
- "flowId": "flow_id",
}{- "flowId": "string",
- "success": true,
- "errorMsg": "string"
}{- "eventId": "string",
- "originalEventId": "string",
- "client": {
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phoneNumber": "string"
}, - "status": "Active",
- "flowId": "string"
}An Event triggers the execution of a flow by specifying a client and a scheduled time. Events can be configured to run the flow either once or on a recurring basis—daily, weekly, yearly, or at any other interval. This allows you to automate the flow's execution according to your desired schedule.
Set Event
| apiKey required | string |
| flowId required | string |
required | object |
| date required | string <date-time> ISO 8601 standard |
| repeatCount required | integer Default: 0 How many times should repeat based on repeatType |
| isInfinite required | boolean Default: false If true, it will repeat this event based on the repeatType until it is turned off. |
| repeatType required | string Enum: "Daily" "Weekly" "Monthly" "Yearly" |
{- "apiKey": "your_api_key",
- "flowId": "flow_id",
- "client": {
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "phoneNumber": "+36301111111"
}, - "date": "2024-05-22T13:12:01.470Z",
- "repeatCount": 0,
- "isInfinite": false,
- "repeatType": "Daily"
}{- "eventId": "string",
- "success": true,
- "errorMsg": "string"
}Returns the status of an event and, if the status is "Completed", returns the questions and answers too
| apiKey required | string |
| eventId required | string |
{- "apiKey": "your_api_key",
- "eventId": "event_id"
}{- "success": true,
- "errorMsg": "string",
- "status": "Active",
- "eventId": "string",
- "answers": [
- {
- "questionId": "string",
- "question": "string",
- "answer": 0
}
]
}Dynamic Calls let you trigger a fully customisable outbound voice call without setting up a Flow.
You supply a template ID and a set of variables; the system renders the text, converts it to speech, and places the call.
Results are delivered asynchronously to your webhookUrl.
Returns all available voice templates for the company associated with the provided API key. Only returns the template name, text, and required variable keys.
| apiKey required | string |
{- "apiKey": "your_api_key"
}{- "success": true,
- "templates": [
- {
- "_id": "64f1a2b3c4d5e6f7a8b9c0d1",
- "name": "Appointment Reminder",
- "templateText": "Hello {{patientName}}, your appointment is on {{appointmentDate}}.",
- "requiredValueKeys": [
- "patientName",
- "appointmentDate"
]
}
]
}Triggers an outbound call to the specified phone number using a pre-configured voice template. The template text is rendered with the provided variables and converted to speech before calling.
If a webhookUrl is provided, the system will POST the call result to that URL once the call ends.
No webhook is sent while the call is still in progress.
Concurrency limit: Maximum of 3 simultaneous calls per account. Requests exceeding this limit will be rejected until a slot becomes available.
Webhook timing:
busy, no-answer, or failed calls: webhook fires immediately after the status is received.completed calls: webhook fires after the recording is uploaded to storage (a few seconds after the call ends).| apiKey required | string Your company API key (accessToken from your FMP account). |
| templateId required | string ID of the voice template to use. Must belong to the company associated with the apiKey. |
| phoneNumber required | string Destination phone number in E.164 format. |
| userId required | string Your internal user or patient identifier. Stored as-is and returned in the webhook. |
object Key-value pairs to fill in the template's dynamic placeholders. Required keys depend on the template. | |
| webhookUrl | string Optional URL to receive a POST notification when the call ends. |
{- "apiKey": "your_api_key",
- "templateId": "64f1a2b3c4d5e6f7a8b9c0d1",
- "phoneNumber": "+36201234567",
- "userId": "patient-abc-123",
- "variables": {
- "patientName": "John Doe",
- "appointmentDate": "March 10 at 2pm"
},
}{- "success": true,
- "eventId": "64f1a2b3c4d5e6f7a8b9c0d2",
- "message": "Call initiated"
}{- "status": "completed",
- "recordingUrl": "string",
- "userId": "string",
- "templateId": "string",
- "callDuration": 0
}