Skip to content

Connector · CRM and email lists

Mailchimp, in every client’s workflows.

Add to an audience, update a subscriber, or start when someone joins the mailing list, with the client’s own Mailchimp account.

Triggers
2start a workflow
Actions
2steps in a workflow

Start a workflow when something happens in MailchimpBeta

By webhook where Mailchimp sends one, by checking where it does not. A webhook is checked once a day to see it is still on, and if Mailchimp turns it off the alert carries a Reconnect button.

  • Someone joins the mailing listPolledA new subscriber on an audience (a signup form, an import), checked every 15 minutes.
  • A subscriber’s details changePolledA member of an audience changed (their details, tags, or unsubscribed), checked every 15 minutes.

Do it in Mailchimp

A step with its own fields: values from the run go in by name, and what Mailchimp answers is there for the next step.

  • Add to an audienceAdds the email to an audience, or updates its merge fields if it is already there: a lead who submits twice is one subscriber. The status applies to a new subscriber only; an existing one keeps theirs (change it with “Update a subscriber”).
  • Update a subscriberChange a subscriber’s status or merge fields, found by email. Fields left empty keep their value.

Connect the client’s Mailchimp

On the client’s page in Thrum: Add credential, type Mailchimp API key.

In the client’s Mailchimp: Profile → Extras → API keys → Create A Key. The server prefix is the part after the dash (us21).

The key is stored encrypted and bound to that client: another client’s workflow cannot use it, and no template or pack copies it.

Mailchimp’s API documentation

Via HTTP

Or by web request: add a subscriber to an audience

Leads who ask for it join the client’s newsletter, with Mailchimp’s own confirmation email. The web request step, filled in: paste it, swap in the client’s ids, add their key.

  1. 01

    Add the client’s credential

    On the client’s page in Thrum: Add credential, type Other (JSON). In the client’s Mailchimp: Profile → Extras → API keys → Create A Key. Store it after any word and a colon, as thrum:<key>: Mailchimp takes it as a password with any user name.

    {
      "basic": "thrum:…-us21"
    }
  2. 02

    Add a web request step

    Name it “Add to Mailchimp”, set it as here, and pick the credential. Values in double braces are read from the run: here, the lead the form brought in.

    DC
    The end of the API key, after the dash: us21.
    AUDIENCE_ID
    Audience → Settings → Audience name and defaults → Audience ID.
    {
      "method": "POST",
      "url": "https://DC.api.mailchimp.com/3.0/lists/AUDIENCE_ID/members",
      "headers": {
        "Authorization": "Basic {{ credential.basic | base64 }}"
      },
      "body": {
        "email_address": "{{ lead.email }}",
        "status": "pending",
        "merge_fields": {
          "FNAME": "{{ lead.name }}"
        }
      }
    }
  3. 03

    What goes out, and what comes back

    `pending` sends Mailchimp’s confirmation email, so only people who say yes are subscribed. Use `subscribed` only when the form asked for consent.

    POST https://DC.api.mailchimp.com/3.0/lists/AUDIENCE_ID/members
    content-type: application/json
    authorization: Basic dGhydW06Zml4dHVyZTg4OGtleS11czIx
    
    {
      "email_address": "nadia@example.com",
      "status": "pending",
      "merge_fields": {
        "FNAME": "Nadia Karim"
      }
    }
    200
    {
      "id": "7d7a13e1ff4ef6ba3bbd2c6a3c1c8e0c",
      "email_address": "nadia@example.com",
      "status": "pending",
      "list_id": "AUDIENCE_ID",
      "merge_fields": {
        "FNAME": "Nadia Karim"
      }
    }

Watched like everything else

When Mailchimp stops answering or refuses the client’s key, you hear about it, and your client does not.

A failing request
Tried 3 times, 5 seconds apart and doubling, only for errors a retry can fix
A service that asks for a pause
Given it, up to an hour
Requests at once, per account
2, per worker; the rest wait their turn
Timeout
15 seconds, unless the step sets its own
Private and internal addresses
Refused, on every redirect too
The client’s key
Encrypted, bound to the client, and kept out of every run record
A step that keeps failing
Marks the workflow Degraded and alerts you, not the client

Mailchimp and its logo are trademarks of their owner, used here only to say what Thrum works with; no endorsement is implied.

Thrum is cooking.

Get early access and you’ll be among the first in. Early members get a launch perk.