Using triggers
Discovering triggers
The Get triggers endpoint will return all of the triggers that you have access to:
The response includes:
-
trigger name
-
trigger version
These can then be used with the Get trigger operations endpoint to list the available operations within a particular trigger.
So if your organization has access to Calendly and Typeform you would see the following:
{
"elements": [
{
"name": "calendly-trigger",
"version": "3.0",
"title": "Calendly",
"description": "Calendly helps you schedule meetings without the back-and-forth emails.",
"service": {
"id": "8e1e2aa9-877b-4710-9acb-5c8ff9dd8059",
"name": "calendly",
"version": 2
}
},
{
"name": "typeform-trigger",
"version": "4.1",
"title": "Typeform",
"description": "Typeform is an online software as a service company that specializes in online form building and online surveys.",
"service": {
"id": "668f2ac5-2b44-41c5-a751-4a9773982c3e",
"name": "typeform",
"version": 3
}
}
]
}
Discovering operations
The operations available within a trigger can be identified using the Get trigger operations endpoint.
So for Calendly the URL would be:
https://api.tray.io/core/v1/triggers/calendly-trigger/versions/3.0/operations
In the following sample response for Calendly, we have shown only the input schema for the webhook operation.
{
"elements": [
{
"name": "webhook",
"title": "Webhook",
"description": "Receive Calendly appointment data in real-time. (Invitee Created Event & Invitee Canceled Events)",
"inputSchema": {
"type": "object",
"properties": {
"events": {
"type": "array",
"description": "List of user events to subscribe to.",
"title": "Events",
"items": {
"type": "string",
"enum": [
{
"text": "Invitee Created Events",
"value": "invitee.created"
},
{
"text": "Invitee Canceled Events",
"value": "invitee.canceled"
}
],
"description": "Event to subscribe to.",
"title": "Item"
},
"additionalItems": true
},
"scope": {
"type": "string",
"enum": [
{
"text": "Organization",
"value": "organization"
},
{
"text": "User",
"value": "user"
}
],
"default": "organization",
"description": "Indicates if the webhook subscription scope will be 'Organization' or 'User'.",
"title": "Scope"
},
"organization_uri": {
"type": "string",
"title": "Organization URI",
"description": "The unique reference to the organization that the webhook will be tied to."
},
"user_uri": {
"type": "string",
"title": "User URI",
"description": "The unique reference to the user that the webhook will be tied to. Required if 'Scope' is set to 'User'."
},
"public_url": {
"type": "string",
"default_jsonpath": "$.env.public_url",
"title": "Public URL"
}
},
"required": [
"events",
"scope",
"organization_uri",
"public_url"
],
"advanced": [
"public_url"
],
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false
},
"authScopes": []
}
]
}
The Trigger details (name and version) and operation deatils (name, inputSchema) are essential in forming the request payload for Create Subscription call.