Zekt Action

Back to Zekt

Free — included with every plan — optional structured message for every event

Free — Included

Rich, composable payloads —
native to GitHub, zero infrastructure

Zekt events are powerful on their own. But when you need to carry structured data alongside the event signal, Zekt Action attaches any JSON payload in one step — free, native, replayable.

Free — included with every plan (usage charges apply for message processing API calls)

Available on any repo with an active Zekt Core subscription

Events only vs. Events + Message

Events only is the default. When a Zekt event fires, consumers know something happened — they get the repo, workflow, and correlation ID. That's enough for most trigger-and-go use cases.

Events + Message is for when consumers need to know what happened — the specific deployment target, the cost distribution ID, the approval reference, or any other structured context. Attach it once with Zekt Action; every consumer gets the same data.

What Zekt Action gives you

Click any card to explore each capability in detail

Optional by Design
Zekt works without it — add it only when you need it
click to flip
Optional by Design
Zekt never requires a message body. The event signal alone is valid and routable. Add Zekt Action only when consumer workflows genuinely need structured payload data.
  • Start with events only — no configuration needed
  • Add Zekt Action to the provider workflow when context becomes necessary
  • Can be enabled on a per-dispatch basis, not repo-wide
click to flip back
Arbitrary JSON Payload
Up to 1 MB of free-form structured data
click to flip
Arbitrary JSON Payload
Attach any valid JSON object to the event. No schema required, no Zekt-defined structure. It's your message.
  • Maximum request size: 1 MB per dispatch
  • Nested objects, arrays, strings, numbers — any valid JSON
  • Common patterns: deployment metadata, cost attribution, feature flags, approval context
click to flip back
Native GitHub Action
One step, no new infrastructure
click to flip
Native GitHub Action
Add a single step to any existing workflow. No new services and no secret: it signs in with GitHub OIDC, so the job needs permissions: id-token: write.
- uses: zekt-dev-org/zekt-action@v3
    with:
      event-type: 'zekt-example-event-name'
      payload: ${{ steps.your-json-payload.outputs.payload }}
View full documentation →
click to flip back
Time Travel Compatible
Full payload preserved for replay
click to flip
Time Travel Compatible
When you use Zekt Analytics Time Travel, the archived event includes the complete Zekt Action payload, up to 512 KB. Replayed events carry the original structured data identically.
  • Above 512 KB, the archive keeps the event's metadata but not its payload
  • Replay delivers the same JSON to the same consumers
  • Replay is tagged as isReplay: true — original payload unchanged
click to flip back
Consumer Composability
Branch on payload fields natively in GitHub Actions
click to flip
Consumer Composability
Consumer workflows receive the payload in client_payload.zekt.payload. Consume as it is, or enrich and pass it on if you are using chainlink.
  • Pass payload values as step inputs without custom scripts
  • Filter and route inside the consumer workflow, not at the provider
click to flip back
Zero Extra Cost at Rest
Free to use; only message processing is metered
click to flip
Zero Extra Cost at Rest
Zekt Action itself is free. Storage of the payload during routing incurs no additional subscription cost.
  • No per-payload fee at rest
  • Message processing API calls are metered per-dispatch (same as event routing)
  • Archive storage of payloads covered by your Analytics plan tier
click to flip back

Events only vs. Events + Message

  • Use events only when consumers need to react to a signal — "a deploy happened in repo X." No additional data required.
  • Use Zekt Action when consumers need context — which environment, which cost centre, which feature version, or which approval reference triggered the flow.
  • Ideal for deployment metadata (SHA, tag, environment), compliance workflows (approval ID, auditor reference), and cost attribution (department, project code, budget line).
  • Zekt Chainlink intermediate nodes use Zekt Action to attach enriched data before forwarding downstream — making it the natural enrichment primitive.

Combinations

Works well with

  • Core + Action — Minimal stack: events with structured payloads, no analytics overhead.
  • Core + Analytics + Action — Recommended bundle: full visibility plus replayable structured payloads via Time Travel.
  • Core + Shield + Action — Encrypted payloads. Only the consumer with the key can read the Zekt Action message.
  • Core + Chainlink + Action — Intermediate Chainlink nodes enrich and re-attach payloads at each hop using Zekt Action.

Good to know

  • Zekt Action is compatible with all other Zekt components.
  • When dispatching with Shield, the payload is encrypted before it reaches Zekt. Zekt can't read encrypted payloads; archived and replayed Shield events stay encrypted.
  • You cannot combine Zekt Shield and Zekt Analytics functionality for orchestration workloads — this applies to Zekt Action as well. The orchestration payload cannot be encrypted using Zekt Action as of now.

Start at the foundation

Explore Zekt Core

The event bus that connects GitHub workflows across every organizational boundary