A good Instagram conversation produces something worth keeping: a name, an email, an order number, a stated interest. If that only exists in the thread, it is gone the moment the thread scrolls away. Getting it into the system you already run on is the difference between a chat and a lead.
The usual approach, and its cost
The common answer is a middleman automation service: the DM tool fires a webhook, a third service catches it, and that service writes to your CRM. It works, and it adds a subscription, another place for credentials to live, and a second dashboard to check when something silently stops.
The silent stopping is the real cost. A broken connector between two tools rarely announces itself; you notice a fortnight later when the list looks thin, and by then you cannot recover the conversations you did not record.
For routine cases, that hop is avoidable. MuChat has a Send to app step that writes directly, using a key from your own account.
What the step can write to
- HubSpot: create or update a contact.
- Mailchimp: add or update a subscriber and apply tags. Double opt-in applies unless the contact is marked as already opted in.
- Klaviyo: create or update a profile and add it to a list.
- Shopify: look up an order's status and tracking by order number, which requires the email on that order, or create and update a customer.
- Google Sheets: append a row, via an Apps Script you paste into your own sheet.
Designing the flow around a refusal
Every one of these steps can fail: a wrong email, a revoked key, an order number that does not exist. The flow branches on Done and Failed, and the Failed branch is the one worth writing carefully. A person who mistyped their email should be asked again, not dropped silently into a gap where they think they signed up and you have no record of them.
- 01Ask for the email in the conversation, and read it back so a typo is visible.
- 02Send to app.
- 03On Done, confirm in plain words what they have been added to.
- 04On Failed, say so and offer one retry rather than repeating the whole flow.
Reading the address back is the cheapest quality control there is. People mistype their own email more often than they admit, and a confirmation line catches it while the person is still in the conversation.
The Shopify case is different
Order lookup is the question support teams answer most: where is my order. The step can fetch an order's status and tracking from the order number, provided the email on the order is given too. That pairing is deliberate: without it, an order number alone would let anyone ask about anyone's delivery.
Handled well, this is the automation with the clearest return, because it removes work rather than creating it. The flow answers the routine case in seconds and hands the exceptions to a person with the order already on screen.
What to capture, and what to leave
Capture the fields you will actually use in the next thirty days. A form that asks for company size, budget and timeline in a DM reads like an interrogation and produces worse data than one question asked well. If you cannot say which email you will send to this contact, you do not yet need their email.
When a spreadsheet is the right answer
Not every business needs a CRM. If the process is a person working through a list, appending a row to a Google Sheet is a legitimate destination, not a downgrade. It also makes a useful first step while you work out which fields you actually use, and moving from a sheet to a CRM later is easy in a way that the reverse is not.
Keys belong to you
Each connection uses a key from your own account, which has two consequences worth understanding. The access is exactly what that key allows, so you can scope it, and revoking it is done in the tool that issued it rather than by asking anyone. If someone leaves your team, the credential trail is in systems you already control.
It also means the connection breaks when a key is rotated. That is worth knowing in advance: if a flow suddenly starts taking its Failed branch, an expired or rotated key is the first thing to check.
Do not write to everything at once
It is tempting to send a new contact to the CRM, the email tool and a spreadsheet together, on the grounds that storage is cheap. The cost is not storage, it is reconciliation: three systems with three versions of the same person, and no agreement about which is right. Pick the one that the next human action depends on, write there, and add a second destination only when you can say what it is for.
One last practical note: test the failure path before you trust the happy one. Type a deliberately malformed email into your own flow and check that the Failed branch says something a customer could act on.
Where to start
Pick the one system your team opens every day and connect that first. Build a single flow that captures one field and writes it, then watch a week of real conversations before adding a second destination: /product/flow-builder and /help/getting-started.
Try it on your next post
Set up a comment-to-DM automation in about ten minutes. The Free plan needs no card.
Get started free