ReferencePages and contacts
Contact fields
A contact holds the person’s name and profile photo, the platform and profile ID that identify them, the connected page their interaction arrived on, the tags attached to them, and the time they were last active. Tags are the only field you can change. Contacts are created automatically from an inbound comment, so nothing on the record is typed in by hand and there is no way to add one yourself.
Summary
Section titled “Summary”| Field | Type | Where the value comes from | Editable |
|---|---|---|---|
| Name | text | The username on the interaction that created the contact, refreshed on every later interaction | No |
| Profile ID | text | The identifier Facebook or Instagram uses for that person | No |
| Platform | facebook or instagram | The platform the interaction arrived from | No |
| Profile photo | image | Fetched from the platform after the contact is created, then stored by AFP | No |
| Page | page reference | The page the interaction arrived on | No |
| Tags | list of tag references | The contact’s tag picker, or add_tag and remove_tag nodes in a campaign | Yes |
| Last active | timestamp | Set when the contact is created, and updated on every later interaction | No |
| Comments | number | Counted from the comments linked to the contact each time the record is read | No |
| Gender | fixed value | Set to unknown when the contact is created | No |
- Type: text
- Editable: no
The username AFP receives with the interaction. Every later interaction from the same person overwrites it, so someone who renames their profile appears under the new name after their next comment.
Profile ID
Section titled “Profile ID”- Type: text
- Editable: no
The platform’s own identifier for that person. It is half of the contact’s identity — the platform is the other half — and it is what a campaign’s tag nodes use to find the record.
Platform
Section titled “Platform”- Type:
facebookorinstagram - Editable: no
Which platform the interaction came from. It is part of the contact’s identity rather than a setting, and it is one of the filters on the contact list.
Profile photo
Section titled “Profile photo”- Type: image
- Editable: no
Fetched from Facebook or Instagram in the background once the contact exists, then stored by AFP so the contact list does not depend on a platform URL staying valid. A contact can appear before its picture does. When the fetch fails, the field stays empty and is attempted again the next time that person interacts with the page.
- Type: page reference
- Editable: no
The connected page the interaction arrived on, recorded when the contact is created and kept current as later interactions arrive. Contacts belong to the account that owns the page, and when your account sits under a master account, the contacts that master account owns appear alongside your own.
- Type: list of tag references
- Editable: yes
The tag picker on a contact replaces the whole set: it saves the tags left selected, so clearing a tag removes it. A tag your account cannot see is refused and the contact is left unchanged.
Campaigns write to the same field with different semantics. An add_tag node merges its tags into whatever the contact already carries, and a remove_tag node subtracts its tags; neither replaces the set. Both find the contact by profile ID and platform, so an execution for someone who has no contact record yet changes nothing and carries on to the next node. Node types covers both nodes, and Keyword matching rules covers the condition that decides whether they run at all.
Last active
Section titled “Last active”- Type: timestamp
- Editable: no
Set to the moment the contact is created, and updated on every later interaction from that person. The contact list is ordered by it, newest first, and the date filter on that list measures against it — the list shows the last 30 days until you widen the range.
Comments
Section titled “Comments”- Type: number, derived
- Editable: no
Counted from the comments linked to the contact each time the record is read, rather than stored on the record. It counts comments, so activity that arrived only as a direct message does not raise it.
Gender
Section titled “Gender”- Type: fixed value
- Editable: no
Set to unknown when the contact is created, and left there.
How contacts are keyed
Section titled “How contacts are keyed”One record exists per person, per platform, per owner. Three consequences follow:
- Someone who comments on your Facebook page and also sends your Instagram account a message has two contact records, because the platform is part of the key.
- Two accounts that both interact with the same person hold their own record for them. Sharing under a master account is what makes another account’s record visible.
- A lookup by profile ID needs the platform as well. The identifier on its own does not point at one contact.
What is not stored
Section titled “What is not stored”- No email address, phone number, or free-text note. The fields listed above are the whole record.
- No contact you create yourself. There is no new-contact action and no import; a record appears only after someone interacts with a connected page.
- No record for someone who has only ever sent a direct message. A contact is created from an inbound comment.
- No message history. The comment count is the only activity the record itself carries.
Filters these fields drive
Section titled “Filters these fields drive”| Filter on the contact list | Field it reads | Notes |
|---|---|---|
| Platform | Platform | Facebook, Instagram, or all platforms |
| Tag | Tags | One tag at a time |
| Date range | Last active | A number of days back, or all time; 30 days by default |
| Search | Name | Matches part of the name, and does not search tags |
The list is ordered by last active, newest first, and returns 20 contacts per page by default.
Related
Section titled “Related”- Work with contacts — filtering, searching, and deleting the records these fields describe.
- Node types — the
add_tagandremove_tagnodes that write to the Tags field. - Keyword matching rules — how a condition decides which people reach a tag node.
- Route comments to a DM — building the comment-triggered campaign these records come from.
- Test and debug a campaign — a test execution leaves the contact’s tags untouched.