GoRunner docs
Search or askSearch⌘K

Get a trigger’s sample data

POST/api/pieces/{id}/triggers/{triggerId}/sample

Returns the data a trigger will deliver for the settings you send: what {{trigger.…}} will hold.

Needs an API token with the Read permission for workflows (workflow:read).

Parameters

Path

idRequired · string

The trigger’s app id.

triggerIdRequired · string

The trigger’s id: in a definition, the trigger’s actionId.

Body

Optional. Put the settings under config: sent at the top level they are ignored, and you get the stated example with derived: false.

configOptional · object

The trigger’s config, as in the definition. Left out: the trigger’s stated example.

Why ask

A form’s data is the fields you defined, a schedule’s is its real next time, and a callable trigger’s is its stated input. The app list’s example can’t know those.

Any trigger may be asked: one that can’t work out its data answers its stated example, with derived: false.

Responses

  • 200OK

    sampleData, and derived: true when it comes from your settings.

  • The token lacks the Read permission for workflows.

  • This workspace may not use the app.

  • No worker has this app, or the app has no such trigger: the message names the ones it has.

  • The worker failed. Try again.

  • No worker is checked in, so the app couldn’t be asked. Workflows are unaffected.

  • GoRunner couldn’t check which apps this workspace may use. Try again.

Any call can also answer: 401 UNAUTHORIZED · 401 TOKEN_ENDED · 403 TOKEN_SURFACE_OFF · 403 FEATURE_OFF · 403 EMBED_NOT_ALLOWED · 403 EMBED_NOT_AVAILABLE · 403 ACCOUNT_SUSPENDED · 413 PAYLOAD_TOO_LARGE · 415 INVALID_CONTENT_TYPE · 429 RATE_LIMITED · 503 BUSY · 503 PAUSED · 503 SERVICE_UNAVAILABLE. See Errors.

Request

GORUNNER="https://api.gorunner.io"
GORUNNER_TOKEN="grt_…"  # needs Read for workflows
APP_ID="form"
TRIGGER_ID="form_submission"

URL="$GORUNNER/api/pieces/$APP_ID/triggers/"
URL="${URL}$TRIGGER_ID/sample"
curl -X POST "$URL" \
  -H "Authorization: Bearer $GORUNNER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "title": "Sign up",
      "fields": [
        {
          "name": "email",
          "label": "Email"
        }
      ]
    }
  }'

Response · 200 OK, shortened

json
{
  "data": {
    "sampleData": {
      "body": {
        "email": ""
      },
      "method": "POST",
      "submittedAt": "2026-10-25T09:00:00Z"
    },
    "derived": true
  }
}
Every field

{"config": {…}}, with the trigger’s configuration under config exactly as it would sit in the definition’s trigger. Omit for the declared fallback.

Body

configOptional · object

The trigger’s config object as it would sit in the definition. Absent or empty means 'no config yet' and the declared fallback is returned.

Response · 200 OK

dataobject

What {{trigger.*}} will contain.

sampleDataobject

The payload shape. Reference its keys from steps as {{trigger.<key>}} (e.g. {{trigger.body.email}} for a webhook).

derivedboolean

True when this reflects the configuration you sent; false when it is the trigger’s generic declaration. A generic sample that looks authoritative is how authors build against a shape that never arrives.