Custom Destinations
Work with GrowthLoop to add an internal or unsupported API as a destination for your organization.
When you need to send audiences to an API GrowthLoop does not list, or to an API your team built, Enterprise plans can add that destination for your organization only.
A GrowthLoop destination architect designs the request and response contract with your team. After it ships, marketers add it like any other destination and export from an audience or a journey.
If you can already call your API with a URL, headers, and a JSON body, use HTTP Endpoint instead. That destination is self-serve.
This destination writes to your API and is a good fit when you want to:
- Send to an internal API, or a platform GrowthLoop does not list
- Keep the destination available only for your organization
This maps to GrowthLoop Audiences and Journeys:
| Use it for | Audiences | Journeys |
|---|---|---|
| Creating and loading a list, segment, cohort, or audience in your API | ✓ | ✓ |
| Sending a campaign or message for each contact | ✓ |
Prerequisites
Make sure you have:
- An Enterprise plan.
- An API your team can expose for GrowthLoop to call.
- A technical owner who can agree on authentication, match keys, and endpoints.
To start, contact [email protected]. A destination architect typically gets the destination live for your organization in under two weeks.
How it works
GrowthLoop supports two integration patterns.
- Audience destinations: Your platform has lists, segments, cohorts, or audiences. GrowthLoop creates that object, then loads members on an ongoing basis.
- Trigger destinations: Your platform has no list object. GrowthLoop sends each person to your API and triggers the campaign or message the marketer selected.
Most platforms should use the audience pattern.
Audience destinations
Use this pattern when GrowthLoop should create a list in your platform and keep membership in sync.

Setup
Your destination architect will collect:
| Item | What it controls |
|---|---|
| Authentication | What marketers enter when they add the destination. API keys, OAuth, or another method. The destination appears only for your organization |
| Match keys | Fields marketers can map at export time, such as email, phone, name, address, or a unique ID from the warehouse |
| Personalization fields | Whether the platform can accept extra fields for messaging |
Create audience endpoint
GrowthLoop sends a POST to create the list, segment, cohort, or audience.
Request parameters:
audience_name: Name the marketer entered on the exportaudience_id: GrowthLoop audience ID. You can store this if you want
Expected response:
- Status
200when the object was created custom_audience_id: The ID your system assigned to that list
Load audience endpoint
GrowthLoop sends a POST to add members to the object you created.
Request parameters:
custom_audience_id: The ID your create endpoint returnedpayload: Batches of match keys for GrowthLoop to load
{
"schema": "EMAIL_SHA256",
"data": [
"<HASHED_DATA>",
"<HASHED_DATA>",
"<HASHED_DATA>"
]
}Optional response fields help the Activity Tracker show success and failures:
| Name | Description |
|---|---|
custom_audience_id | The list ID in your system |
num_received (optional) | How many records you accepted |
num_invalid_entries (optional) | How many records you rejected |
invalid_entry_samples (optional) | Example rejected records |
Trigger destinations
Use this pattern when your platform has no list object and should send a campaign or message to each person instead.

Setup
Collect the same Authentication, Match keys, and Personalization fields as an audience destination.
List campaigns endpoint
GrowthLoop sends a GET so marketers can pick a campaign or message.
Expected response:
- Status
200 campaigns: An array of objects withcampaign_nameandcampaign_id
Those values appear in the export UI.
Send campaign endpoint
GrowthLoop sends a POST for each person who reaches the export or journey node.
Request parameters:
payload: Match keys and personalization fields for that personcampaign_id: The campaign the marketer selected from the list endpoint
Expected response:
- Status
200when your API accepted the person and sent the campaign or message
Export behavior
| Behavior | What happens |
|---|---|
| What GrowthLoop writes | List membership or a per-person campaign trigger, depending on the pattern. Direction is GrowthLoop → your API |
| When it runs | Batch. Audience destinations load members on the export schedule. Trigger destinations send when people reach the export or journey Destination node |
| Organization scope | The destination appears only for your organization |
| Audience pattern | GrowthLoop creates a list, then loads members on a schedule |
| Trigger pattern | GrowthLoop sends each person to the campaign the marketer selected |
| Custom contracts | On Enterprise, destination architects can change the request and response shape to match your API |
What you get
After the integration ships, marketers add the destination from Destinations and export from an audience or a journey Destination node. See Export an audience or Build a journey.
If you only need GrowthLoop to call URLs you configure yourself, use HTTP Endpoint.
Ready to get started? Contact [email protected] and a destination architect will plan the integration.
Need customizations?GrowthLoop can customize requests and expected responses for your destination on an Enterprise plan.
Updated 8 days ago
