Migration failed run email notification: what we send

Shuttio now emails you when a sample or full run fails, and again 24 and 72 hours after a finished sample with no full run. Each email links to the migration.

Last updated: 14 Nov 2026

Shuttio now sends an email when a sample or a full run fails. It also sends two emails after a finished sample if you have not started the full run: one 24 hours later, one at 72 hours. You do not need to watch the migration page. Open the link in the email and continue from there.

What changed

Two kinds of email are new.

A failed run. When a sample or a full run fails, one email names the migration, for example "Your HubSpot sample stopped" or "Your HubSpot full run stopped". It gives the run's error text, cut at 300 characters. If the run recorded no error, the email says "The run did not record a cause." It links to the migration and says that records already imported stay and are not duplicated when you run again. This email replaces the generic error notice.

A sample with no full run. When a sample finishes, Shuttio waits 24 hours. If the full run has not started, it sends the first email. If the full run still has not started 48 hours after that, it sends a second email, 72 hours after the sample. Each email states:

  • the number of records in the sample,
  • the number of failures, or "no failures",
  • the number of records left in the source, when the source was counted and records remain,
  • a link to the migration, where you start the full run.

If the source was not counted or no records remain beyond the sample, the email says the full run imports everything in the source. The second email ends with "This is the last email about this sample." Nothing follows it.

Replies to all of these emails go to help@shuttio.com, and a person answers.

How to use it

  1. Run a sample as usual. It copies 50 records per object, with the parent records linked to deals.
  2. When the sample finishes, check it in Shuttio. The per-record report lists every record with its result, and failures come with a reason.
  3. If you are not ready, do nothing. The 24-hour email brings you back to the same migration page.
  4. If a run fails, open the link in the failure email. The error text in the email is the run's recorded error, cut at 300 characters.
  5. Fix the cause, then run again. Every write is keyed on the stable source id, so a retry does not create duplicates.
  6. When the sample looks right, click "Run full migration". The price is shown before the full run starts. Into Attio the migration is free. Into Clarify or Odoo, a CRM migration is priced once by record count, from $249.
  7. If you reply to an email, your message goes to help@shuttio.com.

What it does not cover

  • A started full run stops the follow-ups. Shuttio sends neither email once a full run has started. It also sends neither if the migration has been deleted.
  • Only two follow-ups per sample. The 72-hour email is the last one about that sample. There is no third reminder.
  • Failures send one email each. A failed run sends one email. If the same migration fails again later, that second failure sends its own email.
  • Internal accounts get neither email. Accounts on Craftt and Shuttio addresses keep the older notices.
  • Child runs do not email. The runs that make up a larger plan send no individual email. The plan sends one notice when it completes.
  • Email is best-effort. If an email cannot be sent, the run and its result are not changed. The migration page still shows the state, the error and the per-record report.
  • No opt-out setting. The code has no setting to turn these emails off.

FAQ

Does the failure email mean my data is damaged? The email says records already imported stay and are not duplicated when you run again. To remove what a migration created, cancel it: cancelling deletes the records the migration created, and the objects, fields and options it created, in reverse order. An Attio object the migration created is deleted only when it is empty, otherwise it stays and is listed. In Odoo, an added field is dropped only while no record holds a value in it. Structure that existed before is never touched, and a record that already existed and was matched stays.

Will I get the 24-hour email if I start the full run at hour 20? No. Before each send, Shuttio checks whether a full run has started. If it has, the email is skipped.

Why does the email show a number of records left in the source? Shuttio subtracts the sample's record count from the source total it counted. If it did not count the source, or no records remain, the email leaves the number out and says the full run imports everything in the source.