Automation Settings, Usage & Analytics
How to tune Safety Mode, send delays, and daily limits to keep your Instagram or TikTok account safe, and how to read your credits, generations, and ROI in the Usage dashboard.
Safety Mode is DMpro’s built-in rate-limit protection. It’s on by default, and we recommend keeping it that way unless you have a specific reason not to.
When Safety Mode is on, it enforces:
- Daily send cap: 20 DMs per day maximum from a single campaign.
- Send delays: 3 to 6 minutes between messages, randomized.
- Auto-pause on block signal: if Instagram or TikTok shows any block-like behavior, your campaigns pause automatically.
It exists because Instagram and TikTok run anti-spam systems that watch for automation patterns: too many sends in a short window, repetitive send timing, the same message going to many recipients, or a sudden burst of activity from an otherwise-quiet account. Safety Mode’s defaults are built to stay well under those flags for a typical account.
Who should keep it on
- New accounts (Instagram or TikTok account less than 6 months old).
- Accounts under 5,000 followers.
- Anyone who hasn’t done automated outreach before.
- Anyone who’s had a temporary block on this account in the past.
Who might turn it off
- Established accounts with 50,000+ followers and a long history.
- Enterprise users with Account Safety Guardrails (a more advanced replacement for Safety Mode).
- Users who understand the risk and want to send at higher volume.
To turn it on or off, go to Dashboard → Automation → Safety Mode and toggle it.
What Safety Mode doesn’t prevent
It reduces risk, but doesn’t eliminate it. You can still get blocked if your account is flagged for content or bio issues, recipients report you, the platform changes its anti-spam thresholds, or your prompt produces messages that look spammy even at a 20/day pace.
Your campaign’s daily limit and Safety Mode’s daily limit are separate, and the lower one always wins. If your campaign is set to 100/day but Safety Mode caps at 20/day, you’ll actually send 20/day. To send 30/day, you’d need to turn Safety Mode off and set your campaign cap to 30, only if you understand the risk.
On Enterprise, Account Safety Guardrails replace Safety Mode with dynamic daily caps based on your account’s history and current signal, multi-account load balancing, and post-send verification to catch blocks earlier. Enterprise users see this advanced UI in the Automation section.
Send delays are the time DMpro waits between two consecutive DMs. You set them per campaign, in campaign settings, as a min delay and a max delay. There’s no single global default; each campaign has its own. The Automation section shows the recommended range and lets you override it.
Every actual delay is a random value between your min and max. Randomizing the timing makes it look more natural to anti-spam systems than a fixed interval would. The default is 120 seconds (2 minutes) minimum and 300 seconds (5 minutes) maximum, so each send lands 2 to 5 minutes after the previous one.
Recommended ranges by use case
| Use case | Recommended min-max |
|---|---|
| New accounts, cautious | 240-480 seconds (4-8 min). Very slow, very safe. |
| Standard use (recommended) | 120-300 seconds (2-5 min). |
| High volume, established accounts | 60-180 seconds (1-3 min). Some risk. |
| Very high volume, Enterprise only | 30-120 seconds. Not recommended without safety guardrails. |
DMpro deliberately doesn’t let you set a single fixed delay (like exactly 3 minutes every time). Fixed timing looks mechanical to anti-spam systems, so every delay is randomized within your range.
Delays directly affect how long a campaign takes to run. As a guide: 50 usernames at a 2-5 minute delay takes 100-250 minutes (2-4 hours). 100 usernames at a 2-5 minute delay with a 30/day cap takes 3-4 days. Plan your campaigns knowing sends take time. The goal is account safety, not instant delivery.
If two campaigns run at the same time, each respects its own delay but not the other’s. In practice this rarely causes an issue, since the extension serializes actual sending. Only one message goes out at a time, even across campaigns. The extension also shows a countdown to the next send in a running campaign, so you can anticipate its next attempt.
The daily send limit caps how many DMs a campaign sends per day. You set it in campaign settings when creating a campaign, or as a per-campaign override (or global default on Enterprise) in the Automation section. The allowed range is 1 to 200 per day per campaign.
Recommended values by account type
| Account type | Suggested daily limit |
|---|---|
| New Instagram account (under 3 months) | 5-15/day |
| Instagram, 3-12 months, under 5k followers | 15-25/day |
| Established Instagram (1+ year, 10k+ followers) | 30-50/day |
| Highly established (verified, 100k+ followers) | 50-100/day |
| TikTok, any account age | 30-50/day is generally fine |
These are guidelines, not guarantees. Individual account behavior varies.
When your daily count reaches the cap, the campaign pauses automatically, no further sends go out that day, and it resumes at midnight local time with the count reset to 0.
You can adjust the cap on a running campaign at any time: click the campaign, open Edit Settings, change the daily limit, and save. If the new cap is higher than what you’ve already sent today, the campaign keeps sending up to the new cap. If it’s lower, the campaign pauses until tomorrow.
Safety Mode enforces its own 20/day cap regardless of your campaign setting, and the lower value always wins:
- Safety Mode on + campaign cap 30 → actual send = 20/day.
- Safety Mode on + campaign cap 15 → actual send = 15/day.
- Safety Mode off + campaign cap 30 → actual send = 30/day.
On Enterprise, you can also set a global daily cap across all campaigns in Automation settings, so several campaigns running at once can’t accidentally combine to exceed a safe volume.
Smart Message Update regenerates a DM when the underlying profile data changes, for example when Instagram finishes loading a bio a moment after the rest of the page. Configure it at Dashboard → Automation → Smart Message Update, with three modes to choose from.
Auto mode
You click Generate to create a message. If the profile data updates afterward, DMpro automatically regenerates the message, and each regeneration costs one credit. Freshest possible message every time, but it can burn credits fast on slow-loading pages.
Manual mode (default)
You click Generate. If the profile data updates, DMpro shows a Refresh button instead of regenerating automatically; you click it to regenerate (also one credit), or just use the message as-is. Full control over credit spend and you see the message before regenerating, at the cost of an extra click.
Off mode
You click Generate and the message appears. Even if profile data changes afterward, DMpro won’t offer to regenerate. Only a manual Generate click produces a new message. Zero surprise credit spend, but the message may be based on incomplete data if you generated too early.
Auto suits high-volume users who trust the AI and want a frictionless flow. Manual is the default and fits most users best. Off fits tight budgets or anyone who wants predictable spend.
Smart Message Update only affects one-off DMs sent through the extension. Bulk campaigns don’t use this setting; each campaign message generates once, when its turn comes up, and doesn’t regenerate mid-flight.
Beyond Safety Mode and your per-campaign caps, DMpro’s server enforces its own guardrails regardless of your local settings. They cap how fast messages can be sent, detect and pause abusive patterns like extremely high volume from one account, and protect against extension bugs that could cause runaway sending. You cannot override these from the extension or dashboard; they exist to keep every account safe.
The server accepts message-generation requests at roughly one request per user per 10 seconds for typical use, with burst tolerance up to about 10 requests per minute at peak. Beyond that, the server returns a “please slow down” error and the extension backs off automatically. Normal usage never gets close to this limit; it only triggers if the extension has a bug and starts spam-requesting.
If the server sees the same user sending many messages in a short window (for example, 30 in 5 minutes), it flags the account, pauses further sends, notifies you by email, and requires you to log in to your dashboard to acknowledge before resuming. This protects against extension bugs, malicious modifications, or a compromised account.
The server also watches for suspicious patterns: a sudden burst after long inactivity, identical messages going to many recipients, or an unusual rate of recipients reporting you. Any of these triggers a review. Most accounts clear automatically within an hour; persistent flags may need support to step in.
Enterprise plans get a more sophisticated version: per-connected-account limits based on that account’s own history, cross-account load balancing to spread sends intelligently, and post-send verification that checks Instagram or TikTok’s own signals for early block indicators. Contact [email protected] to learn more.
These guardrails aren’t optional because bad actors who abuse automation (spam, harassment, mass fake accounts) raise the risk of the platforms blacklisting this kind of technique for everyone, create legal exposure from spam complaints, and erode trust for legitimate users. Guardrails keep DMpro clean for everyone.
Every AI-written DM in DMpro costs one generation, also called a credit. When you click Generate in the extension, the AI receives your prompt plus the profile data, writes a personalized message, and one credit is consumed.
What doesn’t cost a credit: sending a message that was already generated, editing a generated message inline, a failed generation (server error or timeout), or a failed send where Instagram or TikTok blocked delivery (the credit was already spent on generating it, not on sending it). Regenerating with Smart Update does cost another credit, since it’s a new AI call.
Where your credits come from
DMpro draws on three credit sources: free tier credits (10 per month for free-tier users), subscription credits from your monthly or annual plan, and one-time credits from any one-time credit packages you’ve bought.
When you generate a message, DMpro spends subscription credits first (free tier credits count as subscription credits, since they belong to the free plan), then one-time credits. This is intentional: subscription credits expire monthly and reset, while one-time credits never expire, so it makes sense to use the disposable ones first.
You can see your balance in the extension’s top-left counter (real-time), in Dashboard → Usage for a detailed subscription vs one-time breakdown, and in Dashboard → Overview for a summary card.
On your monthly billing date, subscription credits reset to full; unused credits from the previous month do not roll over. One-time credits are unaffected and stay until you use them. If you cancel your subscription, remaining subscription credits stay usable until the end of the current billing period and then zero out, while one-time credits stay in your account forever, even after cancelling.
DMpro keeps two independent credit pools, and they behave differently.
| Subscription credits | One-time credits | |
|---|---|---|
| Source | Your monthly or annual plan (Starter, Growth, Professional, Enterprise) | One-time packages you buy (Starter $19, Growth $49, Professional $149, Enterprise $299) |
| Refresh | Monthly, on your billing date | Never; what you buy is what you have |
| Expiry | Unused credits are lost at reset | Never expire, sit until used |
| Cancellation | Usable until the current period ends, then zero out | Unaffected, stay forever |
Subscription credits suit predictable users with steady monthly volume. One-time credits suit lumpy usage, like an occasional burst of outreach with no ongoing budget. Many users run both: subscription for baseline volume and one-time for overflow when a campaign runs long.
Subscription credits are always consumed first, since they expire monthly and one-time credits don’t. Buying a subscription while you hold one-time credits (or the reverse) just means both pools coexist. Upgrading your subscription resets your existing subscription credits to the new tier’s full amount, or prorates them.
Trial credits are treated as subscription credits belonging to the trial; when the trial converts to a paid plan, credits refresh to the paid tier’s amount and unused trial credits don’t carry over. If you cancel and later resubscribe, you get fresh subscription credits at your new tier, and any one-time credits are still there waiting.
On refunds: subscription refunds generally aren’t available past the 7-day annual window, while one-time credit packages are refundable within 30 days if unused.
Your balance shows in three places. The extension displays one number top-left, like “483 left this month,” which is your combined subscription plus one-time balance, updated in real time as you send. The Dashboard Overview shows a credit card with total remaining, your reset date, and this month’s used count. Dashboard → Usage gives the detailed view: subscription credits used this month out of your monthly total, one-time credits remaining across all packages, total remaining, and a historical chart of usage over the last 30 days.
All three views update in real time; send a DM in the extension and your dashboard balance drops immediately.
Monthly credits by plan
| Plan | Monthly credits | One-time package option |
|---|---|---|
| Free tier | 10/month | — |
| Starter | 500/month | 200 credits |
| Growth | 2,000/month | 1,500 credits |
| Professional | 8,000/month | 6,000 credits |
| Enterprise | 30,000/month | 15,000 credits |
Your reset date is when your monthly subscription credits refresh, based on your signup date; sign up on the 15th and you reset on the 15th of every month (the free tier follows the same pattern). New credits are generally available immediately after signing up, buying a subscription, or buying a one-time package, subject to a few seconds of payment processing.
Open Dashboard → Usage for a detailed view of your DMpro activity: total sent this month, total generated this month, subscription credits used vs remaining, one-time credits remaining, and a daily chart of the last 30 days.
Generated means the AI wrote a message, costing one credit. Sent means the message was actually delivered. Generated is always greater than or equal to sent, since some messages fail to send (an Instagram block, an expired session, a page issue); the gap between the two is your failure rate.
The daily chart shows generations per day for the last 30 days, with exact counts on hover. Weekend dips are normal for business-persona users. Below the chart, a prompt usage table shows each prompt’s name, how many times it’s been used this month, and its success rate (sent divided by generated), so you can spot your workhorse prompts and the ones gathering dust.
You’ll also see a platform split (Instagram sends vs TikTok sends, with cost breakdown by tier per platform) and time-series trends: growth rate compared with the previous month, your best sending days of the week, and your peak hours. A common pattern is sends dropping on weekends and picking up Tuesday through Thursday.
Reply rate estimate
DMpro can’t read your DM inbox directly for privacy reasons, so it can’t see replies on its own. If you mark a DM as replied using the “Mark as replied” button in your Activity Log, DMpro can estimate your reply rate:
| Reply rate | What it means |
|---|---|
| 10-25% | Healthy campaign, good prompt |
| 5-10% | Average, prompt needs iteration |
| Under 5% | Something’s wrong with your prompt or target audience |
Professional and higher plans can export usage data as CSV from the Export Usage CSV button at the bottom of the Usage section, covering every generation with timestamp, every send with recipient username and platform, the prompt used, and status (sent, failed, skipped), for external analysis or reporting.
DMpro emails periodic reports summarizing your activity. The weekly report arrives every Monday morning in your local timezone (between 6 and 8 AM) and covers last week’s sends (total and by platform), a reply rate estimate if you’ve marked replies, your remaining credit balance, days until your subscription resets, and your top-performing prompt by success rate.
The monthly report arrives on the 1st of each month, also between 6 and 8 AM, and is more comprehensive: complete sending stats for the month, a prompt usage breakdown, platform split, growth compared with the previous month, and a recommendation section on which prompt is working and which needs iteration.
Both reports are on by default. Turn them on or off individually at Dashboard → Profile → Notification Preferences.
Reports are delivered by email only; there’s no in-app version. The same underlying data is always visible in Dashboard → Usage, so if you missed a week (say, on vacation), you can still see everything there. DMpro doesn’t keep an archive of past reports, so save the emails yourself if you want to keep them.
There’s no custom report scheduling beyond weekly and monthly. Enterprise users who want a different cadence can request it via [email protected].
One generation equals one AI call that produces a message: the AI takes your prompt and the profile data as input, writes a personalized message, and returns it. That’s the paid unit.
Counts as a generation: the first Generate click on a profile, a Smart Update auto-regeneration, a manual regeneration (clicking Regenerate), and each per-username generation inside a campaign.
Doesn’t count: sending an already-generated message, editing a generated message inline, retrying a failed send (the message was already generated), and failed generations from an AI timeout or server error.
A few edge cases
- Generated a message but never sent it? Still 1 credit; the AI did the work.
- Navigated away mid-generation? If the AI finished, 1 credit. If it didn’t finish, no charge.
- Generated the same profile 3 times and sent only one? 3 credits, since each Generate click costs one, regardless of how many you send.
Generations cost the same on Instagram and TikTok, 1 credit each. In a campaign, every username triggers one generation when its turn comes up, so a 100-username campaign uses 100 credits assuming no retries; retries cost additional credits each time.
As a rough cost guide: on Growth ($49/month for 2,000 credits), each generation costs about $0.0245. On Enterprise ($299/month for 30,000 credits), each generation costs about $0.00996. Higher tiers offer better per-credit value.
ROI Command Center is a Professional and Enterprise feature that estimates revenue attributable to your DMpro outreach. Find it at Dashboard → Usage → ROI Command Center, where you’ll see total DMs sent to date, estimated replies, estimated qualified leads, estimated closed deals, and estimated revenue, all built from what you’ve marked in your Activity Log.
Before the numbers mean anything, set your Lead Value at Dashboard → Usage → Lead Value Settings: enter what an average deal is worth (say, $500 for a coaching session or $10,000 for a SaaS annual contract) and your close rate on qualified leads (say, 20%). DMpro uses these to project ROI.
For accurate numbers, you need to tell DMpro when you get a reply or close a deal. Go to Dashboard → Usage → Recent DMs, find the DM in question, and click Mark as replied or Mark as closed (you can add notes for context too).
Estimated revenue is calculated as marked closes multiplied by your average deal value, and payback period is your DMpro monthly cost divided by estimated monthly revenue.
Without marking replies and closes, DMpro has no way to calculate real ROI and the number stays at $0, so build the habit of marking as you go. You can export ROI data as CSV, covering recent DMs, marked replies, and close rate over time, for external reporting or sharing with stakeholders. Remember, ROI Command Center is available on Professional and Enterprise only, not on free, Starter, or Growth.
Credit Runway Predictor estimates approximately when you’ll run out of credits, based on your recent send pace. Find it at Dashboard → Usage → Runway, which shows your current credits, your average sends per day over the last 7 days, an estimated number of days until empty, and an estimated depletion date.
It’s useful for planning ahead. If your subscription gives you 2,000 credits a month for $49 and you’re averaging 100 sends a day, you’ll run out around day 20, so you can decide in advance whether to buy one-time credits to bridge the gap, upgrade your plan if you consistently exceed your allocation, or simply slow down to match your monthly quota.
Recent pace is calculated from your last 7 days of activity; sending 700 total over 7 days gives an average of 100/day. Weekends can skew this if you don’t send on weekends, since Runway is a simple projection rather than a perfect forecast.
By default, Runway calculates against subscription credits only, since those reset monthly while one-time credits are your emergency reserve; toggle “Include one-time credits” if you want those factored in too.
DMpro sends a warning email at 7 days remaining (“you’re on pace to run out in a week”), 3 days remaining, and 0 remaining. Both thresholds can be disabled in Notification Preferences.
When to consider upgrading
| Plan | Monthly cost | Monthly credits |
|---|---|---|
| Growth | $49 | 2,000 |
| Professional | $149 | 8,000 |
| Enterprise | $299 | 30,000 |
If Runway consistently shows only 5-10 days of runway on a Growth plan, you’re likely a good candidate for Professional or Enterprise. If you’re already spending $49/month on Growth plus another $49 in one-time credits every month just to keep going, upgrading to Professional will usually save you money.
If you only buy one-time credits with no subscription, Runway shows depletion of that one-time pool using the same math. Keep in mind it’s a simple 7-day average and doesn’t account for planned campaigns, vacation dips, or a big launch spiking your usage, so adjust your own expectations if you know a spike is coming.
Still stuck? We’re happy to help.
Create your DMpro account, see pricing, or reach out to support directly.




