Instant triggers (scheduled)

An instant trigger is a webhook, starting a scenario whenever new data arrives.

Your app should implement a fully functional instant trigger as a Watch module, even if an API might have endpoints like Get a webhook, List webhooks, or Update a webhook.

Connect metadata

Always save the metadata in the connection if

  • the endpoint that can obtain authenticated user’s information is available, and

  • the information provided is able to distinguish the connection.

When naming your connection, provide as much information as possible. This provides better identification on the connection page. The following information is suggested:

  • Name

  • Email

  • User ID

  • Organization / Company / Location / Tenant

Example - Constant Contact

{
	"info": {
		"url": "https://api.cc.email/v3/account/summary",
		"method": "GET",
		"headers": {
			"authorization": "Bearer {{connection.accessToken}}"
		},
		"response": {
			"error": {
				"message": "[{{statusCode}}]\n{{parseError(body)}}"
			},
			"uid": "{{body.encoded_account_id}}",
			"metadata": {
				"type": "text",
				"value": "{{body.contact_email}}"
			}
		},
		"log": {
			"sanitize": ["request.headers.authorization"]
		}
	}
}

UID

Always save the UID in the connection if the service supports a single webhook URL per app (a shared webhook). The saved UID must match the ID that is included in the incoming webhook payload.

Example - Highlevel OAuth 2.0

{
	"url": "https://services.leadconnectorhq.com/locations/{{connection.locationId}}",
	"method": "GET",
	"headers": {
		"Authorization": "Bearer {{connection.accessToken}}",
		"Version": "2021-07-28"
	},
	"response": {
		"uid": "{{connection.locationId}}",
		"metadata": {
			"type": "text",
			"value": "Location: {{body.location.name}}"
		}
	},
	"log": {
		"sanitize": [ "request.headers.authorization" ]
	}
}

Last updated