Indie Dev Workflow

A Support Workflow for SaaS Infrastructure Migrations

A practical support workflow for preparing customers, managing migration-day questions, coordinating incident updates, and capturing lessons after a SaaS infrastructure cutover.

SupportMe12 min read

An infrastructure migration is not only an engineering project. It is also a customer-support event.

For a solo developer or small SaaS team, the most useful workflow is simple: prepare one source of truth, identify affected customers, draft messages before the cutover, connect incoming tickets to the migration, and keep one person responsible for customer communication.

The workflow below covers five stages:

  1. Define the expected customer impact.
  2. Prepare support before the migration.
  3. Communicate before the cutover.
  4. Triage and update customers during the migration.
  5. Close the event and improve the support material.

Start with the customer impact, not the infrastructure change

Customers rarely need a detailed explanation of your new hosting provider, network architecture, or database topology. They need to know what the change means for them.

Before writing any customer message, answer these questions:

  • Which features could become unavailable or slow?
  • Will customers need to stop making changes during the migration?
  • Could API requests, webhooks, emails, or background jobs be delayed?
  • Will IP addresses, domains, certificates, or allowlists change?
  • Is any customer action required?
  • What is the planned start time, time zone, and maintenance window?
  • What will customers see if the migration fails?
  • Where will updates appear?

This customer-impact summary should be separate from the engineering runbook. The engineering document can describe replication, DNS changes, load balancers, and database checkpoints. The support version should describe observable effects in plain English.

AWS recommends documenting cutover tasks, timing, sequencing, owners, contingency plans, and rollback procedures before a migration. It also recommends defining communication channels and assigning responsibility for migration messaging. These practices can be scaled down to fit a two-person team just as easily as a large organization (AWS pre-cutover guidance, AWS communication and governance guidance).

Create one migration support record

Use a single internal record as the source of truth for support. It might be an issue, document, or ticket, but it should have a permanent link and a clear owner.

Include:

| Field | What to record | |---|---| | Migration name | A short, consistent label | | Support owner | The person responsible for customer messages | | Engineering owner | The person making cutover decisions | | Schedule | Start time, expected duration, and time zone | | Affected areas | Features, regions, plans, integrations, or customer groups | | Expected symptoms | Errors, latency, delayed jobs, or temporary read-only behavior | | Customer action | Required steps, or an explicit statement that none are required | | Status source | The canonical internal update location | | Public source | Status page or other customer-facing update location | | Rollback conditions | The agreed signals that trigger rollback | | Approved replies | Pre-migration, in-progress, delay, rollback, and completion messages | | Verification checklist | Customer journeys that must work before declaring completion |

AWS specifically recommends predefined rollback checkpoints, a data-handling strategy, and a named person who decides whether to fix forward or roll back. That decision becomes more complicated after the new environment has accepted writes, because the old environment may no longer contain the latest data (AWS cutover and rollback guidance).

Support should therefore never promise that a rollback will be instant unless engineering has confirmed that it is technically safe.

Prepare the inbox before announcing the migration

A lightweight inbox setup prevents migration questions from being mixed with unrelated support work.

Create a migration tag or category, such as migration-2026-08. Then prepare saved searches for:

  • all migration-related conversations;
  • unanswered messages from affected customers;
  • reports of data loss or incorrect data;
  • reports from strategically important or heavily affected accounts;
  • tickets awaiting an engineering answer;
  • customers who need a final follow-up.

When several customers report the same behavior, connect those reports to the central migration record instead of investigating each one independently. Zendesk documents a comparable problem-and-incident model in which multiple incident tickets are linked to one underlying problem ticket (Zendesk problem and incident tickets).

Even if your support tool does not provide linked tickets, you can reproduce the pattern with a shared tag and a link to the internal record.

Build a small message library

Write the important messages while the team is calm. At minimum, prepare five drafts.

Planned-maintenance notice

Include:

  • what is changing at a customer-visible level;
  • when the work begins;
  • the time zone;
  • the expected impact;
  • whether customer action is required;
  • where updates will be published;
  • how to report an unexpected problem.

Do not describe the maintenance as “zero downtime” unless the migration design and tests justify that statement. “We do not expect an interruption” is more precise when there is still uncertainty.

Migration-started update

Confirm that work has begun and repeat the expected impact. Give the time of the next update, even when you expect the migration to finish before then.

Delay or degraded-service update

State what customers are experiencing, which parts of the product are affected, and what they should do in the meantime. If the cause is not confirmed, say that it is still under investigation.

Atlassian’s incident communication guidance recommends acknowledging an issue early, describing the known impact, communicating at an appropriate regular cadence, and keeping messages consistent across channels (Atlassian incident communication tips).

Rollback update

Explain that the service is being returned to the previous environment. Avoid presenting rollback as a failure of the team; it is a planned risk-control measure. Tell customers whether work completed during the cutover window is safe, delayed, or still being verified.

Completion update

Confirm what has been restored and how it was verified. Mention any remaining limitations. Do not mark the migration complete merely because traffic has moved.

A useful completion check covers real customer journeys such as:

  • signing in;
  • loading and updating account data;
  • completing a primary product action;
  • using the API;
  • receiving webhooks or emails;
  • processing scheduled or background work;
  • viewing billing or subscription information.

Segment customers by likely impact

One announcement may not fit every account.

For example, an IP address change matters to customers with network allowlists but may be irrelevant to everyone else. A temporary write freeze matters more to customers running imports than to customers who only view dashboards.

Useful segments might include:

  • customers who must take action;
  • API or webhook users;
  • accounts in an affected region;
  • customers with allowlists or private networking;
  • customers using a feature that will be temporarily unavailable;
  • all other active customers.

Send the narrowest accurate message to each group. This reduces confusion and makes required actions easier to notice.

Keep a record of who received each notice. If the schedule or required action changes, you will know which customers need a correction.

Define migration-day support roles

A small team does not need a complex command structure, but it does need clear ownership.

For a solo developer, write down which role you are performing at each point. For a small team, assign:

  • Cutover lead: performs or coordinates the technical work.
  • Support lead: monitors customer messages and publishes approved updates.
  • Decision owner: authorizes continuation, pause, or rollback.
  • Verifier: tests customer-facing workflows after each major checkpoint.

One person may hold several roles. The important constraint is that support communication should not depend on interrupting an engineer for every sentence.

The support lead needs a short internal update format:


Status:
Customer impact:
Affected scope:
Known workaround:
Data risk:
Next engineering checkpoint:
Next customer update:
Approved wording:

Unknown information should be labeled as unknown. A missing answer must not be converted into a reassuring guess.

Use a consistent ticket-triage path

Every migration-related message should pass through the same decision tree.

1. Is the report within the expected impact?

If yes:

  • attach the migration tag;
  • send the approved explanation;
  • link to the public status source when appropriate;
  • keep the conversation open if a later confirmation is required.

2. Is it a new symptom?

If yes:

  • record the account, time, region, action attempted, and exact error;
  • ask only for diagnostic information engineering can use;
  • remove secrets, credentials, and unnecessary personal data;
  • escalate it to the cutover lead;
  • tell the customer when they will receive another update.

3. Does it suggest incorrect or missing data?

Treat the report as high priority. Do not advise the customer to repeat write operations until engineering confirms that doing so is safe. Repeated imports, payments, or configuration changes can make investigation harder if the operation is not idempotent.

4. Is it unrelated to the migration?

Follow the normal support process. Similar timing does not prove a common cause.

This final check matters because assigning every problem to the migration can hide a separate incident.

Monitor both systems and customer reports

Technical monitoring and support reports reveal different parts of the migration.

Google’s Site Reliability Engineering guidance recommends watching four broad signals for user-facing systems: latency, traffic, errors, and saturation. It also notes that end-to-end checks may be necessary to detect responses that are technically successful but contain the wrong result (Google SRE: Monitoring Distributed Systems).

For migration support, combine those signals with:

  • ticket volume by symptom;
  • affected accounts and regions;
  • repeated reports about one feature;
  • reports of stale, missing, or duplicated data;
  • failed customer verification steps;
  • differences between the old and new environments.

A phased cutover can limit exposure while the team evaluates the new environment. Both AWS and Google describe gradual or canary-style rollouts as ways to evaluate a change with only part of production traffic before expanding it (AWS cutover guidance, Google SRE: Canarying Releases).

When a phased migration is technically possible, support feedback should be part of the decision to increase traffic—not merely something reviewed after the rollout is complete.

Keep customer updates factual and useful

A good update answers four questions:

  1. What is happening?
  2. Who or what is affected?
  3. What should the customer do now?
  4. When will the next update arrive?

Here is a hypothetical example:

We are investigating delayed webhook delivery following today’s infrastructure migration. Webhooks created after 14:20 UTC are queued; we have not confirmed any lost events. You do not need to resend them at this time. We will provide another update by 15:00 UTC.

This message distinguishes confirmed facts from uncertainty. It also prevents customers from taking an action that might create duplicates.

Avoid:

  • unsupported estimates;
  • declaring data safe before verification;
  • copying raw engineering notes into customer replies;
  • blaming an infrastructure provider;
  • using “resolved” when monitoring has improved but customer workflows have not been tested;
  • sending different explanations through email, support, and the status page.

Keep AI-generated replies under human review

An AI drafting assistant can help adapt an approved migration update to an individual customer’s question. It should not independently decide whether the migration is safe, whether data was lost, or whether an incident is resolved.

For teams using a human-in-the-loop system such as SupportMe, the safest pattern is to place the current approved facts in the knowledge base, generate a draft, and review every message before sending it. SupportMe’s supplied product design requires explicit approval and learns from edits, which fits a migration workflow where wording must evolve without removing human control.

During the event:

  • replace obsolete migration notes promptly;
  • keep unverified theories out of the knowledge base;
  • review dates, times, affected features, and workarounds in every draft;
  • reject any draft that adds certainty not present in the approved update;
  • stop using a saved reply once its underlying status changes.

AI can reduce repetitive writing. Operational decisions and factual approval should remain with the people running the migration.

Close the support event carefully

After engineering reports a successful cutover:

  1. Run the customer-facing verification checklist.
  2. Check the inbox for unresolved or contradictory reports.
  3. Publish the completion message.
  4. Follow up with customers who reported specific problems.
  5. Keep enhanced monitoring in place for an agreed observation period.
  6. Close or reclassify related tickets.
  7. Record unresolved limitations separately.
  8. Update support documentation and saved replies.

Do not immediately discard the old environment solely because the first tests pass. AWS advises reviewing application health, performance metrics, and successful regression testing before decommissioning the source environment (AWS application migration process).

Finally, review the support workflow itself:

  • Which customer questions were not anticipated?
  • Which messages required repeated manual corrections?
  • Did support receive engineering updates quickly enough?
  • Were customers told when to expect the next update?
  • Which reports identified problems that monitoring missed?
  • Did the team close any conversation before confirming the customer’s issue was resolved?
  • What should be added to the next migration runbook?

A compact support checklist

Before the migration

  • Define customer-visible impact.
  • Identify affected customer segments.
  • Assign support and decision owners.
  • Create the central migration record.
  • Prepare tags, views, and escalation rules.
  • Draft five core messages.
  • Confirm the public update channel.
  • Test the support escalation path.
  • Document rollback wording and data caveats.

During the migration

  • Announce the start.
  • Monitor the inbox and status signals.
  • Link related reports to the migration.
  • Escalate new symptoms with usable evidence.
  • Publish updates at the promised times.
  • Keep all channels consistent.
  • Correct earlier information explicitly when facts change.
  • Confirm customer impact before expanding a phased rollout.

After the migration

  • Verify complete customer journeys.
  • Publish a precise completion update.
  • Follow up on unresolved reports.
  • Maintain heightened monitoring for the planned period.
  • Update documentation and approved replies.
  • Record lessons for the next cutover.

Conclusion

A reliable migration support workflow turns technical events into clear customer communication. For a small SaaS team, the essentials are one source of truth, named ownership, prepared messages, consistent ticket triage, regular factual updates, and verification based on real customer workflows—not merely a successful infrastructure switch.

References

Tags

SaaS infrastructure migrationcustomer support workflowmigration communicationcutover supportincident communicationSaaS operationscustomer notifications

Related posts