Introduction

Channel Integrations define the available communication providers and their configurations at the platform level (e.g. the mechanism by which we send emails). These integrations allow you to manage what communication providers they want to use for their tenant. Please see the API Reference here for more information.
Currently only email via Reach Managed is supported. SMS + Bring Your Own Provider support is planned for future releases.

Structure

A channel integration consists of:
  • Status: Can be either active or deactivated
  • Channel Provider: The provider of the communication service (currently only reach_managed is supported)
  • Channel Type: The type of communication channel (currently only email is supported)

Available Providers

Reach Managed

Reach Managed is our default email provider and currently the only provider supported. You can optionally bring your own DNS provider such as Route53

Route53

Reach supports bringing your own domain with Route53. To achieve this, we use cross account IAM permissions with minimally scoped permissions. Specifically, to integrate with Route53 we will need the following information:
  • AWS Account ID: Your AWS account ID
  • Role ARN: The ARN of the role that Reach will assume to access Route53
  • Hosted Zone ID: The ID of the hosted zone that Reach will access
  • Base Domain: The base domain that Reach will access
You will need to configure the IAM role with the following permissions:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ChangeResourceRecordSets",
                "route53:ListResourceRecordSets"
            ],
            "Resource": "arn:aws:route53:::hostedzone/*" // If possible specific the hosted zone id instead of the wildcard
        }
    ]
}
Policy Example
And the following assume role policy:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::026090517319:root" // This grants access to the Reach AWS account (not root access)
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Assume Role Policy
Now you can call the Create Channel Integration endpoint to integrate with Route53, for example you can use the following payload:
{
    "channel_provider": "reach_managed",
    "channel_type": "email",
    "channel_integration_metadata": {
        "type": "reach_managed",
        "customDomain": true,
        "awsCustomDomainInfo": {
            "aws_account_id": "026090517319",
            "role_arn": "arn:aws:iam::026090517319:role/ReachRoute53Role",
            "hosted_zone_id": "Z01234567890123456789",
            "base_domain": "example.com"
        }
    }
}

Twilio

Twilio is a popular SMS provider that we support. To integrate with Twilio we will need the following information:
  • Account SID: Your Twilio account SID
  • API Key SID: Your Twilio API Key SID
  • API Key Secret: Your Twilio API Key Secret
You can see here for more information on how to get these credentials.