PigeonAtlas
← Integrations

Follow up a signup with a consented email sequence

Four API calls turn a guide download or a course signup into five short emails over two weeks, sent from your newsletter domain and stopped the moment the person unsubscribes or buys.

Updated October 15, 2026

Someone downloads your free guide. The next two weeks decide whether they ever hear from you again: one email a few days apart, each teaching one thing and pointing to the next step. PigeonAtlas sequences do that from your own app, on any platform that can make an HTTP request, with four calls. The full contract is on the Sequences documentation page.

What you need first

Send the words they agreed to and when, exactly as your form showed them. Without consent the request is refused, and someone who unsubscribed before stays unsubscribed.

await fetch("https://pigeonatlas.com/v1/contacts", {
  method: "PUT",
  headers: { Authorization: `Bearer ${process.env.PIGEONATLAS_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    email, name,
    audience: "acme-guides",
    consent: { source: "guide:pricing-teardown", text: consentText, at: new Date().toISOString(), ip },
    tags: ["guide:pricing-teardown"],
  }),
});

2. Keep the sequence in your code

Define the steps once and send the whole definition on every deploy with PUT /v1/sequences/pricing-guide. Each step has a key, a delay_hours from enrollment, a subject and a body. Changing a step's words never sends it again to anyone who already got it. Use {{name|there}} and {{data.anything}} for merge variables and {{unsubscribe_url}} for the link; values are escaped in HTML.

3. Enroll them

await fetch("https://pigeonatlas.com/v1/sequences/pricing-guide/enrollments", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PIGEONATLAS_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ email, data: { guide_title: "The pricing teardown" } }),
});

It is safe to retry: a person goes through a sequence once, and a second call answers "created": false and changes nothing. A 409 not_subscribed means the person is not on the list (or left it); there is nothing to retry.

4. Stop it when they buy

await fetch(`https://pigeonatlas.com/v1/sequences/pricing-guide/enrollments/${encodeURIComponent(email)}`, {
  method: "DELETE",
  headers: { Authorization: `Bearer ${process.env.PIGEONATLAS_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ reason: "converted" }),
});

Unsubscribing, a spam complaint and a hard bounce stop sequences on their own; you do not need to call anything for those.

What sequences are not for

Sequences only reach people who joined the list with a consent you recorded. They are not for cold outreach, bought lists or scraped addresses, and our Acceptable Use Policy does not allow those by any route. Each step counts as one email toward your allowance, and sequences are included from the Growth plan.

A thousand a month free, no card

Enough to verify a domain and run a small app from it.

Start sending

Other platforms