Elastic Email is a cost-effective, high-deliverability email platform offering both marketing and transactional email at scale, via a RESTful API or SMTP relay. Businesses send campaigns, automated sequences, and transactional messages like receipts and password resets. It manages contacts, lists, campaigns, templates, and sender domains, with real-time analytics on opens, clicks, bounces, and complaints.
Power end-to-end data operations for your Elastic Email API with Nexla. Our bi-directional Elastic Email connector is purpose-built for Elastic Email, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Elastic Email or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Elastic Email workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to Elastic Email, you will need an active Elastic Email account and an API key generated from that account. Elastic Email authenticates all API v4 requests using an API key passed in the X-ElasticEmail-ApiKey request header—no OAuth flow or username/password combination is required.
Elastic Email API keys are 96-character tokens that grant programmatic access to your account. Each account can hold up to 15 API keys, and each key can be scoped with specific permissions and optional IP address restrictions to reduce exposure if a key is ever compromised.
Click your profile avatar in the top-right corner of the dashboard, then select Settings from the dropdown menu.
In the left-hand Settings navigation, select API.
Click the Create API Key button.
Enter a descriptive name for the key in the Name field. A name such as Nexla Integration makes it easy to identify the key's purpose later.
Configure the permissions for the key. Elastic Email allows each API key to be scoped to only the access it requires. Select the permissions appropriate for how Nexla will use this credential:
View account information — required for basic connectivity verification during credential testing.
Manage contacts — required to read contact records or write new contacts to your account.
Manage campaigns — required to read campaign data or create and update campaigns via a destination flow.
Send emails — required to send transactional or bulk emails as a Nexla destination.
Manage templates — required to read or write email templates.
Manage lists — required to read contact lists or create and update lists.
For full Nexla source and destination functionality across all available endpoints, enabling all of the permissions listed above is recommended. You can create additional API keys with narrower scopes for more restricted use cases.
Optionally, enter an IP address or CIDR range in the Restrict to IP field to limit the key to requests from specific IP addresses. This provides an additional layer of security for production integrations.
Click the Create button. A dialog will appear displaying the complete API key value.
warning
Copy and store the API key in a secure location immediately after creation. Elastic Email displays the full key value only once. After you close the dialog, only the last five characters of the key will be visible. If the key is lost, you will need to delete it and generate a new one.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Elastic Email API key in the API Key Value field. This is the 96-character token generated in your Elastic Email account under Settings > API (see Prerequisites). Nexla passes this key with every request in the X-ElasticEmail-ApiKey HTTP header to authenticate with the Elastic Email REST API.
Keep your API key confidential. Do not share it in source code repositories, log files, or other unsecured locations. If a key is compromised, delete it from your Elastic Email account immediately under Settings > API and generate a new one.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Elastic Email connector tile, then select the credential that will be used to connect to the Elastic Email account, and click Next; or, create a new Elastic Email credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Elastic Email endpoints. Each template is designed specifically for the corresponding Elastic Email endpoint, making data source setup easy and efficient. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
List Campaigns
Returns a paginated list of email campaigns in your Elastic Email account. Use this endpoint to ingest campaign metadata—such as campaign names, statuses, and schedules—for reporting, auditing, or synchronization with external systems.
This endpoint retrieves all campaigns accessible to the authenticated account. No additional configuration is required beyond selecting this endpoint template.
Optionally, enter a name or partial string in the Search field to filter the returned campaigns by name. Leave this field blank to retrieve all campaigns.
The endpoint uses incremental offset-based pagination and retrieves up to 100 campaigns per page automatically. Nexla will continue fetching additional pages until no further results are returned.
This endpoint returns campaign-level metadata. To retrieve performance statistics (opens, clicks, bounces) for a specific campaign, use the Get Campaign Statistics by Name endpoint instead.
List Contacts
Returns a paginated list of all contacts stored in your Elastic Email account. Use this endpoint to sync your subscriber or recipient database with external CRM systems, data warehouses, or analytics platforms.
This endpoint retrieves all contacts in your account without additional filtering. No parameters beyond the endpoint selection are required.
Elastic Email returns contact records including email address, status, custom fields, and consent information. The response is paginated in batches of up to 100 records, and Nexla will automatically retrieve all pages.
Contact status values in Elastic Email include Active, Unsubscribed, Bounced, and Complaint. These values are useful for list hygiene workflows and suppression list management downstream.
List Contact Lists
Returns all contact lists defined in your Elastic Email account. Use this endpoint to inventory your subscriber segments, audit list membership, or feed list metadata into downstream reporting systems.
This endpoint returns all contact lists with no required configuration. Select the endpoint and proceed to testing.
Each returned record includes the list name, count of contacts, and creation date. Nexla paginates through all available lists automatically.
Get Statistics
Returns aggregated delivery and engagement statistics across all campaigns in your account, including total sends, opens, clicks, bounces, unsubscribes, and complaint counts. Use this endpoint to build high-level performance dashboards or trend reports.
This endpoint retrieves account-wide statistics with no required parameters. No additional configuration is needed beyond selecting this endpoint.
Statistics are returned in paginated batches. Nexla automatically retrieves all pages until the full dataset has been ingested.
For per-campaign statistics rather than account-wide aggregates, use the Get Campaign Statistics by Name endpoint, which returns metrics scoped to a single named campaign.
List Templates
Returns all email templates stored in your Elastic Email account. Use this endpoint to audit your template library, synchronize templates with an external content management system, or include template metadata in campaign reporting.
This endpoint requires no additional parameters. All templates in the account are returned and paginated automatically by Nexla.
Each template record includes the template name, subject, body content, and creation metadata.
Get Email Status
Returns the delivery and engagement status of a specific email transaction identified by its Transaction ID. Use this endpoint to track the outcome of a single sent email—for example, to confirm delivery, identify failures, or audit engagement for a specific message in a transactional workflow.
Enter the unique identifier of the email transaction in the Transaction ID field. This ID is returned by the Elastic Email API when an email is sent via the /v4/emails or /v4/emails/transactional endpoints. This field is required.
The following optional fields control which status categories are included in the response. Set each to true to include that status type, or leave blank to use the Elastic Email API default behavior:
Show Failed — Include records for emails that failed to deliver.
Show Sent — Include records for emails that were successfully submitted for delivery.
Show Delivered — Include records for emails confirmed as delivered to the recipient mail server.
Show Pending — Include records for emails that are queued and awaiting delivery.
Show Opened — Include records for emails that the recipient has opened.
Show Clicked — Include records for emails where the recipient clicked a tracked link.
Show Abuse — Include records for emails that generated an abuse or spam complaint.
Show Unsubscribed — Include records for emails that triggered an unsubscribe event.
Show Errors — Include error detail records for failed delivery attempts.
Show Message IDs — Include the internal Elastic Email message IDs in the response records.
Transaction IDs are generated by Elastic Email at send time and should be captured and stored by your sending application for later status lookup. For bulk status information across all transactions, use the Get Statistics endpoint instead.
Get Campaign Statistics by Name
Returns performance statistics for a single named campaign, including sends, opens, clicks, bounces, and unsubscribes. Use this endpoint when you need granular metrics for a specific campaign rather than account-wide aggregates.
Enter the exact name of the campaign in the Campaign Name field. Campaign names are case-sensitive and must match the name as it appears in your Elastic Email account under Campaigns. This field is required.
The endpoint returns a single statistics record for the specified campaign. No pagination is applied.
Use the List Campaigns endpoint to retrieve a list of campaign names available in your account before configuring this endpoint.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Elastic Email data sources can also be manually configured to ingest data from any valid Elastic Email API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
All Elastic Email v4 API endpoints use the base URL https://api.elasticemail.com/v4 (for example, https://api.elasticemail.com/v4/contacts to retrieve all contacts, or https://api.elasticemail.com/v4/campaigns to retrieve all campaigns). List-style endpoints return a top-level JSON array, so $[*] is typically the correct Path to Data in Response. You do not need to include the X-ElasticEmail-ApiKey header — Nexla automatically applies it from your credential.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Elastic Email data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Elastic Email destination, and select the Send to Destination option from the menu. Select the Elastic Email connector from the list of available destination connectors, then select the credential that will be used to connect to the Elastic Email account, and click Next; or, create a new Elastic Email credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Elastic Email endpoints. Each template is designed specifically for the corresponding Elastic Email endpoint, making destination setup easy and efficient. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Add Contacts
Adds one or more new contacts to your Elastic Email account. Use this endpoint to populate your subscriber database from an external CRM, sign-up form, or any other data source in Nexla.
This endpoint requires no additional URL parameters. Each record in the Nexset will be serialized as JSON and submitted to the Elastic Email Contacts API.
Each contact record sent to this endpoint should include the following fields:
Email — The contact's email address (required by Elastic Email).
FirstName — The contact's first name (optional).
LastName — The contact's last name (optional).
Status — The contact's subscription status (e.g., Active, Unsubscribed).
Any custom fields defined in your Elastic Email account can also be included.
For importing large volumes of contacts from a file, consider using the Upload Contacts endpoint, which accepts multipart file uploads and is optimized for bulk imports.
Update Contact
Updates an existing contact's fields—such as custom fields, subscription status, or personal details—identified by their email address. Use this endpoint to keep contact records in sync with an external source of truth.
Enter the email address of the contact to update in the Email field. This value is appended to the Elastic Email API URL as a path parameter and must exactly match the email address stored in your account. This field is required.
The request body sent to this endpoint should contain the fields to be updated in JSON format. Only the fields included in the payload will be modified; other fields remain unchanged.
Delete Contact
Permanently deletes a single contact from your Elastic Email account, identified by their email address. This endpoint supports GDPR right-to-erasure workflows where individual contact records must be removed upon request.
Enter the email address of the contact to delete in the Email field. This value is used as a path parameter in the API request URL. This field is required.
warning
Contact deletion is permanent and cannot be undone. Ensure the correct email address is supplied before activating this destination flow.
Bulk Delete Contacts
Deletes multiple contacts in a single API call using a rule-based filter or a list of email addresses. Use this endpoint for mass contact removal operations, such as GDPR erasure campaigns or large-scale list purges.
This endpoint accepts a JSON body specifying either a rule string that matches contacts to be deleted, or an explicit list of email addresses. Nexla will serialize each Nexset record as JSON and submit it to this endpoint.
No additional URL parameters are required for this endpoint.
warning
Bulk contact deletion is permanent. Review your Nexset data and deletion criteria carefully before activating this destination flow.
Upload Contacts
Imports contacts from a file into a specified Elastic Email contact list. This endpoint is optimized for bulk contact imports and uses multipart/form-data encoding.
The following optional parameters can be configured for this endpoint:
List Name — The name of the contact list to import the contacts into. If left blank, contacts are added to the account without being assigned to a specific list.
Encoding Name — The character encoding of the uploaded file (e.g., utf-8). Leave blank to use the Elastic Email default encoding detection.
Add List
Creates a new contact list in your Elastic Email account. Use this endpoint when you need to programmatically provision segmented subscriber lists from an external system.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email Lists API.
Each record should include the following fields:
ListName — The name of the new contact list (required by Elastic Email).
AllowUnsubscribe — A boolean indicating whether recipients can unsubscribe from this list (optional).
Update List
Updates the settings of an existing contact list, such as renaming the list or changing its configuration. Use this endpoint to keep list definitions synchronized with external systems.
Enter the current name of the contact list to update in the List Name field. This value is used as a path parameter in the API URL. This field is required.
The JSON body should contain the updated list properties to apply.
Delete List
Deletes a contact list by name. Deleting a list removes the list definition from your account but does not delete the contacts belonging to that list.
Enter the name of the contact list to delete in the List Name field. This value is used as a path parameter in the API URL. This field is required.
Add Contacts to List
Adds one or more existing contacts to a specific contact list. Use this endpoint to manage list membership—for example, adding newly qualified leads to a targeted marketing segment.
Enter the name of the contact list in the List Name field. This value is used as a path parameter in the API URL. This field is required.
The JSON body should contain an array of email addresses to add to the specified list. The contacts must already exist in your Elastic Email account.
Remove Contacts from List
Removes one or more contacts from a specific contact list without deleting the contacts themselves. Use this endpoint to manage list segmentation—for example, removing contacts who have completed a campaign workflow from an active segment.
Enter the name of the contact list in the List Name field. This value is used as a path parameter in the API URL. This field is required.
The JSON body should contain an array of email addresses to remove from the specified list.
Add Campaign
Creates a new email campaign with specified recipients, content, and scheduling parameters. Use this endpoint to programmatically launch marketing campaigns from data prepared in Nexla.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email Campaigns API.
Campaign records should include the following key fields as required by the Elastic Email API:
Name — A unique campaign name (required).
Recipients — An object specifying the target lists, segments, or individual email addresses.
Content — An array of content objects defining the email subject, body, sender name, and sender email address.
Status — The campaign status at creation (e.g., Draft or Selected to schedule immediately).
Updates an existing campaign's schedule, content, recipients, or other settings. Use this endpoint to modify campaigns that are in Draft status before they are sent.
Enter the name of the campaign to update in the Campaign Name field. This value is used as a path parameter in the API URL and must exactly match the campaign name in your account. This field is required.
The JSON body should contain the updated campaign properties to apply.
Delete Campaign
Deletes a campaign by name. Use this endpoint to remove campaigns that are no longer needed from your Elastic Email account.
Enter the name of the campaign to delete in the Campaign Name field. This value is used as a path parameter in the API URL. This field is required.
Add Template
Creates a new email template in your Elastic Email account. Use this endpoint to programmatically provision reusable email designs from content managed in Nexla.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email Templates API.
Template records should include the following fields:
Name — A unique template name (required).
Subject — The default email subject line for the template.
Body — An array of content body objects specifying the content type (HTML or PlainText) and the corresponding content string.
Update Template
Updates an existing email template's subject, body, or other settings. Use this endpoint to keep email designs synchronized with content managed in an external system.
Enter the name of the template to update in the Template Name field. This value is used as a path parameter in the API URL. This field is required.
The JSON body should contain the updated template properties to apply.
Delete Template
Deletes an email template by name. Use this endpoint to remove templates that are no longer needed from your Elastic Email account.
Enter the name of the template to delete in the Template Name field. This value is used as a path parameter in the API URL. This field is required.
Send Transactional Email
Sends a transactional email to one or more recipients. Transactional emails are triggered by individual user actions—such as order confirmations, password resets, or account notifications—and are delivered immediately. Use this endpoint to drive event-based messaging from Nexla data flows.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email transactional email endpoint.
Transactional email records should include the following fields as required by the Elastic Email API:
Recipients — An object specifying the To, CC, and BCC addresses.
Content — An object containing the email subject, body (HTML or plain text), sender name, and sender email address, or a reference to a pre-built template by name.
Sends an email message to multiple recipients with support for merge fields and template-based personalization. Use this endpoint to deliver broadcast or semi-personalized messages to a defined set of recipients from Nexla data.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email email sending endpoint.
The request body follows the same schema as the Send Transactional Email endpoint and supports merge fields for personalizing content per recipient.
Adds a new sender domain to your Elastic Email account. Sender domains must be added and verified before they can be used to send emails. Use this endpoint to provision domains programmatically.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email Domains API.
The record body should include the domain name to register. After adding a domain, use the Verify Domain endpoint to trigger DNS verification.
Update Domain
Updates the configuration settings for an existing sender domain, such as tracking settings or default sender information.
Enter the domain name to update in the Domain field. This value is used as a path parameter in the API URL. This field is required.
The JSON body should contain the updated domain configuration properties.
Delete Domain
Removes a sender domain from your Elastic Email account. This operation is typically performed when a domain is no longer in use or needs to be re-added with updated settings.
Enter the domain name to delete in the Domain field. This value is used as a path parameter in the API URL. This field is required.
Verify Domain
Triggers DNS verification for a sender domain that has already been added to your account. Elastic Email checks your domain's DNS records (SPF, DKIM, and DMARC) and marks the domain as verified if the records are correctly configured.
Enter the domain name to verify in the Domain field. This value is used as a path parameter in the API URL. This field is required.
Before triggering verification, ensure that the required DNS records (SPF, DKIM, and DMARC) have been added to your domain's DNS configuration at your domain registrar or DNS provider.
DNS changes can take up to 48 hours to propagate globally. If verification fails, wait for DNS propagation to complete before retrying.
Add Unsubscribes
Adds one or more email addresses to the unsubscribe suppression list in your Elastic Email account. Use this endpoint to honor opt-out requests collected outside of Elastic Email—for example, through a custom preference center or third-party unsubscribe system—and ensure those addresses are suppressed from all future sends.
This endpoint requires no additional URL parameters. Each Nexset record will be serialized as JSON and submitted to the Elastic Email Suppressions API.
The request body should contain an array of email addresses to add to the unsubscribe list.
Maintaining an accurate unsubscribe suppression list is important for compliance with email regulations such as CAN-SPAM and GDPR. Elastic Email automatically suppresses unsubscribed addresses from all campaign and transactional sends.
Elastic Email destinations can also be manually configured to send data to any valid Elastic Email API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
All Elastic Email v4 endpoints use the base URL https://api.elasticemail.com/v4 (for example, https://api.elasticemail.com/v4/contacts to add contacts, or https://api.elasticemail.com/v4/emails/transactional to send a transactional email). For update or delete operations, include the resource identifier as a path parameter at the end of the URL (e.g., https://api.elasticemail.com/v4/contacts/{email} to update a specific contact). The Elastic Email v4 API accepts JSON for most write operations. You do not need to include the X-ElasticEmail-ApiKey header — Nexla automatically applies it from your credential.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Elastic Email endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Elastic Email until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.