Skip to content
AFP logo — a comment bubble with a reply arrow curving out of itAFP logo — a comment bubble with a reply arrow curving out of it

Social media automation for Facebook and Instagram

Turn comments into conversations. Someone comments on your post, AFP sends them a direct message — with keyword matching, branching, delays, and tags, not one canned reply.

AFP replies to Facebook and Instagram comments and direct messages for you: you connect a page, draw a campaign on a canvas, and switch it on. From then on every comment or DM that matches your campaign’s trigger starts a run that can send a DM, reply publicly, tag the contact, wait, or branch — in the order you drew it.

The whole get-started path is built backwards from one outcome: a real comment on your page produces a real automatic DM. Everything else on this site assumes you have done that once.

StepWhat you doWhat it produces
1. Connect a pageLink the Facebook page or Instagram business account AFP is allowed to act on. Creating your first campaign on that page also subscribes it, so events start arriving.A page AFP receives comment and DM events for. Events never arrive for a page that is not subscribed.
2. Build a campaignPick the page in the canvas header, add nodes from the palette on the left, configure them, then click Save campaign.A saved version of the graph: its nodes, its connections, and their settings.
3. Activate itFlip the Active toggle. It is a separate action from saving.A campaign that is eligible to run the moment a matching event arrives.

A campaign is bound to exactly one page. You choose that page in the canvas header before saving, and AFP derives the campaign’s platform from it — a standalone Instagram account produces an Instagram campaign, a Facebook page produces a Facebook one.

Activation validates the graph first. The canvas refuses to switch a campaign on until it has at least one trigger node, every non-trigger node has an incoming connection, and no node has a configuration error. Activating without a page selected is refused too.

Creating a campaign needs an active subscription, and your plan caps how many campaigns you can have. Both are checked before the campaign is created, so a failure leaves nothing behind. See Plans and quotas for what each plan governs.

Start with the path, then take the module you need. Every module is one group in the sidebar, and the reference behind it goes a level deeper.

Looking for a term rather than a task? The glossary defines every word this site uses and links to the page that explains it. The changelog records what changed in AFP and in these docs, newest first.

Step 1 and step 3 account for the questions people ask before anything else, and each one has a page that works through its causes in order.

SymptomWhere the answer is
Your Facebook page or Instagram account does not appear in AFP, or appears and refuses to linkWhy is my page not showing up?
The page is connected and the campaign is active, but a comment produces no DMWhy is my campaign not replying?

A matching comment or DM creates one execution — a single run of one campaign’s graph for one person. The execution walks the graph node by node and records every node it passes through, which is what you read when you need to know why something did or did not happen.

Four rules decide whether a run starts at all:

  • Only active campaigns run. An event that arrives while the campaign is switched off is not matched, so no execution starts.
  • Only the campaign’s current saved version starts new runs. Nodes belonging to older versions never fire, and a run already under way keeps walking the version it started on.
  • One run per person per campaign. If a second matching event arrives while that person’s run is still active, AFP skips it.
  • A page never triggers itself. Events caused by the page’s own comments are ignored, so a public reply your campaign posts cannot start another run.

If two campaigns on the same page both match the same event, both start their own execution and run independently.

A send DM node delivers plain text, an image, a card, or text with buttons, and substitutes the sender’s name into the text before sending. When a run does not produce the message you expected, test and debug the campaign or work through the troubleshooting checklist.