Skip to content

A contact is AFP’s record of one person who interacted with one of your connected pages: their platform name and photo, which platform they came from, when they were last active, how many comments they have left, and the tags on them. AFP creates contacts for you — nobody adds one by hand — and under Contacts you filter, search, tag, and delete them.

The contact directory: a filterable list of contacts with the page each one came from and the tags attached to them

  • A connected page that AFP is receiving events for. Nothing reaches the contact directory from a page that is not connected. See Connect a page.
  • At least one real interaction on that page. A page with no comments has an empty contact directory, and there is no way to seed it.

A contact is created the first time AFP handles a comment from a profile it has not seen on that page and platform. The comment is stored, and the contact behind it is created in the same moment, with no tags and with the last-active time set to that interaction.

Every later interaction from the same person updates the existing record instead of adding another. The last-active time moves to now, the name is refreshed to the username the platform reports, and the profile photo is fetched if the record still has none.

Someone comments on a connected pageDoes AFP already have acontact for them on this platform?New contact created:name, platform, page,last active now, no tagsProfile photo fetchedin the backgroundExisting contact updated:last active, name,photo if it was missing No Yes

A DM from someone who has never commented on your page does not create a contact.

A contact belongs to one platform. The same human commenting on your Facebook page and on your Instagram account is two contacts, because the two platforms identify them with different profile identifiers, and the two records carry their tags and comment counts separately.

What the record holdsWhat it meansHow it gets there
NameThe username the platform reported for the personWritten when the contact is created, refreshed on every later interaction
PlatformFacebook or InstagramSet when the contact is created and never changes
Profile photoA copy of the person’s platform profile picture, stored by AFPFetched shortly after the contact is created; retried on the next interaction whenever it is still missing
Last activeWhen AFP last handled an interaction from this personUpdated on every interaction; sorts the contact list and drives the date-range filter
CommentsHow many comments the contact has left on your pagesCounted from the comments linked to the record each time the record is read
TagsThe labels attached to this contactApplied by hand, or by an Add tag or Remove tag node — see Segment contacts with tags
PageThe connected page the person was seen onRecorded when the contact is created and kept current on later interactions

A contact record holds no message history of its own. Conversations live in the inbox, and public comments live in the comment activity feed; the contact is the stable identity those two hang off. Clicking a commenter’s name in the activity feed opens their contact record by looking them up from their platform profile. Contact fields lists every field a record carries and where its value comes from.

The list is ordered by last activity, newest first, and arrives 20 contacts at a time. Four controls narrow it, and they combine — a contact has to satisfy all of them to appear.

ControlWhat it matchesWorth knowing
PlatformFacebook contacts, Instagram contacts, or bothDefaults to both
TagContacts carrying the tag you chooseOne tag at a time, not a set
Date rangeContacts active within the last n daysDefaults to the last 30 days. Set it to All to search the whole directory
SearchPart of the contact’s name, in any caseMatches the name only — not message text, not tags, not the platform profile identifier

The 30-day default explains most contacts that look missing. Widen the date range before concluding that a record does not exist.

Search matches anywhere inside the name, so mar finds both Marta Nowak and Omar Haddad. Combine it with a tag when a common fragment returns too much.

Clicking a contact opens its full record, with the same comment count the list shows. A record that was deleted after the list loaded opens as nothing found rather than as an error.

If your account sits under a master account, the contacts that master account owns appear in this list alongside your own and answer to the same filters. Without that shared scope you see only the contacts from pages your own account owns, even when a colleague’s page has talked to the same person.

  1. Open Contacts and click the contact, or open that person’s conversation in the inbox.
  2. Open the tag picker on the record.
  3. Select every tag the contact should carry.
  4. Save.

The picker submits the whole set of tags rather than the one change you made, so a tag you clear and then save is removed from the contact. Selecting the same tag twice collapses to one entry, and the order you pick them in is not stored.

Every tag in what you save has to be one your account can see. A single unknown tag refuses the whole change, and the contact keeps the tags it had.

Tags on a contact show up beside that person’s conversation in the inbox the next time the conversation list loads, and they become a filter on the contact list. Segment contacts with tags covers creating tags, renaming them, and applying them from a campaign.

No. There is no button that creates a contact, no CSV import, and no way to copy a directory in from another tool — a contact exists only because someone interacted with a connected page. The way to grow the directory is to earn more interactions, which is what a comment-to-DM campaign does. See Route comments to a DM.

The same rule holds inside a campaign. An Add tag node never creates a contact: when the person it runs for has no record yet, the node writes nothing, records that it ran, and the execution carries on to the next node.

Deleting removes the record immediately. There is no archive, no restore, and no trash to recover it from, so treat the confirmation as final.

Deletion is narrower than it looks. What it does not do:

  • It does not delete the person’s comments. They stay where they are on your posts and in the comment activity feed, no longer linked to any contact record.
  • It does not delete the tags that were on the contact. A tag is an account-level label; only this contact’s copy of it goes away. Deleting tags is a separate action — see Segment contacts with tags.
  • It does not block the person or stop future interactions. Their next comment on a connected page creates a brand-new contact record, with no tags, no photo yet, and a comment count that starts from that comment, because the older comments are no longer linked to anything.
  • It does not remove the conversation from the inbox. The thread stays in the list; what disappears from it is the tags, because the inbox reads those from the contact record.

Deleting a contact that has already been removed — in another tab, or by another member of a master account — reports that nothing was removed rather than raising an error. Reload the list to see the current state.

SymptomCauseFix
A contact you worked with last month is goneThe date-range filter defaults to the last 30 daysSet the date range to All
Someone commented but no contact appearedThe comment arrived on a page AFP is not receiving events for, so nothing was handledCheck the page under Accounts and link it again if needed. See Connect a page
Someone sent a DM and no contact appearedContact records are created on the comment pathNothing to change today. See the note under Where do contacts come from?
Searching for words the person wrote finds nothingSearch matches contact names onlySearch by name, or find the conversation in the inbox instead. See Handle conversations in the inbox
The same person appears twiceOne record per platform — the Facebook and Instagram identities are separate contactsTag both records if your segments need to cover the person on both platforms
The name on a record is out of dateThe name is refreshed only when AFP handles a new interaction from that personWait for their next comment; the record updates itself
A contact has no profile photoThe photo fetch has not finished, or the person’s platform profile does not expose oneNothing to do. AFP retries on the next interaction from that person
Filtering by a tag returns nothingThe tag filter combines with the date range, and the tag may never have been appliedSet the date range to All, then confirm the tag on the contact record
Opening a contact shows nothing foundThe record was deleted after the list was loadedGo back to Contacts and reload the list
A campaign sent a DM but the recipient is not in the directoryA campaign looks a contact up by the platform profile it is running for, and never creates oneCheck the execution history for what the run actually did. See Test and debug a campaign
A colleague’s contacts are not in your listContacts belong to the account that owns the page, and sharing through a master account is what makes another account’s records visibleConfirm both pages sit under the same master account