@useparagon/core
Triggers
CronStep
Use CronStep
to start the workflow on a periodic schedule. Scheduler
Inputs
cron
string*
The cron expression of the schedule for this trigger, from seconds to weeks.
Example: 0 0 9 * * *
(every day at 9:00 AM)
timezone
string
The timezone to use for the cron expression, expressed as an IANA timezone string. Defaults to America/Los_Angeles
.
Example: Etc/Universal
(UTC)
Outputs
The CronStep does not produce any usable output.
EndpointStep
Use EndpointStep
to trigger this workflow via an HTTP request. Request
Inputs
allowArbitraryPayload
boolean*
If true, this Request trigger will accept any type of request.
If false, this Request trigger will require headerValidations
, bodyValidations
, and paramValidations
to be defined.
headerValidations
HeaderValidation[]
An array of validations to use on the headers for requests to this Request trigger. This can be used to validate the presence of required headers to inbound requests.
Example:
[{ key: "X-Tasklab-Id", required: true }]
bodyValidations
BodyValidation[]
An array of validations to use on body fields for requests to this Request trigger. This can be used to validate the presence or type of data in the body of inbound requests.
Example:
[{ key: "userId", dataType: "STRING", required: true }]
paramValidations
ParamValidation[]
An array of validations to use on the URL parameters for requests to this Request trigger. This can be used to validate the presence of required parameters to inbound requests.
Example:
[{ key: "query", required: true }]
Outputs
Access the output of a Request trigger with requestTrigger.output.request
. The below fields are fields of the .request
property.
headers
object
An object of the HTTP headers received in the request.
Access these properties in lowercased format, e.g. requestTrigger.output.request.headers['content-type']
.
body
any
An object or string of the HTTP body received in the request.
The body
will be an object when the Content-Type is application/json
, multipart/form-data
, or application/x-www-form-urlencoded
.
Otherwise, it will be attempted to be parsed as a string or File (see below).
params
object
An object of the URL parameters received in the request.
file
FileValue | undefined
If the HTTP body refers to a file, the file contents will be available as a FileValue
object. Otherwise, this property will resolve to undefined.
EventStep
Use EventStep
to trigger this workflow with an App Event.
Inputs
To construct an App Event Trigger, first import your App Event into the Workflow:
Then, pass this import to the constructor of EventStep
:
Because App Events can be shared across different workflows and integrations, they are required to be defined in the src/events
folder of your Paragraph project.
Outputs
Access the output of an App Event trigger with appEventTrigger.output
. The output will match the schema of the App Event that this trigger uses.
IntegrationEnabledStep
Use IntegrationEnabledStep
to trigger this workflow when a user enables the integration.
Inputs
This trigger does not use any parameters.
Outputs
The IntegrationEnabledStep does not produce any usable output.
Steps
ConditionalStep
A Conditional branching step to allow for control flow in Workflows.
Inputs
if
ConditionalInput*
The condition to evaluate for determining whether or not to proceed into the "true" or "false" branch beneath this step. Learn more about defining ConditionalInputs: Conditional logic
Outputs
selectedChoice
"Yes" | "No"
The branch that was chosen when this ConditionalStep was evaluated.
DelayStep
A step to pause the workflow for a fixed amount of time.
Inputs
value
number*
How long to pause the workflow for, measured by the unit
parameter.
unit
"SECONDS"
| "MINUTES"
| "HOURS"
| "DAYS"
The unit of time to use when delaying the workflow. Defaults to "MINUTES"
.
Outputs
The DelayStep does not produce any usable output.
FanOutStep
A step to map over a set (array) of data in parallel, for e.g. data transformation or batch uploads.
Inputs
iterator
any[]
A set of data to iterate over in the Fan Out.
Outputs
Access one instance of a Fan Out step with fanOutStep.output.instance
. This can only be used by steps that are in this Fan Out's branch (see: Fan out branches).
instance
any
An item of the iterator
property that is being processed in this branch.
FunctionStep
A JavaScript function step.
Inputs
code
Function*
The function to run.
This function must have the signature
function(parameters, libraries)
and must be self-contained, meaning that it cannot reference JavaScript values outside of the function body.
To pass execution data through this step, use the parameters
object.
The list of libraries
can be found in: JavaScript Libraries
parameters
object*
Parameters from other step outputs to inject into the function.
Outputs
Access the result of an Function step with functionStep.output.result
.
result
any
The return result of code
after evaluation with parameters
.
Note: if code
returns a Promise
, the Function step will automatically await this Promise and return the unwrapped result.
IntegrationRequestStep
A step to send a custom request to the integration's API, without needing to provide auth details.
Inputs
method
"GET"
| "POST"
| "PATCH"
| "PUT"
| "DELETE"
*
The HTTP method to use for this API request.
If you select POST
, PUT
, or PATCH
methods, the body
and bodyType
parameters will be required.
url
string*
The relative path of the API request, with respect to the base URL provided by the integration. Specifying a full URL is also supported.
bodyType
"json"
| "form-data"
| "x-www-form-urlencoded"
| "xml"
| "raw"
Select the type of request body that should be sent.
Paragon will automatically encode the payload and set the correct Content-Type
headers.
body
object | string | (pageToken: string) => object | string)
An object or string representing the request body to be sent. If using Request Step Pagination, you can specify a function that returns the body of the request with respect to the Page Token.
headers
object | (pageToken: string) => object
An object of the HTTP headers sent in the request. Integration Request Steps will automatically include the user's authentication details for the request.
params
object | (pageToken: string) => object
An object of the URL parameters sent in the request. Parameters can be specified in either here or the url
property.
pagination
(step) => PaginationOptions
If using Request Step Pagination, you can define the options used in this function.
Use the step
parameter of the pagination
function to access the output in
Example:
Outputs
Access the output of an Integration Request step with requestStep.output.response
.
headers
object
An object of the HTTP headers received in the response.
body
any
An object or string of the HTTP body received in the response.
statusCode
number
The HTTP status code of the response.
RequestStep
A step to send an HTTP request from a workflow.
Inputs
method
"GET"
| "POST"
| "PATCH"
| "PUT"
| "DELETE"
*
The HTTP method to use for this API request.
If you select POST
, PUT
, or PATCH
methods, the body
and bodyType
parameters will be required.
url
string*
The full URL of the HTTP request to send.
bodyType
"json"
| "form-data"
| "x-www-form-urlencoded"
| "xml"
| "raw"
Select the type of request body that should be sent.
Paragon will automatically encode the payload and set the correct Content-Type
headers.
body
object | string
An object or string representing the request body to be sent.
headers
object
An object of the HTTP headers sent in the request.
params
object
An object of the URL parameters sent in the request. Parameters can be specified in either here or the url
property.
authorization
AuthorizationConfig
Choose between Basic authentication, Bearer token authentication, and OAuth 2.0 Client Credentials for handling the authorization of this request. Example:
Outputs
Access the output of a Request step with requestStep.output.response
.
headers
object
An object of the HTTP headers received in the response.
body
any
An object or string of the HTTP body received in the response.
statusCode
number
The HTTP status code of the response.
ResponseStep
A step (for use in Request-triggered workflows only) to send an HTTP response from a workflow.
Inputs
responseType
"JSON" | "FILE"
*
The type of Response to send to the HTTP Request that triggered the workflow. Choose between a JSON-encoded response or a raw File type.
body
object | FileValue
*
If using a JSON responseType
, provide an object to send in the response.
If using a File responseType
, provide a FileValue
to send in the respnose.
statusCode
number
*
The status code to send in the Response to the HTTP Request that triggered the workflow.
Last updated