Skip to main content

Intercom Audience Targeting β€” Setup Guide for PPM AI OS

How to configure Intercom contact attributes so tenants, owners, and internal staff each see only their relevant Help Center sections.

Updated over 3 weeks ago

Overview

PPM's Help Center uses a single Intercom workspace with three audience-separated sections:

  • 🏠 Tenants β€” tenants of PPM-managed properties

  • 🏒 Owners β€” property owners whose assets PPM manages

  • πŸ”’ Internal β€” PPM staff only (should never be visible externally)

Audience targeting works by setting a custom contact attribute on each Intercom contact, then creating Help Center audience rules that show or hide collections based on that attribute.


Step 1 β€” Create the Custom Attribute

In Intercom, go to Settings β†’ Custom Data β†’ Contact Data β†’ New Attribute and create:

  • Name: ppm_role

  • Type: String (single-select or free text)

  • Allowed values: tenant, owner, staff

This attribute is the single source of truth for all audience routing.


Step 2 β€” Set the Attribute on Each Contact

There are three ways to set ppm_role on a contact:

A. Manually (one-off)

In Intercom, open any contact β†’ click the Attributes panel β†’ find ppm_role β†’ set the value.

B. Via Buildium Sync (n8n automation)

The PPM AI OS syncs contacts from Buildium. When a contact is created or updated in n8n, the workflow sets ppm_role based on the Buildium record type:

  • Buildium Tenant record β†’ ppm_role = tenant

  • Buildium Owner record β†’ ppm_role = owner

  • PPM staff (manual list) β†’ ppm_role = staff

The n8n HTTP call to set a contact attribute looks like:

POST https://api.intercom.io/contacts/{contact_id}
{
  "custom_attributes": {
    "ppm_role": "tenant"
  }
}

C. Via Intercom Messenger (self-service)

If a visitor identifies themselves via a form or chat, a custom bot flow can set ppm_role automatically based on their response.


Step 3 β€” Configure Help Center Audience Rules

In Intercom, go to Help Center β†’ Customize β†’ Audience for each root collection and apply the following rules:

Collection

Rule

Value

🏠 Tenants (19114025)

ppm_role =

tenant

🏒 Owners (19114031)

ppm_role =

owner

πŸ”’ Internal (19114038)

ppm_role =

staff

Important: Apply rules at the root collection level. Child collections automatically inherit the parent's audience rule β€” you do not need to set rules on each sub-collection individually.

Default behavior for unrecognised contacts: Set the fallback to show no collections until ppm_role is set. This prevents anonymous visitors from seeing internal content.


Step 4 β€” Fallback for Unknown Visitors

Visitors who have not yet been identified (no ppm_role set) will see a neutral Help Center landing page. Configure this in Help Center β†’ Customize β†’ Default Content:

  • Show a welcome message prompting them to identify themselves

  • Optionally show a public "General FAQ" collection with no audience restriction

  • Do not show Tenants, Owners, or Internal sections


Step 5 β€” AI OS Integration Points

The following PPM AI OS workflows interact with this attribute system:

KP Executor (workflow 7DGWkmTyMnx4DVDR)

When the AI CCO publishes a policy to Intercom, it sets the parent_id based on the policy's audience field from kp_proposals. The collection mapping is stored in Supabase table kp_intercom_collections. Audience values map as follows:

  • internal β†’ πŸ”’ Internal / Maintenance Procedures (19114040)

  • tenant β†’ 🏠 Tenants / Policies & Rights (19114029)

  • owner β†’ 🏒 Owners / Policies & Compliance (19114036)

Admin Agent (future)

When creating a tenant or owner contact in Intercom via the Admin Agent, the workflow must set ppm_role at creation time to ensure the contact sees the correct Help Center content from their first interaction.


Collection ID Reference

Audience

Section

Collection ID

Tenant

🏠 Tenants (root)

19114025

Tenant

Getting Started

19114026

Tenant

Rent & Payments

19114027

Tenant

Maintenance

19114028

Tenant

Policies & Rights

19114029

Tenant

Move-Out

19114030

Owner

🏒 Owners (root)

19114031

Owner

Onboarding

19114032

Owner

Financials

19114033

Owner

Property & Maintenance

19114034

Owner

Leasing

19114035

Owner

Policies & Compliance

19114036

Owner

Support & Portal

19114037

Staff

πŸ”’ Internal (root)

19114038

Staff

Operations

19114039

Staff

Maintenance Procedures

19114040

Staff

Compliance

19114041

Staff

Financial Procedures

19114042

Staff

HR & Admin

19114043


Ongoing Maintenance

  • When a tenant becomes a former tenant, update ppm_role to former_tenant or unset it

  • When an owner offboards, unset ppm_role to remove their access

  • New staff should have ppm_role = staff set manually until the HR onboarding automation is built

  • The Internal section should never be linked publicly anywhere β€” no QR codes, no website links, no Messenger buttons pointing to it

Did this answer your question?