Brevo → Sendtim

Migrate from Brevo to Sendtim

4 min read · Updated

Brevo and Sendtim think about contacts in much the same way, which makes this one of the easier moves: contacts with attributes, grouped into lists, filtered by conditions. The work is in the blocklist and in carrying your consent record across intact.

The same ideas, different words

BrevoSendtim
Contact attributeContact field or custom property
ListList
FolderNothing — lists are flat; use a naming convention
SegmentSegment
Email campaignCampaign
Automation workflowAutomation
Blocklisted contactSuppression
Transactional emailTransactional template, sent over the API

Brevo’s standard attributes (FIRSTNAME, LASTNAME, SMS) map onto Sendtim’s own contact fields. Everything you added yourself becomes a custom property, which is also a merge tag: an attribute called PLAN becomes {{plan}} in an email.

Folders have no equivalent, by design — a list in Sendtim records how someone arrived, and a segment answers everything else. If you used folders to keep lists organised, a prefix in the list name does the same job.

1. Export from Brevo

Export your contacts with all attribute columns included, and export the blocklist separately. The blocklist is the part people forget, and it is the part that cannot be rebuilt.

  • Contacts, per list if you intend to keep the same list structure, with every attribute column.
  • Blocklisted contacts — unsubscribes and hard bounces. These become suppressions, not contacts.
  • Campaign statistics for the last year, so you have a baseline to compare against after the move.
  • The HTML of any email you plan to rebuild, plus a written description of each automation workflow.

If you are on a paid plan, export before you downgrade. Export access usually goes with the plan, and nobody will retrieve it for you afterwards.

3. Load suppressions, then contacts

Import the blocklist into Sendtim’s suppression list first. After that, suppressed addresses are skipped by every import whatever the file says, so a later pass with an older export cannot put anyone back.

  1. Go to Contacts → Import and upload the contact file. Up to 200 MB, processed in the background.
  2. Map FIRSTNAME and LASTNAME to first and last name; Sendtim recognises most common headers without help.
  3. Give every remaining attribute column a custom property key — lowercase, no spaces: plan, consent_date, account_manager.
  4. Choose the list these contacts join under Options. Run one import per list if you are keeping Brevo’s structure.
  5. Check Recent imports afterwards for created, updated and rejected counts.

4. Rebuild campaigns and workflows

Rebuild emails in the Sendtim editor rather than pasting Brevo’s exported HTML. The export carries Brevo’s tracking and template wrapper; pasting it into a Custom HTML block brings all of that with it, including links that still point at the old platform.

Brevo workflows become automations: a trigger, waits, conditions and sends. Rebuild them one at a time and walk yourself through each from the real trigger before any contact reaches it.

Contacts already part-way through a Brevo workflow are the one thing you cannot migrate — that state exists only inside Brevo. Either let the old workflow finish for people already in it while new signups start in Sendtim, or accept a small gap and tell those contacts nothing changed.

5. Repoint whatever writes contacts

Brevo’s contact API maps closely onto Sendtim’s. Both upsert by email, both take a properties object, both accept list membership in the same call.

curl -X POST https://sendtim.com/api/v1/contacts \
  -H "Authorization: Bearer $SENDTIM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "firstName": "Ada",
    "lastName": "Lovelace",
    "customProperties": { "plan": "trial" },
    "listIds": ["YOUR_LIST_ID"],
    "consentGiven": true,
    "consentSource": "api"
  }'

A failed request always returns the same shape — { "error": { "code", "message", "details" } } — so one error handler covers every endpoint. Rate limits are per key and per minute: 60 on Free, 300 on Starter, 600 on Pro and Scale.

6. Cut over

  • Add and verify your sending domain in Sendtim, publishing SPF, DKIM and DMARC. Leave Brevo’s records up until it has stopped sending.
  • Start with your most engaged contacts and widen over a week or two rather than sending to everyone on day one.
  • Give each email type one owner. Switch Brevo off for that type the day Sendtim takes it on.
  • Watch hard bounces and complaints for a fortnight, against your Brevo baseline rather than an industry average.

Why each of those matters is set out in Switch email platforms without losing deliverability.

More resources