Skip to content
dmswift
Instagram and Facebook, on Meta's official API New: team seats, A/B testing and growth links Contacts are never metered · free to start

Every comment on Instagram and Facebook becomes a private conversation.

Someone comments on your post or your reel. dmswift replies in the thread and sends that person a private message — on either platform, in about a second. From there it is one inbox, a contact list you are never charged for, and an AI that answers from your own knowledge base.

Instagram and Facebook 14-day Professional trial Unlimited contacts

How it works

One comment. One DM. About a second.

The same flow on Instagram and on Facebook, in the order it happens.

On your post or reel

The new workshop is open. Comment below and I'll message you the details.

Dana L. send me the link
Your Page Just sent you a private message with the link.
~1s

In their inbox

Your Page Usually replies instantly

Typing

Hi Dana, here's the workshop page: dates, price and how to register.

Open the link

Delivered just now

Seen 09:41

Seconds

From comment to private message

A comment at 3am is answered exactly like a comment at 3pm.

2

Platforms, one inbox

Instagram and Facebook arrive in the same threads, and a person can take any of them over.

Unlimited

Contacts, on every plan

We meter what you send, never how many people you have. A post going viral does not move your bill.

Getting started

You'll be live in about four minutes

No code, no browser extension, nothing running on your computer.

  1. Connect your accounts

    One click through Facebook for the Page. Instagram is picked up from the professional account already linked to it, so there is no second login.

  2. Write one campaign

    Pick what starts it — a comment, a direct message, a story reply or a mention — then the keywords, the public reply and the private message.

  3. Watch the funnel

    Comment, public reply, private message, click — every step counted, timestamped, with the reason anything was skipped.

Facebook asks you to grant pages_show_list, pages_read_engagement, pages_read_user_content, pages_manage_engagement, pages_manage_metadata, pages_messaging, pages_manage_posts and business_management. Instagram is authorised through that same Page connection, so there is nothing extra to approve. Nothing else is requested, and you can revoke all of it from Facebook at any time.

Features

Twelve parts, and the limits of each.

Everything the product does, with what it cannot do stated next to it rather than left out.

Comment to DM, on both platforms

A matching comment on a post or a reel gets a public reply in the thread and a private message to the person who wrote it, each with its own delay. On Instagram a campaign can also start from a story reply, a mention or an incoming DM.

Meta allows one private reply per comment, within seven days. Instagram messages cap at 1,000 characters and carry no button, so the link is sent inside the text.

One inbox, human takeover

Instagram and Facebook in one thread per person, with the automation and your own replies in the same transcript. Take a thread over and automation goes quiet for that contact.

Every thread shows how much of the 24-hour reply window is left, because outside it Meta accepts nothing.

Contacts we never charge for

Everyone who ever interacted, with tags, saved segments, custom fields, notes and a CSV export. Unlimited on every plan, including the free one.

AI grounded in your own words

Write your prices, hours and policies into a knowledge base. The AI answers only from those passages and scores its own confidence.

Below your confidence threshold it sends nothing and hands the conversation to a person. Included from Professional.

Broadcasts and sequences

Message a saved segment now or on a schedule, and set up timed follow-up steps after a trigger. Sends are throttled and opt-outs are re-checked on every single one.

Anyone outside the 24-hour window is skipped. This product never attaches a message tag to get around it.

Tracked links and a real funnel

Campaign links become short links with UTM support, and clicks are counted per person. The funnel reads comment, public reply, message, click — per campaign, per post, per day.

Comment moderation

Link-shortener spam, follow-back bait, all-caps floods, profanity and your own blocklist get hidden automatically, and an allowlist always wins. Hiding rather than deleting, because the author is never told.

The classifier is lexical and whole-word, not an AI. It runs on every comment, so every decision is logged and can be undone.

Webhooks, API and MCP

Signed outbound webhooks push events to Zapier, Make, n8n or your own backend, on every plan. A REST API with per-account keys and an MCP server let your own AI agent run campaigns and read the results.

POST /api/rules?page=17
Authorization: Bearer fbcb_…
{ "keywords": "link", "dm_text": "Here you go" }

Your team, with roles

Invite people by email and give each one a role. A viewer reads, an agent answers the inbox and tags contacts, an admin runs everything else. Pages, contacts, campaigns and billing all stay yours — a member only acts on them.

Access is per account, not per page: a member reaches all of your channels or none of them. Team management, billing and deleting the account stay with the owner alone, and an invite expires after seven days.

A/B tests that will not guess

Give a campaign more than one message and dmswift records which variant each person received, then reads the clicks back through the same tracked link. Every variant gets its own click rate and a confidence interval.

No winner before every variant has your minimum number of sends — 30 by default — and the leader clears a 95% test. Until then it says "not enough data" or "too close". Clicks are the only metric, and the verdict is a decision aid, not a proof.

Growth links and QR codes

A link that carries a code of your own. Someone arriving from a bio link, an ad or a printed poster lands in a conversation that already knows what they came for, gets the greeting or the campaign you attached to that code, and is counted against it.

m.me/…?ref=poster
ig.me/m/…?ref=poster

Nothing happens until the person taps the link and opens the conversation — that tap is the only moment Meta tells us the code was used. dmswift draws the QR code itself, so your link is never handed to another service to render.

Alerts, and a weekly digest

A token that stopped working, an allowance 80% spent or gone, an hour of failing sends, a trial about to end, a channel that disconnected — by email, and to WhatsApp or a webhook if you connected one. The optional weekly digest collects what your audience asked that no campaign answered.

Alerts belong to the account, not to each person in it: one set of settings and one recipient. A condition has to still be true on the next check before anything is sent, nothing repeats while it lasts, and incident mail is held overnight in your own time zone.

Also included on every plan: keyword rules with excludes and per-post scoping, follow-up buttons that only send the link when someone taps, publishing and scheduling posts, daily caps and active hours, once-per-person delivery, an emoji picker and merge tokens, A/B testing, growth links and QR codes, alerts and the weekly digest, an audit log of every account action, and the whole product in English and Hebrew.

Analytics

You can watch it work.

One funnel — comment, public reply, private message, click — counted the same way in every report, broken down by campaign, by post and by day, and downloadable as CSV. Group comments are never counted, because nothing can be sent on them.

One bar per day, messages sent

Illustration. The dashboard shows your own numbers.

Pricing

Priced by how much you send.

Never by how many contacts you have. Start free, or take the 14-day Professional trial, and move between plans whenever the volume changes. Seats for your team come with the plan, not as a per-person add-on.

Free

$0 / mo

Enough to run the whole flow on one account.

  • 1 connected account, Instagram or Facebook
  • Unlimited contacts
  • 2 campaigns
  • 500 private messages a month
  • 5 published posts a month
  • 1 team seat, on top of your own
Start free

Starter

$19 / mo

An Instagram account and a Page, answering all day.

  • 2 connected accounts
  • Unlimited contacts
  • 10 campaigns
  • 3,000 private messages a month
  • 30 published posts a month
  • 2 broadcast messages a month
  • 2 team seats, on top of your own
Start the trial
Recommended

Professional

$99 / mo

Where the AI, the volume and the API live.

  • 5 connected accounts
  • Unlimited contacts
  • Unlimited campaigns
  • 20,000 private messages a month
  • 2,000 AI replies a month
  • 30 broadcast messages a month
  • 200 published posts a month
  • REST API and MCP
  • 5 team seats, with viewer, agent and admin roles
Start the trial

Agency

$289 / mo

Not a bigger number — unlimited people in the account.

  • Unlimited team seats, each with its own role
  • Unlimited connected accounts
  • Unlimited contacts
  • Unlimited campaigns
  • Unlimited private messages
  • Unlimited AI replies and broadcasts
  • Unlimited published posts
  • REST API and MCP
Start the trial

14-day Professional trial · no card · cancel any time

Contacts, tags and segments are unlimited on every plan, and so are outbound webhooks and CSV export. When a monthly allowance runs out, sending stops and the dashboard says which one it was — you are never moved up a plan automatically.

A seat is a person you invite into your account with a role — viewer, agent or admin. Seats come with the plan and are never sold separately, and you, as the owner, never occupy one. An invite that is still waiting holds a seat until it is accepted or canceled, and frees it again when it expires.

Prices are in USD per month, before tax. There is no card checkout yet: you request an upgrade from the dashboard and we invoice you directly.

Where this differs

Six decisions we made on purpose.

This is a crowded category and most of it is built the same way. These are the places where dmswift is deliberately not, and what that costs us to say out loud.

The meter is what you send

Plans count messages, campaigns and connected accounts. Contacts, tags and segments are unlimited everywhere, so a post that performs costs you nothing extra.

The usual meter is active contacts, which means the bill rises when the content works.

AI is in the plan

Professional includes 2,000 AI replies a month, grounded in your own knowledge base, with the confidence threshold and the escalation rules in your hands.

AI is normally a separate subscription on top of the subscription, or credits sold by the thousand.

The whole comment section

The same pass that sends a private message to the person who typed your keyword also hides the spam, the bait and the abuse under that post.

Comment-to-DM tools and moderation tools are usually two products and two invoices.

Hebrew and right-to-left, properly

The dashboard, this page and your message templates mirror for Hebrew, using logical layout rather than a flipped stylesheet. Keywords and replies work in either language, or both at once.

Right-to-left support is close to absent in this category; Hebrew users patch it with browser extensions.

Official API, nothing pretending to be you

Every action goes through Meta's Graph API with permissions you granted from your own Page and can revoke there at any time. No browser automation, no password, no session borrowed from your account.

Tools that drive a logged-in session instead are the ones that get accounts restricted.

A hard cap, never a surprise

When an allowance runs out, sending stops and the dashboard names the allowance. There is no card on file and nothing that could raise your plan on its own.

Silent tier escalation on a quota breach is one of the most-reported billing complaints in this market.

Meta Graph API Instagram Graph API Messenger Private Replies API Webhooks
REST API MCP server Knowledge base Tracked links Audit log

Scenarios

Four things people actually run.

Same campaign shape, different offer, on whichever platform the comment came from.

Product drop

is it back in stock?

It is! Here's the restock page, sizes included.

Comment to shop link

Course launch

price please

The full syllabus, dates and price are all on this page.

Comment to syllabus

Lead magnet

send the guide

Here is the guide. Tap the button and it opens straight away.

Comment to download

Reel on Instagram

info

Everything is here: what is included, the price, and how to book a time.

Reel comment to booking

In writing

What we commit to.

Four lines quoted from pages you can read in full, rather than opinions about the product.

We do not sell, share, or transfer data to third parties.

We also honor Meta's data-deletion callback automatically when a user removes dmswift via their Facebook settings.

dmswift is an independent service and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc.

You may cancel at any time, effective at the end of your current billing period.

FAQ

Sixteen questions, answered plainly.

Does it work on Instagram?

Yes. Comment-to-DM runs on comments under posts and reels, and a campaign can also be started by a story reply, a mention or an incoming direct message. Instagram is connected through the Facebook Page its professional account is already linked to, so there is no second login and no separate password. Three Instagram limits are worth knowing before you start: Meta allows exactly one private reply per comment and only within seven days, a message caps at 1,000 characters, and Instagram has no message button, so the link is sent inside the text where Instagram makes it tappable anyway. There is also no API for liking a comment there, so a campaign set to like will simply skip that step on Instagram.

Do I need my own Meta app?

No. You connect through dmswift's own Meta app: you press Connect, Facebook asks you to approve the permissions listed above, and you pick the Page. There is no developer account to open, no app to register and no review process to sit through. The permissions are granted from your own Page and can be revoked from Facebook at any time, which stops dmswift instantly.

Is any of this allowed by Meta?

Yes. dmswift works through Meta's official Graph API, including the Private Replies API, which exists for exactly this: one private message in answer to a comment. Nothing logs in as you, nothing runs in a browser, and no password of yours is stored anywhere. dmswift is an independent product and is not affiliated with, endorsed by or sponsored by Meta.

What is the 24-hour rule?

Meta lets a business send a free-form message to a person only within 24 hours of that person's last message to it. Two things open a window without one: a private reply to a comment, allowed once per comment within seven days, and a message the person asked for by tapping a button. Broadcasts and sequences respect the window strictly — anyone outside it is skipped and the reason is recorded. It is technically possible to slip past it by attaching a message tag meant for transactional notices; using one to deliver marketing is precisely what gets a business's messaging permission revoked, so dmswift does not do it. Not as a setting, not as an advanced option.

What happens when I hit a limit?

Sending stops and the dashboard says which allowance ran out — messages, AI replies, broadcast messages, published posts or connected accounts. You are never moved to a higher plan automatically, and there is no card on file that could be charged. A broadcast stops at the line rather than half-sending; a sequence that is already running waits and asks again later rather than being destroyed, because a nurture flow that burned out on the third of the month is work nobody can reconstruct. Contacts are never a limit.

Is my data mine?

Yes. In the words of the privacy policy: we do not sell, share, or transfer data to third parties. Your contacts, conversations, campaigns, links, reports and audit log belong to your account; disconnecting an account removes its data with it, and Meta's data-deletion callback is honoured automatically when somebody removes dmswift from their Facebook settings. What is stored is what the private reply and the log need — the comment, the commenter's public name and id as Meta supplies them, and the conversation itself.

Can I export what is in there?

Yes, and on every plan. Contacts download as CSV with their tags and custom fields, every analytics report has its own CSV, and the audit log exports too — all with a byte-order mark, so Excel opens Hebrew correctly instead of as gibberish. Beyond files, signed outbound webhooks push events to Zapier, Make, n8n or your own backend as they happen. None of this is a paid tier.

Does it reply to every comment?

Only to comments that match a campaign. You can require any keyword or all of them, exclude words, limit a campaign to a single post, restrict it to first-level comments, cap it per day, allow it once per person and set the hours in which it may run. Meta also allows exactly one private reply per comment, and some people cannot receive messages at all. Every attempt and every failure is written to the log with its reason.

What does it do about spam and abuse?

It classifies every incoming comment and, when you ask it to, hides the ones that are link spam, follow-back bait, all-caps floods, profanity or on your own blocklist. Your allowlist always wins. Hiding rather than deleting is the default, because a hidden comment stays visible to its author, who is never told and so never comes back angrier. The classifier is deterministic and matches whole words only, never fragments, and its default action is to flag and act on nothing — so you can watch what it would have done before letting it do it. Every decision is logged and can be undone.

How does the AI know when to stay quiet?

It is handed only the passages from your knowledge base that bear on the question, and is told to answer from those alone or return nothing. It scores its own confidence on every answer, and below the threshold you set it sends nothing and hands the conversation to the inbox for a person. It also stands down entirely on anything that reads as a complaint, a legal or medical question, a request for personal data, or a request to speak to a human. The bet behind all of it: an AI that stays quiet costs you one missed reply, and an AI that invents a price under a public post costs you the customer.

Does it work on Facebook Groups?

No. Meta does not allow a private reply to a comment inside a Group, so a Group comment can reach dmswift but nothing can be sent back. Those comments are skipped, the reason is written to the log, and they are excluded from every count — a dashboard that claimed to have handled them would be lying twice. Facebook Pages and Instagram professional accounts only.

Does it work in Hebrew, right to left?

Yes, properly. The whole dashboard, this page and every message you write are bilingual English and Hebrew, and the layout mirrors using logical properties rather than being flipped with a stylesheet hack. Keywords, replies and messages can be in either language, or both, and the search that grounds the AI folds niqqud away so a pointed word and an unpointed one are the same word.

Can I add my team?

Yes. Invite someone by email and pick a role: a viewer reads the business and sends nothing, an agent answers the inbox and tags contacts, an admin does everything except team management, billing and deleting the account — those three stay with you. The invite is a link that expires after seven days, and the person accepts it with their own login, so nobody ever shares a password. Access widens by account, not by page: a member you invite reaches every channel on your account or none of them, because a per-page grant is the kind of rule that leaks the first time one screen forgets to check it.

What does a seat cost?

Nothing on top of the plan — there is no per-seat add-on to buy. Free includes 1 seat, Starter 2, Professional 5 and Agency unlimited, and in every case that number is how many other people you may invite: you, as the owner, never occupy a seat. An invite that has been sent and not yet accepted holds a seat so the count cannot be gamed, and releases it if it is canceled or expires.

How does the A/B test decide?

Conservatively, and it tells you when it cannot. Each send is recorded against the variant that went out, and clicks come back through the same tracked link, so every variant has a click rate and a confidence interval. A winner is only declared when three things are all true: every variant has at least your minimum number of sends (30 by default), there are enough clicks and enough non-clicks for the underlying approximation to mean anything, and the leader beats the runner-up at your confidence level, 95% by default. Otherwise the verdict reads "not enough data" or "too close" and stays that way. Even when it does name a winner, it says so as a decision aid rather than a proof: the recipients are self-selected, the same test is re-run on every dashboard load, and both of those inflate the real error rate above the number on the label.

Where do I put a growth link?

Anywhere a person can tap or scan: the link in your bio, an ad, an email signature, a slide, or a QR code printed on a flyer or a shop window. The link opens Messenger or Instagram on your own thread with your code attached, so the conversation starts already knowing which poster or campaign it came from, and you can bind a greeting or a whole campaign to that one code. Two honest caveats: nothing is recorded until the person actually taps it and opens the conversation — that tap is the only moment Meta reports the code to us — and an Instagram link needs the connected account's username, which arrives with the connection itself.

dmswift

Your next commenter is already typing.

Start free

Free to start. No card. Instagram and Facebook in the same account.

About dmswift

What dmswift does

dmswift is a web application for businesses that use Instagram and Facebook. You connect a Facebook Page you manage, and the Instagram professional account linked to it, then write campaigns: a trigger (a comment, a direct message, an Instagram story reply or a mention), the keywords to watch for, the public reply, and the private message the person should receive. When somebody matches, dmswift replies in the thread and sends that person one private message through Meta's official Graph API, with the link or button you configured. Around that sit a unified inbox where a person can take any conversation over, a contacts list with tags, segments, custom fields and CSV export, an AI that answers from a knowledge base you write yourself and escalates to a human when it is not confident, broadcasts and timed follow-up sequences, tracked short links with UTM support, a conversion funnel from comment to click, automatic hiding of spam and abusive comments, and post publishing and scheduling. It is available in English and Hebrew with full right-to-left layout, and it can be driven by signed outbound webhooks, a REST API or an MCP server as well as by its own dashboard.