Deel Contracts ContractTrigger

Deel Contracts ContractTrigger

Certified

Contract Trigger

Poll the Contracts endpoint and trigger on created, signed and terminated contracts. State (watermark and last-seen statuses) is persisted in the KV store so polls do not repeat events. Deel exposes no single canonical signed or terminated status, so the matching status sets are configurable.

yaml
type: io.kestra.plugin.deel.contracts.ContractTrigger

Trigger on contract lifecycle events

yaml
id: contract_events
namespace: company.team
tasks:
  - id: log
    type: io.kestra.plugin.core.log.Log
    message: "{{ trigger.event }}: {{ trigger.contract.title }} ({{ trigger.contract.status }})"
triggers:
  - id: watch_contracts
    type: io.kestra.plugin.deel.contracts.ContractTrigger
    apiToken: "{{ secret('DEEL_API_TOKEN') }}"
    interval: PT5M
    events:
      - created
      - signed
      - terminated
Installation

Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:

kestractl plugins get io.kestra.plugin:plugin-deel --compatible-for $KESTRA_VERSION

For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.

For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.

Properties

Deel API token

API token for authentication. Can be an organization token, personal token, or worker token.

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Default2026-01-01

API version

API version header value. Defaults to 2026-01-01.

Defaulthttps://api.letsdeel.com/rest

Deel API base URL

Base URL for the Deel API. Use https://api-sandbox.demo.deel.com/rest for sandbox environment.

SubTypestring
Default["created","signed","terminated"]
Possible Values
createdsignedterminated

Events to trigger on

Which contract events create executions.

DefaultPT5M
Formatduration

Polling interval

How often the Deel API is polled for new events.

SubTypestring
Default["in_progress"]

Signed statuses

Contract statuses treated as signed. Deel exposes no single signed status; defaults to in_progress.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

SubTypestring
Default["terminated","cancelled","user_cancelled"]

Terminated statuses

Contract statuses treated as terminated. Deel exposes no single terminated status.

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

Contract

The contract that caused the first event.

Event type

The detected event: created, signed or terminated.

SubTypeobject

Events

All detected events in this poll.

Previous status

Contract status observed on the previous poll. Only set for signed and terminated events; the Deel API does not provide it, it is tracked from earlier polls.