Skip to main content

Overview

People is a separate, agency-level feature that sits on top of your Contacts data. Instead of showing one row per contact record, it groups every contact that belongs to the same real human into a single Person and shows one row per human. This exists because a Contact row is deliberately narrow: RevyOps enforces that every contact has exactly one identifier — email, LinkedIn URL, or phone, never more than one. If the same person shows up in your data through more than one channel (say, an Instantly campaign by email and a HeyReach campaign by LinkedIn), or gets synced in from two different platforms, that’s two or more separate Contact rows. People is where those rows get reunited: each one links to a parent Persons record, and the People list shows you that parent record with every linked contact’s data rolled up into it.
People is only visible if your agency has the People List permission enabled. If you don’t see “People List” in the left nav, ask your agency admin to enable it.

People vs. Contacts vs. Companies

Contacts

One row per identifier. A person with an email and a LinkedIn URL is two separate Contact rows, each independently searchable and filterable.

Companies

One row per organization. Contacts are linked to a company by domain or explicit company data.

People

One row per human. All of a person’s Contact rows — across every channel and every linked company — are grouped into a single profile.
The underlying data is the same in all three views — People doesn’t introduce a new source of truth, it re-groups Contacts by their person_id.

The People List

The People List lives at People List in the dashboard nav and shows one row per Person. Every column is multi-valued: because a person can have several emails, phones, or company affiliations across their linked contacts, each cell shows one primary value plus a count badge — hover to open a popover listing every distinct value, most-recently-updated contact first. Values are deduplicated by exact string match before display, so the same value showing up on two linked contacts only appears once.
Job Title (the role field) is deduplicated per company rather than globally — if a person held the same title at two different companies, both appear; if two linked contacts recorded the identical title at the identical company, only one shows.

Searching

The search box is labeled Search by Email/LinkedIn/Phone. Its behavior changes depending on whether you have filters applied:
  • No filters active — search also matches first and last name, in addition to email, LinkedIn, and phone.
  • One or more filters active — search narrows to email, LinkedIn, and phone only; name matching is dropped.

Filtering, saved views, and CSV

People uses the same filter builder, saved/smart views, column visibility chooser, and CSV import/export as the Contacts and Companies master lists, applied to the person-aggregated dataset instead of raw contact rows. Saved views and column layout are per-user; saving or updating a shared view is admin-only. CSV import is admin-only; CSV export is available to any role that can reach the page.

Sorting

You can sort by Person ID, Score, or any contact-level field (name, identifiers, status, engagement stats). Sorting by a contact field sorts by the most recently updated linked contact’s value for that field, not by any single “primary” contact. Company columns and custom fields aren’t sortable.

Scoring

If your agency has scoring access, two extra pieces of scoring UI appear:
  • Scoring period filter — in the Filters panel, a “Scoring period” section lets you pick a preset or custom date range. Score then reflects the sum of activity within that window only (each activity contributing its remaining decayed value), computed as a snapshot job rather than live. Clearing the period returns to the live, all-time score.
  • Score History block — on the person detail page, a chart of the person’s score over time, with its own display-range selector that only changes what’s shown on the chart, not how any given day’s score was calculated.
Under a scoring period window, a person who scored zero within that window has no snapshot row and displays as 0. Outside a window (live scoring), a person with no snapshot row at all shows a blank score rather than 0.
The Score column itself is always visible on the People list regardless of scoring access — only the period filter and history chart require the permission.

Merging duplicate people

If the same human ended up as two or more separate People rows — for example, their email-based and LinkedIn-based contacts never got linked — you can merge them.
  1. Select two or more rows using the checkboxes (available to admin and client roles) and click Merge.
  2. A comparison dialog shows every candidate contact side by side — email, LinkedIn, phone, job title, status, and company — with fields that already agree across all contacts marked “Same on both.”
  3. Pick a final name. This is the one field the merge doesn’t keep as a multi-value: the first/last name you choose here overwrites the name on every contact being merged. Everything else — emails, phones, LinkedIn URLs, company affiliations, custom fields — is preserved and becomes part of the merged person’s multi-value cells; nothing is deleted or deduplicated by the merge itself (deduplication only happens at display time, by exact string match, same as everywhere else on the list).
  4. Confirm. The first person you selected becomes the primary record: its ID persists, and every contact from the other selected people is relinked to it. The other People rows are deleted (their Contact rows are not — they’re reassigned, not removed).
Merging is not reversible as a single action. If you merge the wrong records, you have to manually detach each contact back out one at a time from the merged person’s detail page.

The person detail page

Clicking a row opens the person detail page at /dashboard/client/people/[id]. It’s a split-panel layout:
  • Left panel — a profile header, a Standard fields block listing every linked identifier (email/phone/LinkedIn) grouped and expandable, with each identifier’s own contact-level fields (status, campaign stats, origin, etc.) nested underneath; a merged custom fields block; a Companies block listing every distinct company the person is linked to through any contact, each with inline-editable standard fields and a link to that company’s own page; and, if scoring is enabled, the Score History block.
  • Right panel — an activity timeline aggregating activity across all of the person’s linked contacts (filterable by company, contact, or user), rather than a single contact’s history the way the Contacts detail view shows.
This page has no page-level role restriction of its own — access is enforced by the underlying API calls, which require the admin or client role.

Editing custom fields from the detail page

The custom fields block shows the merged union of all linked contacts’ custom fields — for each field name, the first non-empty value found wins. Editing a value here saves it against the person’s first linked contact, and the backend propagates the same value to every other contact linked to that person, so the merged view and every underlying contact stay in sync.

Detaching (splitting) a contact out of a person

If a person has two or more linked contacts, you can detach one back out into its own separate People row — useful when a merge (or an incorrect automatic link) grouped two different humans together. Hover an identifier row in the Standard fields block and click the unlink icon. A confirmation dialog names the identifier being detached and requires you to check an explicit acknowledgment box before the Detach button becomes active. Confirming calls the split endpoint, which:
  • Creates a brand-new Person record.
  • Moves only that one contact onto it.
  • Leaves the rest of the original person’s contacts untouched.
Detach is disabled when a person has only one linked contact — a person must always have at least one.
Detaching doesn’t delete anything, and it isn’t permanent: if you split a contact out by mistake, you can re-merge it back into the original person from the People List.

FAQ

They have two Contact rows with different emails that both link to the same person_id — either created that way by an integration, or joined together by a previous merge. Hover the Email cell to see both, with the most recently updated one shown first.
The activity tied to that specific contact moves with it to the new, separate Person record. It’s no longer counted in the original person’s aggregated activity timeline or score.
No, except for the first/last name field, which is explicitly overwritten by the name you choose in the merge dialog. Every other field from every merged contact survives as a multi-value on the resulting person.
Yes — select any number of rows (two or more) before clicking Merge. All selected people are merged into the first one you selected.