Segment logo

Track a newsletter signup as an event

Each subscribe form submission fires a "Signed Up" track event carrying the source, so every destination counts the signup the same way.

When this happens

New Submission on your "Subscribe" form

Do this

Create a "Signed Up" track event in Segment with source and plan as properties

One-directional. A submission triggers the action — nothing is written back into your form.

A subscribe form is usually the smallest form on a site and the one with the most placements — footer, blog post, slide-in. Sending each signup to Segment as a "Signed Up" event puts that scatter into one shape.

Content teams use this so attribution survives the handoff. The event carries a source property, which means the analytics destination, the email tool and the warehouse all count the same subscriber the same way, instead of three tools quietly disagreeing about where the list is growing from.

Setting it up

  1. 1

    Publish the Newsletter Signup Form and embed it wherever you collect subscribers. The embed script is two lines of HTML, so a footer and a blog post can share the same published form.

  2. 2

    In Zapier, set the New Submission trigger to watch the subscribe form, then pull a real sample submission so the three field labels appear in the mapping dropdowns.

  3. 3

    Add Segment as the action, choose Create Track Event, and type Signed Up as the event name exactly — Segment treats "Signed Up" and "signed up" as two separate events in every report downstream.

  4. 4

    Map Email Address to the userId so the event attaches to a person rather than an anonymous session.

  5. 5

    Type the source property in by hand — "blog-footer", say — because it describes where the form sits, not something the subscriber fills in. If you need to tell two placements apart, publish a second form and give it its own Zap.

  6. 6

    Set the plan property to a constant such as "newsletter", so signup events line up with paid-tier events that use the same property name in your warehouse.

  7. 7

    Send Topics You're Interested In through as a topics property, then test with one signup and confirm the event and its properties appear in the Segment source debugger before switching the Zap on.

What maps where

Using the Newsletter Signup Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldSegment
Email AddressuserId on the Signed Up track event
First NamefirstName property
Topics You're Interested Intopics property on the Signed Up event

Variations worth knowing

Send an identify call first

A track event alone gives Segment an ID and an action, not a person. Add a Create Identify Call action ahead of the track step, mapping Email Address to the email trait and First Name to firstName. The email destination then has a name to greet the subscriber with on the welcome message.

Use topic interests as audience input

The topics property is the only thing distinguishing one subscriber from another on a three-field form. Send it as an array rather than a joined string, and Segment audiences can build a segment per topic without anyone parsing text later.

If something isn't arriving

Signups appear in Segment with no source, so every subscriber looks like it came from nowhere.

The source property was left as a mapped field rather than typed in. There is no source field on a three-field subscribe form — set it as a static value in the Zap for that placement.

Topics arrive in Segment as one long comma-separated string.

Multiple-choice answers are flattened by default. Insert a Zapier formatter step that splits on the comma before the Segment action, and the topics property lands as a proper list.

Frequently asked questions

How do I track where a newsletter signup came from?

Set the source as a static property in the Zap, one Zap per placement. The subscribe form itself does not know which page it was embedded on, so the value has to be attached at the automation step rather than collected from the reader.

Do I need an identify call as well as the Signed Up event?

Only if you want the subscriber's name to persist as a profile trait. A track event records that a signup happened; an identify call records who the person is. Most teams run both, in that order, from the same Zap.

What happens if someone subscribes twice?

Segment receives two Signed Up events under the same userId, because the connection is one direction and the form has no way to check what Segment already holds. Deduplicate in the warehouse or in your email tool, not in the form.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free