Skip to content

Scheduling jobs

A job runs a task attached to an artifact — on a schedule, or when something happens. Email a weekly report, post a snapshot to Slack, refresh a dataset.

TriggerFires
cronOn a time schedule (schedule field)
eventOn artifact.updated, artifact.viewed, or comment.added
ActionDoes
emailSend to recipients (inline HTML or a template)
slackPost a message, snapshot, or PDF to a channel or DM
discordPost to a Discord webhook
webhookHTTP request to your URL
http_getSimple GET
materializeRe-run a connection query and store the result
Terminal window
curl -X POST https://shareout.site/v1/jobs \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"artifact_id": "art_abc123",
"action": "email",
"trigger_type": "cron",
"schedule": "0 9 * * 1",
"config": {
"recipients": ["team@company.com"],
"subject": "Weekly report",
"includeArtifactLink": true
}
}'
┌─ minute (0-59)
│ ┌─ hour (0-23)
│ │ ┌─ day of month (1-31)
│ │ │ ┌─ month (1-12)
│ │ │ │ ┌─ day of week (0-6, Sun=0)
* * * * *

0 9 * * 1 → Mondays 9am · */15 * * * * → every 15 min · 0 9-17 * * 1-5 → hourly, business hours.

Add retry_config for flaky downstreams:

{ "maxAttempts": 3, "backoffType": "exponential", "initialDelay": 60 }

fixed · linear (delay × (attempt+1)) · exponential (delay × 2^attempt).

ActionEndpoint
Run nowPOST /v1/jobs/{id}/run
PausePATCH /v1/jobs/{id}{ "enabled": false }
Recent logsGET /v1/jobs/{id}/logs

See the full schema in the API reference.