Skip to content

Provider content overrides in the Dashboard

Save provider-native JSON on Chat and Tool workflow steps, then version and promote it with the rest of the workflow.

Cover image for Provider content overrides in the Dashboard
Contributors
  • George Djabarov

    George Djabarov

  • Victor Yakubu

    Victor Yakubu

Details

Provider content overrides can now be configured directly in the Novu Dashboard. Use them when a workflow needs fields from a provider's native API that the shared step editor does not expose, such as Slack Block Kit, WhatsApp templates, or PagerDuty incident fields.

Previously, these payloads had to be added to every trigger() call in application code. You can now save the JSON once on the workflow step. It applies to every trigger and moves from development to production with the workflow.

Keep provider-native content with the workflow

Open a Chat or Tool step and select a connected provider from the content source dropdown. Provider tabs only appear when that provider has an active integration in the current environment.

The override is stored as a JSON object on the step. It supports Liquid variables, so the payload can still use workflow and subscriber data:

{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Deploy *{{payload.status}}* for {{subscriber.firstName}}"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "View run" },
          "url": "{{payload.runUrl}}"
        }
      ]
    }
  ]
}

The Dashboard also shows a preview of the merged payload before you save the workflow.

Get validation where a provider schema is available

Schema-backed editors help you catch malformed provider payloads before delivery. Slack overrides include autocomplete and validation against supported chat.postMessage fields, including nested Block Kit elements. The editor also links to Slack's Block Kit Builder.

WhatsApp Business overrides provide autocomplete and validation for message shapes such as templates, interactive messages, media, and text. The same override interface is available for Tool providers, including PagerDuty, Opsgenie, Grafana, and Tool Webhook.

When a provider does not have a schema-backed editor, the Dashboard provides a free-form JSON field with a warning and a link to the provider's documentation. Novu passes that object to the provider, so test the workflow with a real trigger before relying on it.

Combine default content and overrides predictably

The shared step body remains the default content. Novu merges the saved override into the provider request. If the override omits the provider's primary content field, such as text for Slack or text.body for WhatsApp, Novu fills it from the rendered step body.

Overrides follow this precedence order:

  1. Dashboard override saved on the step.
  2. Workflow-level provider override passed at trigger time.
  3. Step-level provider override passed at trigger time.

The higher-priority value wins when the same field appears at multiple levels. Arrays replace the lower-priority array as a whole. They are not merged by index.

Some Slack chat.postMessage fields do not apply when the integration delivers through an incoming webhook. Check the Slack setup guide before relying on fields such as thread or sender metadata.

Use Rich Chat for shared content and overrides for provider-specific fields

The Rich Chat editor and provider content overrides work together. Use the block editor when you want to create one structured message and let Novu render it for each connected chat provider. Use an override when one provider needs its own JSON format or a field outside the shared card model.

Provider content overrides are available for Tool steps and are rolling out gradually for Chat steps. If the provider dropdown does not appear on a Chat step yet, trigger-time provider overrides continue to work.

Read the Chat provider content overrides overview, configure Slack overrides in the Dashboard, or review the provider override precedence rules.