← All posts

How to Send Personalized Instagram DMs from an Excel or CSV List

Prepare an Excel or CSV recipient list, use custom columns as message variables, check the first-row preview, and start a paced Instagram DM queue.

An Excel or CSV list can become a personalized Instagram DM campaign without copying each message by hand. DM Studio for Instagram reads extra columns as message variables and sends the queue when you start it. Here is how to prepare the file and check it before sending.

What does the spreadsheet need?

Use one recipient per row and an exact username header. Add columns for every detail that changes, such as first_name, topic, and proposal, then use matching {{variable}} names in the message. A blank cell becomes blank text, while a missing column can leave the token in the message.

The phone preview resolves the first row with a username; it does not validate every row. Review the full table, keep the original file, and send from a fresh import when custom variables matter. Loading a saved CSV campaign can lose custom column values, so reimport and inspect the original before a later run.

Spreadsheet rows flowing into personalized message drafts with different recipient details
Structured spreadsheet columns can supply the details that vary from one message to the next.

Prepare your first personalized campaign

Turn a small, reviewed shortlist into individual messages without rewriting each one. Download the starter CSV, replace its demo rows, and check the first message before you prepare the campaign.

Demo only: demo_replace_me_01 and demo_replace_me_02 are fictional labels, not verified recipients. Do not import or send the sample as-is. Replace every username and detail with a person you genuinely intend to contact, using details you have checked and their stated contact preference.

  1. Choose your starting list. If you have a spreadsheet, keep one person per row and the exact header username. If you need candidates, use Import followers or Import following for an available public account list, then review the candidates and put your chosen recipients into the CSV. Collection can stop or return fewer people than requested; it does not guarantee a complete list.
  2. Fill the personalization columns. Keep first_name, topic, and proposal and fill all three for each person. The sample contains invented names and observations. Replace them with verified details and an offer you can actually make. Save as a UTF-8 CSV.
  3. Import your edited file. In the same Chrome browser where you are logged into Instagram, open DM Studio, check the connected account, and choose Send DM → Excel / CSV → Select file. Choose Edit all → and inspect every username and column. The first ten rows are checked ahead of time; later rows are checked when the queue reaches them.
  4. Paste this template and check the phone preview. It displays the first row with a username, so inspect all other rows yourself as well. Fix account lookup errors, blank cells, mismatched details, and leftover {{tokens}} before proceeding.
Hi {{first_name}}, I enjoyed {{topic}}. Would you be interested in {{proposal}}?

For the unedited first demo row, the message text would be:

Hi Avery, I enjoyed your ceramic glazing tutorial. Would you be interested in a paid product collaboration?

A blank cell becomes blank text. A field that does not exist leaves its {{token}} in the message. Headers and variables must match exactly. The {{@username}} chip inserts the plain username without an @; write @{{@username}} if you need that symbol.

Your campaign is prepared when the edited file, template, connected account, and reviewed preview agree. Keep the CSV. Save as new campaign stores a campaign without sending, but loading a saved CSV campaign can lose custom column values. For this custom-variable template, keep the reviewed fresh import and original file; reimport and review again if you come back later. Start sending begins delivery immediately and is a separate next step.

Free includes 10 sends per day across accounts on the same license. Eligible first Google login starts a one-day PRO trial, once per account and device. Paid PRO keeps the per-Instagram-account cap of 100 successful sends per day. Sends have a minimum interval of 20 seconds, with ten-send batches and at least 30 minutes between batches. These product limits do not guarantee delivery or prevent Instagram restrictions. Check current plans before choosing a subscription.

1. Prepare one row per recipient

If your shortlist is not ready yet, build and review the Instagram outreach list first, then bring only the ready rows into this file.

Put the recipients on the first worksheet. Include a column named username, with one Instagram username in each row. Add columns such as first_name, topic, and proposal for the details you want to mention.

Use details you have checked. Remove duplicate rows and anyone you do not intend to contact before uploading the file.

2. Import and inspect the table

Open DM Studio in Chrome while logged into Instagram in the same browser, then check the connected account. On Send DM, choose Excel / CSV and select your file. In Edit recipients, confirm that the usernames and custom columns were imported correctly. The import dialog also includes a sample file if you need a starting format.

3. Write the template and fill every field

A template could read:

Hi {{first_name}}, I enjoyed your {{topic}}. Would you be interested in {{proposal}}?

Use the variable chips to insert fields. Fill every custom field used by the template. If a field is missing, its token can remain in the message. If a spreadsheet cell is empty, that part of the message can be blank.

The phone preview uses the first row that has a username. Check that first-row preview, then inspect every other row yourself for blank fields, inaccurate notes, and text that sounds unnatural when the values are inserted.

CSV personalization workflow: one recipient per row, map columns to template variables, preview the resolved message, send, then check local history.
A resolved preview catches missing or mismatched spreadsheet values before sending.

4. Preview, then send the fresh import

Check the daily allowance and pacing settings. When the preview and recipient table are ready, choose Start sending. You can pause, resume, or cancel the running batch.

For a small list, upload the file, check the preview, and send it in the same workflow. Currently, loading a saved Excel or CSV campaign can lose custom columns and their row values. Keep the original file, and do not rely on Save as new campaign and Load to resume a custom-variable campaign later.

5. Review results before another run

Open History to review sending attempts and results. Read any limit or error notice before taking another action. Before another run, check the recipients and personalized values against the original file again.

The free plan has a product limit of 10 sends per day. PRO retains the product cap of 100 sends per day per Instagram account. Built-in pacing and stopping rules do not guarantee delivery or prevent Instagram restrictions.

Install DM Studio from the Chrome Web Store link on the DM Studio homepage and begin with a small list you have checked. The Instagram DM limits guide explains the difference between DM Studio's product limits and Instagram restrictions.

Use the starter CSV to prepare one reviewed shortlist, then check the resolved message before starting delivery.

For saving and returning later, read campaign controls; for the results after sending, read history and follow-ups. Find all workflow guides in Getting started with DM Studio.