The different Fastcall Subscriber API “actions” are provided as Salesforce Invocable Actions. Thus these can be invoked through the following means:
- Apex code
- Salesforce Flows
- Salesforce’s REST API
Apex
In Apex you interact with the Fastcall Subscriber API by constructing instances of the native Invocable.Action
class. The set of invocation parameters is unique to each action. The action to invoke is determined by the invocable action name when using the createCustomAction(...)
method, e.g. SubscriberUserStatusInvocable.
Throws
FastCall.SubscriberAPI.APIException
– If an error occurs, an instance ofAPIException
is thrown, so you should catch & handle this exception type for a correct implementation.
Example
Invocable.Action action = Invocable.Action.createCustomAction('apex', 'FastCall', 'SubscriberUserStatusInvocable'); action.setInvocationParameter('userId', '005xxxxxxxxxxxxxxx'); action.setInvocationParameter('statusType', 'Available'); List<Invocable.Action.Result> results = action.invoke(); if (results.size() > 0 && results[0].isSuccess()) { System.debug('Result is: ' + results[0]); }
Salesforce Flows
The Flow definition bellow will send an SMS message to new Lead records.

Fastcall API actions will be available on the Flow editor.

You can then populate the action’s parameters with data from Salesforce records and the flow’s execution context.

REST API
Salesforce methods annotated as @InvocableMethods are also made available via the Salesforce REST API under a URL with the following format:
/services/data/vXX.X/actions/custom/apex/invocableName
After authenticating and authorizing access in Salesforce, you can make an HTTP POST request to the Fastcall action endpoint, passing the parameters in the HTTP request’s body formatted as JSON. This means you can initiate calls and send SMS/MMS messages using Fastcall, from any external system capable of interacting with the Salesforce REST API, including:
- Browser-based Javascript apps
- Any external application, written in any language and running on any platform, as long as it’s capable of authenticating & authorizing via OAuth 2.0 flows, and sending HTTP POST requests with a JSON payload on the HTTP request body
These messages and calls will be logged & updated in real-time in the Salesforce org, and associated with the proper record in Salesforce (i.e. a Lead, Contact, or any other standard or custom object record).
Example
The HTTP request below would start a call to a random phone number.
HTTP POST /services/data/v48.0/actions/custom/apex/FastCall__SubscriberCallInvocable HTTP Body { "inputs" : [ { "toPhone" : "+15553334444", "ivrId" : "a0M0t00000CQT8kEAH" } ] }