---
title: "AFP: social media automation for Facebook and Instagram"
description: "AFP is social media automation for Facebook and Instagram. It answers comments and DMs with the flow you drew: keywords, branches, delays, tags, spam cleanup."
canonical: https://docs.afp.monster/index
updated: 2026-08-19
pageType: landing
---

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.

## The three steps

| Step | What you do | What it produces |
|---|---|---|
| 1. Connect a page | Link 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 campaign | Pick 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 it | Flip 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](/reference/plans-and-quotas) for what
each plan governs.

## Where to go next

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.

  - [Get started](/start) — Signup to a working auto-reply in about five minutes: create an account, connect a page, build the first campaign, confirm it fired.
  - [Campaigns](/guides/build-a-campaign) — The canvas, the comment-to-DM campaign, keyword lists that decide what matches, and how to test a graph before a real comment does.
  - [Comments and inbox](/guides/comment-moderation) — Moderate comments as they arrive, answer Facebook and Instagram conversations in one list, and bulk-remove old comments.
  - [Contacts](/guides/contacts) — The directory AFP builds from every interaction on your pages, and the tags that segment it by hand or from a campaign.
  - [Pages and profiles](/guides/connected-pages) — Link, unlink and re-authorise pages, and hold several Facebook profiles under one account.
  - [Your account](/guides/plans-and-billing) — Plans and payment, notifications and Telegram alerts, the referral programme, and how to reach support.
  - [Reference](/reference/node-types) — Node types, trigger events, keyword matching, execution states, the graph schema, permissions, quotas, and the glossary.
  - [Use AFP with AI coding agents](/guides/ai-agent-skill) — Install the agent skill, plus the Markdown and llms.txt surfaces it is built on — append .md to any URL on this site.

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

## Two things that go wrong 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.

| Symptom | Where the answer is |
|---|---|
| Your Facebook page or Instagram account does not appear in AFP, or appears and refuses to link | [Why is my page not showing up?](/start/page-not-showing-up) |
| The page is connected and the campaign is active, but a comment produces no DM | [Why is my campaign not replying?](/start/troubleshooting) |

## What happens when someone comments

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](/guides/test-and-debug-campaigns) or work through the
[troubleshooting checklist](/start/troubleshooting).
