Skip to main content

Setup

To install the Custom Provider, navigate to Custom Provider integration. Input your webhook HTTP address and choose an authentication model.
Custom Provider
After installing the Custom Provider, you can add it to any Push Channel. After adding a “Push Channel”, open up the Channel Settings Modal.
Custom Provider Settings
You will see “Custom” in the list of “Installed Providers”.
Installed Custom Provider
You can now add a Title and blocks to your designer. They will be sent as both “plain text” and an array of “blocks” to the configured webhook.
Custom Provider Designer
Upon sending the message, your webhook will receive a payload that looks like this:
interface TextBlock {
  type: "text";
  text: string;
}

interface ActionBlock {
  type: "action";
  url: string;
  text: string;
}

interface PushMessage {
  type: "push";
  data: {
  	messageId: string;
    content: {
      title: string;
      body: string;
      blocks: Array<ActionBlock | TextBlock>
    }
  }
}
{
  "type": "push",
  "data": {
    "messageId": "1-6140e057-2749378a31c6026f3dab823f",
    "content": {
      "blocks": [
        {
          "text": "My Body",
          "type": "text"
        },
        {
          "text": "Click Here",
          "url": "https://example.execute-api.us-east-1.amazonaws.com/dev/r/TRACKING_ID",
          "type": "action"
        }
      ],
      "body": "My Body\nClick Here: https://example.execute-api.us-east-1.amazonaws.com/dev/r/TRACKING_ID",
      "title": "My Title"
    }
  }
}

Overrides

You can use an override to replace what Courier sends to your custom provider. The body, headers, method, and url fields are all overridable.
{
  "message": {
    "template": "NOTIFICATION_TEMPLATE_ID",
    "to": {
      "email": "alice@acme.com"
    },
    "providers": {
      "custom": {
        "override": {
          "body": {},
          "headers": {},
          "method": "POST",
          "url": "https://your-endpoint.example.com/webhook"
        }
      }
    }
  }
}