Create App Webhook Trigger
Create triggers folder
Locate the your app folder in the apps directory and add a new triggers
folder if it doesn't exist already.
Create trigger file
Create a new file within your app's trigger folder. Call it something like new-trigger.trigger.ts
. Make sure it ends with .trigger.ts
.
Add your own values. We provided mock data to help initialize the process.
-
export const newTrigger = createTrigger
- replace newTrigger with the name of your trigger.
-
Add an id:
your-new-app_trigger_new-trigger
- Make sure the id follows the format
<app-id>_trigger_<trigger-name-in-kebab-case>
- Make sure the id follows the format
-
Add a name for your trigger
-
Add a brief one sentence description
-
Add an Input Config
This is used to generate the form for the UI to configure this action.
Read more about the Input Config
-
Define the
run
function.This function will run every time the trigger polls.
The common arguments used by this function are
configValue
andconnection
.-
configValue
represents the Input Config that was used when the user configured this trigger. -
connection
is the decrypted connection properties of the connection selected by the user when configuring this trigger.If using an oauth2 connection, do not worry about handling refresh tokens, that is handled by the engine. Just make the api call assuming the access token is valid.
Use the input config values to transform, filter, or modify the
inputData
then return theinputData
within an array.All triggers must always return array values. -
-
Define the
mock
function.The
mock
function is used by users when they want to generate a mock output instead of making an real api call to their third party integration.Ouput data is used to map to other nodes in the workflow builder. This is done by clicking
Save & Test
in the configuration form. -
Define the
eventType
property.A trigger may only trigger if the event payload matches some sort of event type property. A webhook trigger like slack may send multiple different types of webhooks, but we want to filter them to a certain type of webhook.
In your
<your-app>.app.ts
app file, you will need to define averifyWebhookRequest
andparseWebhookEventType
argument in thecreateApp
function.You can look at an example of this implementation in the
slack.app.ts
file -
Define the
webhookPayloadMatchesIdentifier
methodEach webhook body payload should have some sort of identifier that you can match to the connection metadata.
Mind that we have only created one app webhook trigger at the time of writing this documentation so there may be webhook body's that won't work with this method. If you run into this, please open an issue.