CRM Solid logo
GUIDE13 min read

Twitter (X) DM automation: safe outreach in 2026

X API DM ceilings, OAuth setup, the warm-only audience trick that lifts reply rate 5×, intent-based AI replies for inbound, and the 429 response policy that keeps high-volume X campaigns alive month after month.

14-day free trial · No credit card required · Cancel anytime

What you will learn

Four X-specific automation skills

API tier and OAuth

Pick the right X tier and wire up OAuth without leaking credentials.

Rate limits and 429s

How to stay below 800/day per account and recover automatically from rate-limit errors.

Warm-only targeting

The follower + open-DM segment that drives 5-15× higher reply rates than cold lists.

Intent-based AI replies

Classify inbound DMs and respond automatically with the right template per intent.

What you will need

X DM automation needs API tier access and a clean account profile. Skip either and the system will not work.

  • A CRM Solid workspace and an X account that is at least 90 days old with regular organic activity.
  • An X API tier that includes DM endpoints (Basic minimum for individual operators).
  • A clean follower-and-warm segment of 200-2,000 contacts to start.
  • A library of at least 6 spintax templates referencing real signals (tweets, follows, mutual connections).
  • A monitoring dashboard for 429 events, reply rate, and block rate (built into CRM Solid).
  • A 90-minute window to run the initial pilot and watch the results.

X policy reminder

X's automated-activity rules forbid spam, harassment, and mass-untargeted outreach. Sending personalized DMs to people who follow you, who have opted into your DMs, or with whom you have a documented relationship is permitted. Cold-blasting strangers at volume is not. This guide assumes you are in the first category.

X DM automation has matured into a real channel since the API re-launched at Basic and Pro tiers in 2024. The economics work: $100/month buys you ~24,000 DMs/month per account, the OAuth flow is stable, and webhook-based inbound makes real-time response practical.

What has not changed is the discipline required. X is harsher than Telegram on spam patterns and the recovery options are worse; a single weekend of bad outreach can suppress your for-you reach for a month. This guide is the playbook for staying inside X's envelope.

Step 1: Confirm you have the right X API tier

X API access tiers as of 2026:

  • Free: limited DM read, no programmatic send at scale. Useful for testing, not for production.
  • Basic: $100/month, ~1,000 DMs per day per user. The right tier for individual operators and small teams.
  • Pro: $5,000/month, ~10,000 DMs per day per user, multi-user app support, higher rate ceilings. The right tier for agencies or anyone running 5+ X accounts.
  • Enterprise: custom pricing. Negotiate directly with X for unusual volumes.

CRM Solid Pro plans include API access at the Basic level for up to 3 X accounts. Beyond that, you can either bring your own API credentials or upgrade to the Pro tier through our managed partnership.

Step 2: Connect your X account via OAuth 2.0

Budget: 3 minutes per account. CRM Solid uses OAuth 2.0 with PKCE, the modern, secure flow. No need to paste consumer keys manually anywhere.

  1. Go to Accounts > Add X account.
  2. Click Authorize with X. You will be redirected to X's consent screen.
  3. Confirm the scopes: dm.write, dm.read,tweet.read, users.read.
  4. On approval, you are bounced back to CRM Solid. The encrypted access + refresh tokens are stored server-side and the worker uses them transparently.
  5. You will see a "Connected" badge with the X handle and "DM-write enabled" status.

You can revoke the connection at any time from the same screen (or from twitter.com/settings/connected_apps). Revocation is immediate; CRM Solid stops dispatching DMs from that account within seconds.

Step 3: Set per-account rate limits to 80% of ceiling

X publishes a ~1,000 DM per 24-hour limit per user. CRM Solid defaults to 800/day so you have headroom for replies and occasional automatic platform throttling.

In Settings > Rate limiter > X account:

  • Per day: 800 (sub-ceiling buffer).
  • Per hour: 60 (sub-window buffer).
  • Per minute: 5 (X enforces this with 429).
  • Min interval: 12 seconds.
  • Business hours only: on (DMs at 3 AM look bot-like).

For a fresh X account (less than 90 days), reduce these to 300/day, 30/hour, 30-second interval. Mirror the warm-up principle from Telegram; new accounts on any platform need time to earn trust.

Step 4: Build a warm-only audience segment

The single biggest lever on X DM reply rate is who you DM. The published 1,000/day ceiling is meaningless if 90% of recipients never see the message because their DM privacy is locked.

A useful X DM-eligible segment requires the recipient meets at least one of:

  • Follows you: your DMs are visible by default.
  • Has open DMs enabled: anyone can DM them.
  • Has DMed you previously: established thread.
  • Has @-mentioned you in the last 30 days: opted into the conversation.

In CRM Solid's Contacts > Segments > New, build:

Segment: X DM-eligible
Channel = X (Twitter)
AND (
  is_follower = true
  OR open_dms = true
  OR has_dmed_us = true
  OR has_mentioned_us_within = 30d
)
AND blocked_us = false
AND opted_out_of_dms = false

On a typical 10K-follower account, this segment lands around 500-2,000 contacts (followers + open-DM-strangers visible through your network). Reply rate to this segment averages 18-35%, compared to 1-3% on a raw scraped list. The volume is smaller but the conversions are dramatically better.

Step 5: Write context-anchored templates

X users are bombarded with generic outreach. Templates that open with "Hey, hope you are doing well" are deleted in 2 seconds. The signature of a template that actually gets read is a real-time, real-context anchor.

# Template 1: Recent-tweet anchor
{Hi|Hey} {first_name}, {saw|caught|just read} your {tweet|thread}
about {tweet_topic} {today|earlier}. {Genuinely useful|Great take|Solid framing}.
Quick question - {do you have|are you using|are you trying} {related_tool}
for that, or {still doing|still hacking|workshopping} it manually?

# Template 2: Follow-back anchor
{Thanks|Cheers} for {the follow|following|connecting}, {first_name}!
{Curious|Wondering} what {pulled you in|caught your eye};
{the {topic} content|the {company} updates|the threads}?
Always {open to|down for|happy to} {trade|swap|share} notes if you
work on {related_area}.

# Template 3: Mutual-connection anchor
{Hi|Hey} {first_name}, {noticed|saw} we both {follow|interact with}
{mutual_handle}; {they mentioned|saw your reply on|came across via}
{their tweet about {topic}}. Working on {related_problem} at the moment.
{Open to|Down for|Up for} a quick exchange of ideas?

# Template 4: Recent-mention anchor
{Hi|Hey} {first_name}, you {mentioned|tagged|shouted out} us in
{your tweet|the thread|that reply} about {topic} {a few days ago|recently}.
Wanted to {say thanks|circle back|follow up} and check;
{is anything we can help with|what would make this easier|are you exploring tools for that}?

# Template 5: Reply-history anchor
{first_name}, {appreciated|loved|enjoyed} your reply on our
{tweet|thread} about {topic}; you {framed it|put it} better than we did.
{Mind if|Open to} I {ping you|drop you a note} about a {related|adjacent} thing
we are building? {No pitch, just curious|Strictly research, no sell}.

# Template 6: Niche-content anchor
{Hi|Hey} {first_name}, working through your {recent thread|pinned post|series}
on {topic}; section on {sub_topic} was {sharp|excellent|spot-on}.
{Quick question|Curious}: how do you {handle|approach} {related_problem}
in the {current setup|workflow}?

Step 6: Enable intent-based AI replies for inbound

X DM volume balloons fast. A 800/day outbound campaign at 20% reply rate generates 160 inbound DMs per day. Without automation, that backlog kills follow-through.

CRM Solid's intent classifier reads each inbound DM and assigns one of 5 intents:

  • interested: clear positive signal, may ask for more info or want a demo.
  • not-now: interested in principle but timing is wrong ("next quarter," "after Q3 budget").
  • unsubscribe: explicit opt-out request. Auto-flagged and never messaged again.
  • complaint: angry, hostile, accusing-of-spam. Auto-flagged for human review and apology.
  • question: has a substantive question that needs a human or AI agent answer.

In Settings > AI > X inbound:

  1. Turn on intent classification.
  2. For interested: send a follow-up template with calendar link, route to assigned owner.
  3. For not-now: send a deferred-followup template, schedule the contact for re-engagement in 60 days.
  4. For unsubscribe: send confirmation, flagdo-not-contact tag, no further messages ever.
  5. For complaint: route to operator, do not auto-reply.
  6. For question: route to AI sales bot (if configured) or operator.

Across a typical week, the AI handles 40-60% of inbound with zero human touch. The remaining 40-60% (high-intent and complaints) gets your full attention.

Step 7: Run a 30-DM pilot

Budget: 90 minutes (15 min sending, 75 min monitoring). Launch the first 30 DMs from your warm-segment to your highest-quality contacts. Watch the dashboard.

Healthy targets in the first 90 minutes:

  • 0 × 429 (rate-limit) events.
  • 0 × auth-fail errors (token rotation working).
  • Reply rate trending toward 18-30% (warm segment baseline).
  • 0 blocks within 90 minutes (very rare on warm).
  • 0 complaint-intent classifications on AI inbound.

If any of these is off, pause. Investigate before raising the cap.

Step 8: Scale to 800/day and monitor weekly

After a clean pilot, raise the daily cap to 800. The next 7 days you watch the dashboard daily; after week 1 you can drop to weekly review.

Weekly health metrics to watch:

  • Reply rate: flat or rising is good; falling 5%+ week-over-week is template fatigue, rotate templates.
  • Block rate: should stay under 1%; if rising, your warm segment is degrading, refresh it.
  • 429 events: should be zero; any 429 means you are too close to the ceiling, drop daily cap 100.
  • Reach decay: your for-you reach on tweets should stay stable; if it drops noticeably, X is throttling you, pause DM volume for 7 days.
  • Complaint rate: over 1 complaint per 200 sends is a campaign-level issue, audit templates and audience.

X campaigns done right look like a polite professional networking practice operating at slightly above-human speed. That is intentional. The platform tolerates pace; it does not tolerate spam patterns.

Twitter (X) DMs vs Telegram DMs vs Email

The right channel depends on audience reachability, not on volume math alone.

CapabilityX (Twitter)RecommendedTelegramEmail
Reachability
Can DM strangers by default
Per-account daily ceiling
~800~50thousands
Typical reply rate (warm)
18-35%30-50%5-15%
API and automation
Official API
paid
OAuth-based auth
Webhook inbound
Risk profile
Rate-limit response
429FLOOD_WAIT5xx / bounce
Reach suppression on spam
Account ban recovery

Use X for warm-network outreach, Telegram for cold prospecting (within ToS), email for high-volume nurture. CRM Solid bundles all three.

“We moved our entire outbound from cold email to warm X DMs. Reply rate went from 4% to 28%. Volume is lower but conversion is so much higher we ended up with 2× more qualified meetings on the calendar.”
Anastasia Bunin
Co-founder · Lemma Studio

X DM automation FAQ

Eight questions every operator asks within their first month of X outreach.

X publishes ~1,000 DMs per 24h per user on the v2 API, with sub-window limits of around 100 per hour and per-minute caps that vary by endpoint. The numbers fluctuate without notice and depend on account standing. Treating any single number as fixed is a mistake; the practical ceiling is roughly 800 per 24h on a strong account, well below the published cap.
For programmatic sending at scale, yes. The X Basic and Pro API tiers expose the DM endpoints needed for automation. Free tier provides limited DM functionality. CRM Solid customers typically run on Basic for individual operators and Pro for agency or multi-account setups. We help you provision the right tier during onboarding.
Three big differences. First, X DMs require the recipient to either follow you, have open DMs, or have previously interacted; there is no equivalent to Telegram's "DM anyone" model. Second, X content moderation is stricter on bulk-like patterns; report thresholds are lower. Third, X has visible "spam scoring" via the for-you ranking algorithm; bad outreach kills your reach for weeks.
HTTP 429 ("Too Many Requests") is X's rate-limit-reached error. The response includes x-rate-limit-reset (Unix epoch) telling you when the window resets. CRM Solid's worker reads this header, pauses the affected endpoint until the reset time plus jitter, and resumes automatically. Manual retry policies that ignore the reset header are how accounts get suspended.
Both, but with very different risk profiles. Automated DMs are an established outreach pattern when done with consent or warm leads. Automated reply-to-tweets is high-risk and X actively detects "engagement bait" patterns; most accounts that do this get reach-suppressed within 7-14 days. We recommend manual reply with AI suggestions, not full automation.
On X, multi-account expands your per-day DM ceiling linearly (3 accounts × 800/day = 2,400/day). It also distributes risk if one account gets temporarily restricted. The challenge is each account needs its own API credentials and X enforces per-developer-account limits, so you cannot just generate 10 dev accounts and pool them. CRM Solid handles the credential management.
Marginally. Blue accounts get higher reach on tweets and slightly better DM deliverability (recipients are more likely to see and respond). They do not get more DM volume from the API. Verified is worth the $8/month if you are doing serious outreach, but it is not a license to send more; the rate limits apply equally.
Five rules: send personalized DMs (no copy-paste at volume), respect "no DM" replies within 24 hours, never auto-follow at scale (that triggers spam scoring fastest), keep DM open rate above 30% (low engagement is a signal), and post organically at least 3 times per week (silent accounts that only DM look bot-like). All five together keep your account above X's spam thresholds.
Ready to ship

Run safe X DM outreach with the guardrails built in

A 14-day trial includes the OAuth connection, the intent classifier, the rate limiter, and the warm-segment builder. Run this guide end-to-end before deciding.

Trusted by 2,500+ teams · GDPR-ready · 99.95% uptime

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.