Understanding Segmentation Types

Summary: Every audience you create has a segmentation type: Persona, Account, or Audience. This determines what data gets queried and which filter fields are available. This guide explains when to use each type and how they work together.


The Three Segmentation Types

All three types use the same POST /api/v1/audiences endpoint. The segmentation_type field controls what happens behind the scenes.

flowchart TD
    P["Persona\n(Person-level filters)"]
    A["Account\n(Company-level filters)"]
    AU["Audience\n(Combines both + references)"]

    P --> AU
    A --> AU
    AU --> D["Download / Export"]

    style P fill:#8b5cf6,color:#fff
    style A fill:#3b82f6,color:#fff
    style AU fill:#22c55e,color:#fff
TypePurposeData SourceExample
PersonaDefine a target person profilePerson-level data (Elixir)"VP+ in Sales or Marketing"
AccountDefine a target company profileFirmographic data"Enterprise SaaS companies in California"
AudienceCombine intent topics with optional Persona/Account referencesPerson-level data (Elixir)"Cybersecurity intent + IT Decision Makers persona + Fortune 500 accounts"

Persona

A Persona defines who you're targeting based on personal and professional attributes.

Available Filter Fields

CategoryFields
Identityfirst_name, last_name, gender, age_range
Jobjob_title, job_title_normalized, department, seniority_level
Demographicsincome_range_lc, net_worth, has_children, is_homeowner, is_married
Contactlinkedin_url, personal_email, current_business_email, mobile_phones
Locationpersonal_city, personal_state, personal_state_code, personal_zip, personal_country

Example: IT Decision Makers

{
  "organization_id": "YOUR_ORG_ID",
  "project_id": "YOUR_PROJECT_ID",
  "audience_name": "IT Decision Makers",
  "type": "intents",
  "segmentation_type": "Persona",
  "filter": {
    "condition": "and",
    "rules": [
      {
        "fieldName": "INTENT",
        "conditionRules": { "operator": "in", "value": ["4eyes_115481"] }
      },
      {
        "fieldName": "department",
        "conditionRules": { "operator": "in", "value": ["information technology", "engineering"] }
      },
      {
        "fieldName": "seniority_level",
        "conditionRules": { "operator": "in", "value": ["director", "vp", "cxo"] }
      }
    ]
  }
}

Account

An Account defines which companies you're targeting based on firmographic attributes.

Available Filter Fields

CategoryFields
Companycompany_name, company_domain, company_industry, company_sic
Sizecompany_employee_count, company_employee_count_range, company_total_revenue, company_revenue_range
Locationcompany_address, company_city, company_state, company_zip_code, company_country
Contactcompany_phones, company_linkedin_url

Key Difference

Account audiences query a firmographic data source (company-level records) rather than the person-level Elixir data that Persona and Audience types use. The response includes an account_count field showing the number of distinct companies matched.

Example: Enterprise SaaS Companies

{
  "organization_id": "YOUR_ORG_ID",
  "project_id": "YOUR_PROJECT_ID",
  "audience_name": "Enterprise SaaS Companies",
  "type": "intents",
  "segmentation_type": "Account",
  "filter": {
    "condition": "and",
    "rules": [
      {
        "fieldName": "INTENT",
        "conditionRules": { "operator": "in", "value": ["4eyes_119418"] }
      },
      {
        "fieldName": "company_industry",
        "conditionRules": { "operator": "contains", "value": "software" }
      },
      {
        "fieldName": "company_employee_count_range",
        "conditionRules": { "operator": "in", "value": ["1001 to 5000", "5001 to 10000", "10000+"] }
      }
    ]
  }
}

Audience

An Audience is the most flexible type. It supports all person-level fields and can also reference existing Persona and Account audiences as filters.

Available Filter Fields

All fields from both Persona and Account, plus:

FieldDescriptionOperators
PERSONAReference a saved Persona audience by IDin, notin
ACCOUNTReference a saved Account audience by IDin, notin

When you reference a Persona or Account, the platform injects that audience's WHERE clause into your query. This means you can build reusable building blocks.

Example: Layered Targeting

First, create the building blocks:

Step 1: Create a Persona (audience ID 4738)

{
  "audience_name": "IT Decision Makers",
  "segmentation_type": "Persona",
  "type": "intents",
  "filter": { ... }
}

Step 2: Create an Account (audience ID 4801)

{
  "audience_name": "Fortune 500 Tech Companies",
  "segmentation_type": "Account",
  "type": "intents",
  "filter": { ... }
}

Step 3: Combine them in an Audience

{
  "organization_id": "YOUR_ORG_ID",
  "project_id": "YOUR_PROJECT_ID",
  "audience_name": "Cybersecurity Intent - IT Leaders at F500 Tech",
  "type": "intents",
  "segmentation_type": "Audience",
  "filter": {
    "condition": "and",
    "rules": [
      {
        "fieldName": "INTENT",
        "conditionRules": { "operator": "in", "value": ["cybersecurity_topic_id"] }
      },
      {
        "fieldName": "PERSONA",
        "conditionRules": { "operator": "in", "value": ["4738"] }
      },
      {
        "fieldName": "ACCOUNT",
        "conditionRules": { "operator": "in", "value": ["4801"] }
      }
    ]
  }
}

This returns contacts who:

  • Show intent for cybersecurity topics, AND
  • Match the "IT Decision Makers" persona (department + seniority), AND
  • Work at companies in the "Fortune 500 Tech" account list

Choosing the Right Type

GoalUse
Define a reusable person profilePersona
Define a reusable company profileAccount
Run a one-off intent query with inline filtersAudience
Combine existing Personas + Accounts with new intent topicsAudience
Get company-level counts (not person-level)Account

Common Patterns

Build once, reuse everywhere: Create a Persona for "VP+ in Marketing" and reference it across multiple Audience queries with different intent topics. When your targeting criteria change, update the Persona once and all referencing Audiences pick up the change on their next refresh.

Layered exclusion: Use notin with PERSONA or ACCOUNT to suppress contacts:

{
  "fieldName": "PERSONA",
  "conditionRules": { "operator": "notin", "value": ["4750"] }
}

This excludes anyone matching Persona 4750 (e.g., "Existing Customers") from the results.


API Differences by Type

All three types use the same endpoints. The only behavioral differences:

BehaviorPersonaAccountAudience
Data sourcePerson-level (Elixir)Firmographic (company-level)Person-level (Elixir)
account_count in responseNot populatedPopulatedNot populated
Can reference other segmentsNoNoYes (PERSONA, ACCOUNT fields)
Filter fieldsPerson + job + demographicsCompany onlyAll fields + segment references

All other behavior (creation, polling, sampling, downloading) is identical across types. See the Intent Audiences API for the full endpoint reference.


Next Steps