> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voqo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Profile Enrichment

> Automatically capture structured buyer, seller, investor and tenant details from every engaged call.

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".

<Warning>
  Profile Enrichment uses LLM credits on each engaged call it processes. Disable profile types or fields you don't need to keep usage predictable.
</Warning>

### Who this is for

<Card title="Real estate teams with high call volume" icon="users">
  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.
</Card>

### Quick Overview

<CardGroup>
  <Card title="Buyer" icon="house-chimney">
    Captures finance readiness, purchase timeframe, search activity level, property type preference, buyer journey stage and more.
  </Card>

  <Card title="Seller" icon="tag">
    Captures selling timeframe, selling motivation, price expectation alignment, property condition, current agent engagement and more.
  </Card>

  <Card title="Investor" icon="chart-line">
    Captures investment ownership status, current management arrangement, landlord pain points, tenancy status and more.
  </Card>

  <Card title="Tenant" icon="key">
    Captures rental requirements, move-in timeframe, household context and follow-up interest.
  </Card>
</CardGroup>

### 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.

<Note>
  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.
</Note>

### 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.

<Tip>
  You can also fetch profiles programmatically via `GET /api/v1/workspaces/{workspace_id}/contacts/{contact_id}/profiles`. See the [API Reference](/api-reference/introduction) for authentication and response shape.
</Tip>

#### 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 <a href="mailto:support@voqo.ai?subject=Profile Enrichment misclassification">support</a> 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.

### Related docs

* [Configure Post-Call Messaging](post-call-messaging)
* [Configure Post-Call Email Summary](post-call-email-summary)
