Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

notify

Send a templated message to a configured notification channel.

- id: report
  notify:
    channel: ops
    message: "mirrored ${{ format_units(trigger.args.value, 6) }} USDC — ${{ steps.mirror.tx.hash }}"

Fields

FieldRequiredDescription
channelA channel declared under notifications.channels
messageFull template — any expression works

Behavior

  • The message renders against the full run context — trigger, prior steps, constants, relayer addresses.
  • Values from secrets: are log-redacted.
  • Delivery goes through rflow's own senders (telegram / slack / discord) — no third-party relay.
  • The step output is { "channel": "...", "status": <http status> }.
  • Delivery failures follow normal step failure handling: 5xx/timeouts are retryable under a retry: block; a bad token or webhook is terminal.

Pattern: alert-only workflows

Monitoring needs no signer and no relayer — an event trigger plus notify is a complete project:

workflows:
  large-transfers:
    trigger:
      event:
        contract: USDC
        name: Transfer
        network: ethereum
        where: "${{ trigger.args.value > wei('1000000', 6) }}"
    steps:
      - id: alert
        notify:
          channel: ops
          message: "🚨 ${{ format_units(trigger.args.value, 6) }} USDC from ${{ trigger.args.from }}"