Skip to main content
Profile Enrichment turns your agent’s call transcripts into structured customer profiles attached to each contact. When a caller discusses buying a property, selling, investing, or renting, the relevant details are extracted from the conversation and saved to the contact — no manual note-taking required. Profiles grow over time: every engaged call enriches whatever’s already on file, and previously captured details are never overwritten with “unknown”.
Profile Enrichment uses LLM credits on each engaged call it processes. Disable profile types or fields you don’t need to keep usage predictable.

Who this is for

Real estate teams with high call volume

Agencies handling inbound or outbound calls at scale who want to capture what each contact is actually looking for without manual data entry after every call.

Quick Overview

Buyer

Captures finance readiness, purchase timeframe, search activity level, property type preference, buyer journey stage and more.

Seller

Captures selling timeframe, selling motivation, price expectation alignment, property condition, current agent engagement and more.

Investor

Captures investment ownership status, current management arrangement, landlord pain points, tenancy status and more.

Tenant

Captures rental requirements, move-in timeframe, household context and follow-up interest.

How to configure

  1. Open your agent and go to Post-Call Actions.
  2. Click Add Action and choose Profile Enrichment.
  3. Toggle which profile types to extract (Buyer, Seller, Investor, Tenant).
  4. Expand each profile type to enable or disable individual fields.
  5. Save your agent.
Profile Enrichment runs on both inbound and outbound calls by default — the value is in the conversation content, not the call direction. You can add it alongside your existing post-call actions (SMS, email, webhook); all actions fire independently after each call.

What gets extracted

All fields default to unknown and only populate when the conversation gives a clear signal. For example, if a buyer says “we’ve got pre-approval for eight hundred thousand”, the agent captures:
  • finance_readiness: PRE_APPROVED
  • buyer_journey_stage: ACTIVELY_SEARCHING
But if the caller doesn’t mention their timeframe, purchase_timeframe_bucket stays UNKNOWN until a future call reveals it. Previously captured values are never overwritten with unknown — the profile only grows richer over time. A single contact can have multiple profile types simultaneously. A caller who is selling one property and buying another ends up with both a seller profile and a buyer profile, each enriched from the same conversation.

When Profile Enrichment does not run

Profile Enrichment is deliberately conservative to avoid creating junk profiles and burning LLM credits on low-value calls. It is skipped when:
  • The call was not engaged — fewer than 2 human turns, or less than 100 characters of human speech (wrong number, single-word replies, voicemail hangups).
  • The caller is not a known contact — profiles attach to resolved contacts only, so calls from unknown numbers are skipped.
  • No profile types are enabled in the action configuration.
  • The action has already run for this call — Profile Enrichment is idempotent per call.

Viewing enriched profiles

Open a contact and expand the Customer Profiles panel in the contact settings sidebar. Each profile type the contact has been tagged with appears as an accordion section showing:
  • Known fields — only fields with a value are displayed; unknowns are hidden to keep the view clean.
  • Last enriched — a relative timestamp showing when the profile was last updated by a call.
  • Recent calls — links to the last three calls that enriched this profile, so you can jump straight to the transcript.
Profiles grow automatically with every engaged call — there’s nothing to update manually.
You can also fetch profiles programmatically via GET /api/v1/workspaces/{workspace_id}/contacts/{contact_id}/profiles. See the API Reference for authentication and response shape.

Enrichment history in call logs

After each call, the post-call actions timeline on the call log page shows the Profile Enrichment result — including how many profiles were created or updated and the total fields extracted. If enrichment was skipped (e.g. the call wasn’t engaged enough), the reason is displayed so you can understand why.

Privacy

Profile data is extracted from call transcripts your agent has already processed. It stays inside your workspace, is never shared across workspaces, and respects the same soft-delete and retention rules as your contacts.

Troubleshooting

Symptom: Profile did not update after a call

  • Likely cause: the call failed the engagement gate (too brief or one-sided).
  • What to do:
    1. Check the call duration and transcript — was there a real back-and-forth conversation with the human?
    2. Confirm the caller is resolved to a known contact on the call record (unknown callers are skipped).
    3. Confirm Profile Enrichment is enabled on the agent and at least one profile type is toggled on.

Symptom: Wrong profile type was extracted

  • Likely cause: the agent inferred a different intent from the conversation.
  • What to do:
    1. Review the transcript — does the conversation actually match the profile type you expected?
    2. If a contact is both a buyer and a seller, both profiles are valid — check whether the “other” profile also updated.
    3. For persistent misclassification, contact support with the call ID and workspace ID.

Symptom: A field I care about is still “unknown” after several calls

  • Likely cause: the caller never volunteered that specific information during the conversation.
  • What to do:
    1. Check your agent’s conversation prompt — is it actually asking about the topic?
    2. Adjust the prompt to surface the information you want captured.
    3. Re-run a test call to confirm the field now populates.