Guides

✉️

Email Capture Integrations

How to route captured email addresses to Adobe Tags, Salesforce Marketing Cloud, and Marketo — with no coding required.

Experience Lab modals and banners connect to Klaviyo, Mailchimp, HubSpot, and other platforms directly from the browser. Adobe Tags, Salesforce Marketing Cloud, and Marketo require a small amount of extra wiring. Select your platform below for the full setup guide.

1

Choose Data Layer Event in Experience Lab

Set Email Platform to Data Layer Event. Enter an event name — e.g. email_capture. Generate the script and paste it into your Adobe Target activity as a Custom Code modification.

Email Capture
Email Platform ★
Data Layer Event
Event Name
email_capture
Button Label
Subscribe

The script pushes { event, email, source } to window.dataLayer when a visitor submits the form. Adobe Tags listens for it via the interceptor rule below.

🪟

Experience Lab

Modal / Banner

Visitor submits the email form. The generated script fires immediately in the browser.

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "email_capture",
  email: "user@example.com",
  source: "modal"
});
1 / 5
2

Add a Library Loaded rule with the interceptor

In Adobe Tags, create a Rule with a Library Loaded (Page Top) event. Add a Core → Custom Code action and paste the interceptor below. It wraps window.dataLayer.push and fires _satellite.track("email-captured", …) when your event name matches.

experience.adobe.com/#/@org/data-collection/…/rules/new
AData Collection
Properties › My Website › Rules › Observe dataLayer — email capture
Rule Name
Observe dataLayer — email capture
Events1
CoreLibrary Loaded (Page Top)
Actions1
CoreCustom CodeJavaScript
// Intercept window.dataLayer.push()
window.dataLayer.push = function(obj) { … }
Adobe Tags — Library Loaded Custom Code action
// Replace 'email_capture' with your event name from Experience Lab.
(function() {
  window.dataLayer = window.dataLayer || [];
  var _origPush = window.dataLayer.push.bind(window.dataLayer);
  window.dataLayer.push = function(obj) {
    _origPush(obj);
    if (obj && obj.event === 'email_capture' && obj.email) {
      if (typeof _satellite !== 'undefined') {
        _satellite.track('email-captured', { email: obj.email, source: obj.source });
      }
    }
  };
})();
3

Add a Direct Call Rule to handle the email

Create a new Rule with a Core → Direct Call event, identifier email-captured. In the Custom Code action, event.detail.email holds the captured address — forward it to SFMC, Marketo, or any API endpoint.

experience.adobe.com/#/@org/data-collection/…/rules/new
AData Collection
Properties › My Website › Rules › Handle email capture
Rule Name
Handle email capture
Events1
CoreDirect Callemail-captured
Actions1
CoreCustom Code
var email = event.detail.email;
Adobe Tags — Direct Call Rule action
// event.detail contains { email, source } from the interceptor.
var email = event.detail.email;
var source = event.detail.source;

// Send to any endpoint, or add SFMC / Marketo logic:
var x = new XMLHttpRequest();
x.open('POST', 'https://your-endpoint.com/subscribe', true);
x.setRequestHeader('Content-Type', 'application/json');
x.send(JSON.stringify({ email: email, source: source }));
💡Test before you launch
After generating and deploying the script, submit a test form on a staging activity. Check your platform's subscriber list within 30 seconds — the entry should appear. If it doesn't, double-check the API key scope and list ID.

✉️ Want us to connect your email capture end to end?

Experience Lab sets up the full stack — Experience Lab modal or banner, Adobe Tags data layer rules, Make scenario, and your SFMC or Marketo integration. We handle the wiring, testing, and QA so your team can focus on the campaign.

Let's talk