Sending Bulk Media (Images, Video, Docs) on WhatsApp

≈ 8 min read

A campaign image, a product-catalog PDF, a short promo video — sooner or later you need to send bulk media on WhatsApp. But media is a far heavier payload than plain text, and a much stronger signal to WhatsApp's spam algorithm. That is why a healthy system hits the brakes when it sends media. This guide explains why bulk media is riskier, why the system halves the pace, the 120-second timeout lesson learned from a real double-send incident, and practical file-size tips.

1. Why is bulk media riskier than text?

A plain text message is a few kilobytes; it delivers instantly and barely touches the server. An image, video or document is first uploaded from your phone's WhatsApp session and then distributed to the recipient. That difference has three consequences:

  • Stronger spam signal: The same image going to hundreds of people at short intervals is a textbook bulk-marketing pattern. Small text variations break the pattern; but an identical file (same hash) going to everyone makes it obvious.
  • Higher complaint odds: An unexpected image or video feels more intrusive than text and raises the chance of "Block / Report." A complaint is the heaviest ban signal there is.
  • Longer, more fragile sends: Upload time is variable. On a slow network a single send can take seconds, which stresses the timing and retry logic (see the double-send case below).

In short, media makes sending discipline even more critical. We cover general ban mechanics in rules to avoid a ban; here we add what is specific to media.

2. Why the system halves the pace for media

This system's anti-ban regime is hard-coded, and it automatically gets more cautious when media is involved. Waits and break durations roughly double:

RuleTextMedia (image/video/doc)
Random wait between messages45–90 s67–135 s
Burst break (every 15 messages)8–12 min16–24 min
Time window05:00–23:0005:00–23:00
Recipient cooldown4 hours4 hours
Practical result~25–30 msgs/hourRoughly half

A concrete example: a 100-person list that finishes in a few hours as plain text spreads across most of a day with media. That is not a bug, it is deliberate protection. Braking hard on media is the price of a long-lived number. If you are in a hurry, framing the campaign as a clean text template plus one link is usually faster and safer.

3. The 120-second timeout and the double-send lesson

An early version hit this problem: while a large video was uploading, the network stalled, the send job hung on "no response," and the queue (BullMQ) retried it. The result: some recipients got the same video twice. On a bulk list that is both an annoying experience and an extra spam signal.

The fix had two parts:

  • A 120-second per-send timeout: The worker waits at most 120 seconds for a single media send. If no delivery confirmation arrives in that window, the job is marked failed safely — no blind retry.
  • Constrained retry logic: A job is never re-sent automatically while delivery is uncertain. If it is ambiguous, the panel shows it as "failed" and you decide.

The lesson: with media, "slow response" and "genuine failure" look alike. Blindly retrying causes double-sends. That is why the worker is the single sender (see the automated-messaging architecture) and, with the 120s limit, treats uncertainty as a transparent error rather than a retry.

4. File size: the most practical ban and speed lever

The faster the upload, the lower the timeout and double-send risk — and the better the recipient experience. A few concrete rules:

Media typeRecommendationWhy
Image< 1 MB, ~1080 px wideMore than sharp enough for a notification; fast upload
VideoShare a link instead of sending directlyVideo is the heaviest, riskiest type; a link is light and safe
Document (PDF)Compress; one file if possibleA big PDF stretches the upload and raises timeout risk
TemplateOne image + short text per messageMultiple attachments deepen the pattern and lengthen the send

The general rule: don't let media carry what text can carry. Framing a campaign as one clean image + a personalized short text + a link is faster and safer than a message with ten attachments. We detail why personalization matters in the bulk message templates guide.

5. A practical sending workflow

  1. Get the image under 1 MB (a simple compressor is enough). For video, turn it into a link.
  2. Build the template as one image + a short, personal text + a single CTA link; if it is marketing, add the opt-out line ("reply STOP").
  3. Upload the list to the panel and start the send. The system applies the media pace (67–135 s / 16–24 min) automatically.
  4. Expect large lists to spread over several days — that is normal and protects your number.
  5. Review any media flagged "failed" in the panel; decide case by case instead of blindly retrying.

Ethics and law: Bulk media, just like text, should only go to people who have consented to hear from you. An image or video looking "more innocent" changes nothing; unsolicited sending breaches data-protection law (GDPR in the EU, KVKK/Law 6563 in Turkey) and triggers opt-in-registry duties. Every marketing message must carry an opt-out line. For detail, see our rules to avoid a ban and consent-compliance guides.

Frequently asked questions

Why is sending bulk media riskier than text on WhatsApp?

Media is heavier (upload, server load) and a stronger signal to the spam algorithm. The same file going to everyone back to back is easily flagged as bulk marketing. That is why the system roughly doubles the waits and breaks for media.

How much does the system slow down for media?

For text, the wait between messages is 45–90 s and the break is 8–12 minutes every 15 messages. For media those roughly halve throughput: 67–135 s waits and 16–24 minute breaks. A media list therefore takes about twice as long as a text one.

What is the 120-second timeout and the double-send problem?

Large files upload slowly, so early versions retried stalled jobs and sent the media twice. The fix: a 120s per-send timeout. If no confirmation arrives in that window the job is marked failed safely — no blind retry.

What are your file-size tips?

Keep images under 1 MB at ~1080 px width. Share a link instead of sending video directly. Compress PDFs. Use one image per message. Small file = fast upload = lower timeout and double-send risk.

Send media at a safe pace too

Deliver images, videos and documents without risking your number, at the automatic media pace. Open source, on your own server.

Open the panel →