Skip to content
cronpad
Sinks / Sinks

Sinks

A sink is the action a job performs when it fires. cronpad has two: webhooks, which send an HTTP request to a URL you choose, and commands, which run a program on the cronpad server (self-hosted only). Each attempt’s result is classified as success, retryable failure or fatal failure, which drives retries and alerts.

SinkAvailable onPage
WebhookCloud and self-hostedWebhooks
CommandSelf-hosted only (disabled in mode = "hosted")Commands

Outcomes

OutcomeMeaningWhat happens next
successThe sink reported success (2xx, or exit code 0 by default)Run succeeded
retryableA failure that might succeed later (5xx, 429, network error)Retry with backoff, if attempts remain
timeoutThe attempt exceeded the job’s timeoutTreated as retryable
fatalA failure that won’t fix itself (most 4xx, bad command)Run failed immediately, no retries

Templates

Sink configs can include placeholders that are filled in at execution time:

PlaceholderValue
{{run.id}}Run ID, e.g. run_01J9ZM1A…
{{run.scheduled_at}}Scheduled time, RFC 3339 UTC
{{job.id}}, {{job.name}}The job
{{attempt}}Attempt number (0 for the first try)
{{secret.NAME}}A workspace secret. Never stored in run history or logs.

Why there is no MCP sink

cronpad doesn’t call MCP tools directly. MCP is designed for an AI application talking to tools interactively, with session setup and user-approved OAuth tokens that expire, which doesn’t suit unattended jobs, and it has no idempotency conventions. Anything you’d call on a schedule can be reached with a webhook. For the other direction, letting AI assistants manage cronpad, see the MCP server.