Skip to main content

Prerequisites

Before setting up the SparkPost integration, ensure you have:

1. SparkPost Account

  • An active SparkPost account
  • API key with appropriate permissions

2. SparkPost API Key

To create an API key in SparkPost:
1

Log in to SparkPost

Log in to your SparkPost Dashboard
2

Navigate to API Keys

Go to ConfigurationAPI Keys
3

Create API Key

Click Create API Key
4

Set Permissions

Configure the following permissions:
  • Transmissions: Read/Write (required for sending)
  • Webhooks: Read/Write (required for event tracking)
5

Save Your Key

Click Create API Key and copy your API key (you won’t be able to see it again)

3. SendPost Account

  • A SendPost account with admin access
  • At least one sub-account created

Setting Up SparkPost Integration

Step 1: Navigate to Providers

  1. Log in to your SendPost Dashboard
  2. Go to SettingsProviders (or navigate to the Providers page)
  3. Click the NEW button

Step 2: Configure SparkPost Provider

  1. Name: Enter a descriptive name (e.g., “Production SparkPost”, “Marketing SparkPost”)
  2. Type: Select SparkPost from the dropdown
  3. Key: Paste your SparkPost API key
  4. Click Save

Step 3: Automatic Webhook Configuration

When you save the provider, SendPost automatically:
Registers a webhook with SparkPost
Configures the webhook to receive all supported events
Creates the necessary processing infrastructure
Webhook URL Format: https://api.sendpost.io/tpsp/sparkpost/account/{your-account-id} Events Configured:
  • Injection (sent)
  • Delivery
  • Bounce
  • Out of Band (async bounces)
  • Delay
  • Policy Rejection
  • Spam Complaint
  • Open / Initial Open
  • Click
  • List Unsubscribe / Link Unsubscribe

Step 4: Configure IP Pool for SparkPost Routing

Before sending emails via SparkPost, you need to configure an IP Pool in SendPost that routes traffic to your SparkPost provider.

Why IP Pools?

IP Pools in SendPost allow you to control how your email traffic is distributed between SendPost’s native infrastructure and third-party providers like SparkPost. This enables:
  • Volume-based routing: Split your email volume between SparkPost and SendPost infrastructure
  • Easy traffic management: Adjust the percentage of emails sent via SparkPost vs SendPost at any time
  • Gradual migration: Start with a small percentage on SparkPost and increase as needed
  • Failover capability: Route traffic to SparkPost when SendPost IPs are warming up

Setting Up IP Pool for SparkPost

1

Create IP Pool

  1. Go to SettingsIP Pools in your SendPost dashboard
  2. Click Create New IP Pool
  3. Enter a descriptive name (e.g., “sparkpost-pool” or “transactional-sparkpost”)
2

Configure Routing

  1. In the IP Pool settings, configure the routing to use your SparkPost provider
  2. Set the volume percentage you want to route through SparkPost
  3. You can easily adjust this percentage later to control traffic distribution
3

Save Configuration

Save your IP Pool configuration. The pool name will be used in your API calls.

Volume-Based Routing

You can configure what percentage of your email volume goes through SparkPost vs SendPost’s native infrastructure:
ConfigurationSparkPostSendPost Infrastructure
100% SparkPostAll emails via SparkPostNone
50/50 Split50% of emails50% of emails
SparkPost Backup0% (failover only)100% primary
You can change the volume distribution at any time through the SendPost UI without any code changes.

Step 5: Whitelist Your Sending Domain

You must whitelist the same sending domain in SendPost that you use in SparkPost.
Important: The domain you use for sending emails (e.g., yourdomain.com) must be whitelisted in SendPost. This ensures proper email routing and deliverability.
  1. Go to SettingsDomains in your SendPost dashboard
  2. Click Add Domain
  3. Enter the same domain you have configured in SparkPost (e.g., yourdomain.com)
  4. Complete the domain verification process
If you’re using multiple sending domains in SparkPost, you need to whitelist each domain in SendPost.

Next Steps

Once your SparkPost integration is set up, you can: