Amazon SES Channel Provider

Configuration

The configuration steps are explained in the ses configuration page.

Usage

1. When configured with

{
  "from": {
    "email": "person@example.com",
    "name": "Person Name"
  },
  "key_id": "MY_FAKE_AWS_ACCESS_KEY_ID",
  "region": "eu-west-1",
  "secret_key": "MY_FAKE_AWS_SECRET_KEY"
}

2. With a channel token

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "from": {
      "properties": {
        "email": {
          "description": "The email address to send from",
          "format": "email",
          "type": "string"
        },
        "name": {
          "description": "The name to send from",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "email"
      ],
      "type": "object"
    },
    "key_id": {
      "description": "AWS Access Key ID",
      "minLength": 1,
      "type": "string"
    },
    "region": {
      "description": "AWS Region",
      "minLength": 1,
      "type": "string"
    },
    "secret_key": {
      "description": "AWS Secret Key",
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "key_id",
    "secret_key",
    "region"
  ],
  "type": "object"
}

3. With Broadcast

{
  "action_url": "https://example.com",
  "category": "example",
  "content": "I come from broadcast",
  "custom_attributes": {},
  "id": "d1b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b",
  "overrides": {},
  "recipients": [
    {
      "custom_attributes": {
        "plan": "enterprise",
        "preferred_pronoun": "They",
        "pricing_version": "v10"
      },
      "email": "test@example.com",
      "external_id": "83d987a-83fd034",
      "first_name": "Person",
      "last_name": "Doe",
      "phone_numbers": [
        "+1 5005550001"
      ]
    }
  ],
  "title": "Hello, World!",
  "topic": "example"
}

The channel handler triggers a HTTP request

POST https://email.eu-west-1.amazonaws.com/v2/email/outbound-emails

With payload

{
  "Content": {
    "Simple": {
      "Body": {
        "Html": {
          "Charset": "UTF-8",
          "Data": "I come from broadcast"
        }
      },
      "Subject": {
        "Charset": "UTF-8",
        "Data": "Hello, World!"
      }
    }
  },
  "Destination": {
    "ToAddresses": [
      "\u003cdan@example.com\u003e"
    ]
  },
  "FromEmailAddress": "\"Person Name\" \u003cperson@example.com\u003e"
}

Overrides

The provider overrides key in the broadcast payload can be used to change the default behavior of the channel handler.

overrides >> providers >> ses

Overrides

null

Payload

{
  "ConfigurationSetName": "SES-Email-Tracking",
  "Content": {
    "Raw": null,
    "Simple": {
      "Attachments": null,
      "Body": {
        "Html": {
          "Charset": "UTF-8",
          "Data": "html body"
        },
        "Text": null
      },
      "Headers": null,
      "Subject": {
        "Charset": "UTF-8",
        "Data": "Your company Scan Results"
      }
    },
    "Template": null
  },
  "Destination": {
    "BccAddresses": null,
    "CcAddresses": null,
    "ToAddresses": [
      "\u003cuser7@example.com\u003e"
    ]
  },
  "EmailTags": [
    {
      "Name": "Magicbell",
      "Value": "notifications"
    },
    {
      "Name": "NotificationSource",
      "Value": "scans"
    }
  ],
  "EndpointId": null,
  "FeedbackForwardingEmailAddress": null,
  "FeedbackForwardingEmailAddressIdentityArn": null,
  "FromEmailAddress": "\"MagicBell\" \u003ctest@example.com\u003e",
  "FromEmailAddressIdentityArn": null,
  "ListManagementOptions": null,
  "ReplyToAddresses": null
}

Overrides

null

Payload

{
  "ConfigurationSetName": "SES-Email-Tracking",
  "Content": {
    "Raw": null,
    "Simple": {
      "Attachments": null,
      "Body": {
        "Html": {
          "Charset": "UTF-8",
          "Data": "html body"
        },
        "Text": null
      },
      "Headers": null,
      "Subject": {
        "Charset": "UTF-8",
        "Data": "Your company Scan Results"
      }
    },
    "Template": null
  },
  "Destination": {
    "BccAddresses": null,
    "CcAddresses": null,
    "ToAddresses": [
      "example@gmail.com"
    ]
  },
  "EmailTags": [
    {
      "Name": "Magicbell",
      "Value": "notifications"
    },
    {
      "Name": "NotificationSource",
      "Value": "scans"
    }
  ],
  "EndpointId": null,
  "FeedbackForwardingEmailAddress": null,
  "FeedbackForwardingEmailAddressIdentityArn": null,
  "FromEmailAddress": "company \u003cnoreply@company.com\u003e",
  "FromEmailAddressIdentityArn": null,
  "ListManagementOptions": null,
  "ReplyToAddresses": null
}