Campaigns

Bulk Campaigns

How to queue up a list of usernames, set daily limits and delays, and let DMpro send personalized cold DMs for you over hours or days.

A campaign is a bulk DM run. Instead of browsing to one profile at a time, you paste a list of usernames, hit Start, and DMpro sends to them one at a time over hours or days, respecting delays and a daily cap.

Campaign vs. one-off DM

  • One-off DM: you browse to a profile and manually send from the extension. Good for 1 to 10 DMs at a time.
  • Campaign: you paste a list of usernames and DMpro sends over time with delays and daily caps. Good for 30 to 500+ usernames.

Campaigns respect DMpro’s Safety Mode caps and use the same AI prompt system as one-off DMs.

What a campaign is made of

  • A name you give it (for example, “Fashion creators outreach Feb 2026”).
  • A platform: Instagram OR TikTok, not both in one campaign.
  • A list of usernames.
  • Settings: daily limit, min/max delay, prompt, and an auto-DM toggle.
  • A status: draft, running, paused, completed, stopped, or out of credits.
  • Progress stats: total, sent, failed, skipped, remaining.

Where to manage campaigns

Go to Dashboard → Campaigns. Every campaign shows as a card with its current status, a progress bar, the sent/total count, and an estimated completion date based on your daily cap.

Campaigns and credits

Every message a campaign sends spends one credit, from either your subscription credits or your one-time credits. If credits run out mid-campaign, it auto-transitions to out of credits and pauses.

Limits by plan

  • Free tier: you can create campaigns, but they’re limited to 10 usernames each (matching your credit ceiling).
  • Starter, Growth, Professional, Enterprise: no cap on usernames per campaign.

Deleting a campaign

Deleting removes the campaign and its history from your dashboard. Messages already sent are delivered and cannot be recalled. Pause or stop a campaign first if you want to keep its history for reference.

Creating a campaign takes about 5 minutes: name it, paste usernames, pick a prompt, hit Start.

  1. Open Campaigns. Go to Dashboard → Campaigns and click New Campaign.
  2. Name the campaign. The name is only visible to you (for example, “SaaS founders sales Q1”).
  3. Pick the platform. Instagram or TikTok, one per campaign. Want both? Create two campaigns.
  4. Add usernames. Paste your list into the text area (one per line, comma-separated, or a mix; DMpro parses it), or click Import CSV.
  5. Pick a prompt. Choose which of your saved prompts the campaign should run on every username. Consider testing on 5 usernames first if you’re unsure it works well across your whole list.
  6. Set the daily limit. Default is 30 DMs per day; the range is 1 to 200. Keeping it at 20 to 30 is recommended for safety, especially on Instagram, since higher volume increases block risk.
  7. Set send delays. Default minimum is 120 seconds (2 minutes) and default maximum is 300 seconds (5 minutes). DMpro randomizes each delay between the two to look natural.
  8. Enable Auto-DM. Auto-DM must be on for the campaign to send automatically.
  9. Save as Draft or Start. Save as Draft to hold it for later without sending anything, or click Start Now to begin sending right away (subject to your delays and cap).

After you start, the campaign appears in your Campaigns list with status “running.” Every 2 to 5 minutes, one DM goes out, and you can watch progress in real time. At your daily cap (default 30), the campaign auto-pauses and resumes the next day.

There are three ways to add usernames: paste them manually, upload a CSV, or, on Professional and above, sync them from Ainfluencer.

Manual paste

Type or paste usernames into the text area. DMpro accepts one per line, comma-separated, or a mix with @ symbols, and strips and normalizes them automatically. For example:

@garyvee
mrbeast
kimk, @justinbieber

CSV upload

Click Import CSV and select a file. A single-column CSV of just usernames works, and a multi-column CSV works too as DMpro will ask which column contains the usernames. A header row is optional; DMpro auto-detects it. Only the username column is used for sending; other columns (like niche or follower count) are ignored for sending but can be logged for context in your export.

Duplicates and invalid entries

Duplicate usernames in a CSV are deduplicated automatically, so only one entry per username is added. If a username is already in another running or completed campaign, DMpro warns you but doesn’t block the add, so you can still send to the same person twice if you want. Invalid entries (empty strings, non-alphanumeric text, or entries that are far too long) are skipped and shown in an error list so you can fix and re-import them. Instagram and TikTok usernames only use letters, numbers, dots, and underscores.

Maximum batch size

  • Free tier: 10 usernames per campaign.
  • Paid tiers: no hard cap. The practical limit is 1,000+ usernames; beyond that it gets hard to manage. For campaigns over 500 usernames, consider splitting into smaller campaigns.

Ainfluencer sync (Professional and above)

If you have Ainfluencer connected, you can pull in creators who matched your active Ainfluencer campaign: in the campaign creation flow, click Sync From Ainfluencer, pick your active Ainfluencer campaign, and DMpro pulls the matched creators’ usernames into your DMpro campaign.

Editing the list after creation

Once a campaign is running, you can add more usernames to the end of the queue and remove pending usernames that haven’t sent yet, but you cannot remove usernames that have already been sent since they’re history. To edit, click the campaign, then Manage Usernames.

Within that list you can also skip selected usernames, retry failed usernames, and export the list to CSV for offline analysis.

Every campaign has three key numerical settings.

Daily limit

The most DMs the campaign will send per day, configurable from 1 to 200. Default is 30/day. Recommended ranges:

  • New Instagram accounts: 10 to 20/day.
  • Established Instagram accounts: 30 to 50/day.
  • TikTok: 30 to 50/day.
  • Very high volume with account safety guardrails (Enterprise): 100+/day.

Going higher than default is risky if your account is new or you’re sending to non-followers.

Min and max delay

Min delay is the shortest gap between two sends (default 120 seconds/2 minutes, minimum settable value 30 seconds, recommended 120+ seconds). Max delay is the longest gap (default 300 seconds/5 minutes, minimum settable value 60 seconds, recommended 300+ seconds). DMpro picks a random value between your min and max for every send, since a fixed interval like exactly 3 minutes every time looks mechanical to Instagram and TikTok’s anti-spam systems, while a randomized 2 to 5 minute range looks human.

Doing high-value outreach? Try randomizing between 2 and 8 minutes. Longer, less predictable spacing looks the most human.

How the daily cap resets

It resets at midnight in your local timezone. If your cap is 30, DMpro sends up to 30 today, pauses at the cap, and resumes tomorrow with a fresh 30. The cap tracks per campaign, so two campaigns each capped at 30/day send up to 60 combined per day.

Running multiple campaigns

Your total daily sends equal the sum of all your campaigns’ caps. If that total goes above Instagram’s practical limit (roughly 50 to 100/day), block risk increases. Best practice is to keep total daily sends across all campaigns under 50/day, unless you have Enterprise safety guardrails.

Adjusting settings mid-campaign

Click the campaign, click Settings, adjust the daily limit or delays, and save. Changes apply immediately. If you lower the daily cap below what you’ve already sent today, the campaign pauses until tomorrow.

DMpro doesn’t have a “business hours only” setting built in. To skip evenings or weekends, manually pause the campaign and resume it later, or, on Enterprise, use the “Set daily start time” advanced setting to schedule the daily reset to your preferred hour.

Starting

A new campaign either saves as a draft (status draft, not sending) or starts immediately when you click Start Now (status running). To start a saved draft later, click the campaign, then Start. Once started, DMpro sends the first message within a few minutes and subsequent messages follow your delay pattern, with progress updating in real time.

Pausing

Click the campaign, then Pause. Status changes to paused. No more messages send, already-sent messages stay sent, pending messages stay queued, and you can resume any time. Pausing is fully reversible and preserves everything.

Resuming

Click Resume on a paused campaign. Status flips back to running and sending continues where it left off. For example, if you paused mid-day after sending 20 of a 30/day cap, resuming today allows 10 more before the day ends.

Stopping

Click Stop. Status changes to stopped. No more messages will ever send from this campaign, pending usernames are marked skipped, and already-sent messages stay sent. You cannot resume a stopped campaign. Stop is final; use Pause instead if you might come back to it.

Completed campaigns

Once every username has been processed (sent, failed, skipped, or no_credits), the campaign auto-transitions to completed. You’ll see a completion banner, final stats, and an export button to download results as CSV.

Deleting

Deleting removes the campaign from your dashboard and its history is gone, so only do this once you no longer need the results.

Running several campaigns at once

You can run multiple campaigns in parallel. They all share your credit pool, and while two campaigns can each target Instagram without conflicting directly, their combined daily sends still count toward Instagram’s rate limits, so your total daily sends equal the sum of every active campaign’s cap.

If Instagram signals a block, DMpro automatically pauses all running campaigns and shows a red banner. You have to acknowledge it and unpause once you’re comfortable resuming.

Every campaign carries one of six statuses, shown as a colored pill on its card in the Campaigns list.

StatusWhat it meansCard color
DraftCreated but not yet started. You can edit settings, add or remove usernames, delete it, or start it.Gray
RunningActively sending, one DM every 2 to 5 minutes based on your delay settings. You can view progress, pause, edit limited settings (daily cap and adding usernames, not platform or existing usernames), or stop.Green, with a pulsing indicator
PausedYou clicked Pause. Not sending, but state is preserved. You can resume, edit settings, add or remove pending usernames, or stop. Paused campaigns never auto-resume; you must click Resume.Yellow
CompletedEvery username has been processed (sent, failed, skipped, or no_credits). You can view final stats, export as CSV, or delete. Completed campaigns don’t restart; create a new one to send again.Blue
StoppedYou clicked Stop. Pending usernames were marked skipped. Done and cannot be resumed; same view/export/delete actions as completed.Red
Out of creditsHit your credit limit mid-run and auto-paused. Buy more credits or wait for the monthly reset, then click Resume.Orange

Status transitions

Legal transitions: draft to running (start), running to paused (pause), running to stopped (stop), running to completed (automatic, when done), running to out_of_credits (automatic, when quota is hit), paused to running (resume), paused to stopped (stop), and out_of_credits to running (after buying credits).

Blocked transitions: a completed campaign cannot be revived, and a stopped campaign cannot be restarted.

Within a campaign, each individual username carries its own status showing exactly what happened to it.

StatusWhat it means
PendingIn the queue, waiting for its turn to be processed.
ProcessingDMpro is generating the message or sending it right now. Transient, usually lasting only a few seconds before flipping to sent, generated, or failed.
SentThe message was generated and successfully delivered. This is the goal state every campaign aims to maximize.
GeneratedThe message was written but not sent, either because Auto-DM was off or because the send step hit a transient network issue. Not yet delivered; you can retry it.
FailedCould not send. Common causes: the recipient’s DM inbox was closed, Instagram or TikTok blocked the send, the profile was deleted or renamed, or DMpro couldn’t find the message button after a page redesign. Can be retried manually.
SkippedSkipped because you manually skipped it, the campaign was stopped mid-run (marking everything remaining as skipped), or the handle was invalid.
No creditsThe campaign hit your credit limit before reaching this username. Once you add credits and resume, it re-queues as pending.

Where to see them

Click any running or completed campaign and scroll to the Usernames section. Each entry shows its current status plus the message that was generated, the sent-at timestamp, and an error message if it failed. You can filter the list by All, Sent, Failed, Pending, Skipped, or No credits to quickly find usernames that need action.

Retrying failed usernames

Click a failed username and choose Retry, or select several and click Retry Selected. Each retry spends a fresh credit; if you don’t have credits available, retries won’t run.

Every campaign has a daily send cap (default 30). Once that many messages have gone out today, the campaign pauses until tomorrow.

When “tomorrow” is

The reset is based on the calendar day in your local timezone, so it happens at 00:00 midnight local time. If you’re in Toronto (Eastern time), for example, the counter resets at midnight Eastern.

Multiple campaigns

Each campaign tracks its own daily count, so two campaigns each capped at 30/day can send up to 60 combined per day. Keep in mind combined sends still count against Instagram’s practical limit of roughly 50 to 100/day total; running multiple campaigns doesn’t let you bypass overall rate limits.

Where to see today’s progress

The campaign card shows a progress bar for the whole campaign, today’s sent count underneath it (for example, “12/30 today”), and an estimated completion date based on remaining usernames and your daily cap.

What happens at the reset

At midnight local time, today’s sent count reverts to 0, and if the campaign was paused for hitting the cap, it resumes automatically and keeps sending within the new day’s cap. You don’t need to do anything; the reset is automatic.

Adjusting mid-day

Raising the daily cap mid-day (say from 30 to 50) lets the campaign send more today, up to the new cap. Lowering it (say from 30 to 20) after you’ve already sent 25 today pauses the campaign until tomorrow.

DMpro doesn’t have separate weekend vs. weekday caps. To skip weekends, manually pause on Friday night and resume Monday morning, or use the scheduled send hours feature on Enterprise. If you travel across timezones, the reset time shifts to match your new local time, which can occasionally cause an early or late reset for a day. That’s expected, not a bug.

If a campaign hits your credit limit mid-run, it auto-pauses with the status out of credits.

Auto-detection

DMpro checks your credit balance before every send. Once your balance hits 0, the current send may still complete if it was already in progress, but the next send is prevented, the campaign transitions to out_of_credits, and every remaining pending username stays as pending.

Notification

You get an in-dashboard banner, plus an email if email notifications are enabled. Both read:

“Your campaign [name] paused. You’re out of generations. Buy more or upgrade to resume.”

Resuming after adding credits

Once you have credits again, whether from upgrading your plan, buying a one-time package, or a monthly reset, go to Dashboard → Campaigns, click the paused campaign, and click Resume. Sending continues from where it left off, and pending usernames get processed one by one.

Shared credit pool

Your generation credits are one shared pool across every campaign. If one campaign drains it to 0, every other running campaign also stops and flips to out of credits. Resume them all after adding credits and they’ll compete for the same pool until one drains it again.

Preventing it

Watch your credit balance during large campaigns. If you have 500 credits and a campaign of 1,000 usernames, you know it will pause about halfway through. To avoid that, upgrade to a bigger plan for more monthly credits, buy one-time credits ahead of time, or split the campaign into smaller batches paced with your monthly resets.

Credit priority

DMpro spends subscription credits first, then one-time credits, since subscription credits expire monthly while one-time credits never expire. If your subscription ends but you still have one-time credits, campaigns can keep sending using those; Free tier restrictions only apply once one-time credits also hit 0.

Stopping cleanly instead

If you’d rather not buy more credits, click the campaign, click Stop, and every remaining pending username becomes skipped while the campaign transitions to stopped.

Still stuck? We’re happy to help.

Create your DMpro account, see pricing, or reach out to support directly.

Back to Help Center