Overview
A contact is one record from one source, such as an email address from your sequencer or a LinkedIn profile from a LinkedIn tool. RevyOps creates or updates a contact record each time a connected platform sends an event about it.Contact Fields
Each contact carries exactly one of an email address, a LinkedIn URL or a phone number, and no two contacts in a workspace share one. The same human reached by email and on LinkedIn is two contacts, which RevyOps can link into one Person.
Custom Fields
Custom fields let you attach arbitrary data to contacts. Common use cases:- Industry, company size, or revenue
- Qualification tier
- Persona or ideal customer profile (ICP) tags
- Notes from the sales team
Custom field values are set via the API or automatically populated from webhook payloads when the platform includes them.
Sections on a record page
Contact, person, and company pages show their details in sections: Standard Fields, Custom Fields, and Companies on a contact or person, Standard Fields, People, and Custom Fields on a company. Each section header has the same controls:- Search (magnifier): filters the rows in that section. Press Esc or the X to clear it.
- More actions (three dots): Reveal all fields shows every field in the section, including the ones that have no value yet. Choose Hide extra fields to put it back. On Custom Fields it also offers Create new custom field, which opens the same form as Schema Settings.
- Add (plus), on Custom Fields: Add an existing custom field lists the fields your workspace already has and that this record is missing. Pick one, then type its value. The field is saved on the record once it has a value.
- Add (plus), on Companies: Add company searches your companies and links the one you pick. A contact has one company, so the plus shows only while a contact on the page has none.
Searching Contacts
Use the Contacts page search to find prospects by:- Email address
- First or last name
- Company domain
- LinkedIn URL
Contact Status
Contacts can have the following statuses:
Contacts can also be marked Do Not Contact independently of their status. A contact marked Do Not Contact is excluded from future outreach.
Email Status
Email Status says whether the email address can be sent to: Valid, Invalid, Risky, Catchall, Unknown, Bounced or Unsubscribed. It is separate from Contact Status, which tracks where the contact is in your outreach. A contact can bereplied with an Email Status of Valid.
Several tools can rate the same address over time: a verifier, a sequencer reporting a bounce, a rep editing it by hand. RevyOps keeps each tool’s latest result and shows one of them:
- Unsubscribed, from any tool, always shows.
- Otherwise the newest real result: a send, a bounce or a hand edit.
- Otherwise the newest verifier check.
Seeing each tool’s result
On a person or contact page, expand an email under Standard fields and click See why next to Email Status. A panel opens on the right:- The answer: whether to email this person (Safe to email, Email with care, or Don’t email this person), who set the status and when, and why that result wins. For example: “Don’t email this person. Instantly reported an unsubscribe on 6 Oct 2026. An unsubscribe always wins, even over newer results.”
- What each tool said: one row per tool with what it said and when. The deciding row says “Yes, this one decides”; every other row says why it doesn’t count, such as “No. A verifier check can’t beat a real result”. Where the tool used its own word, such as “deliverable”, the API returns it.
Editing a Contact’s Record
Click any field on a contact’s record page to edit it in place. Press Enter or click away to save, or press Escape to cancel. Editing an identifier (email, LinkedIn URL, or phone) checks the format the same way the API does; see Identifier Formats for what’s accepted. A custom field opens in the editor its type calls for. A dropdown opens the same option list as the filters: picking an option saves it, and Clear value empties the field. A multi-select lets you tick several options and saves when you click Done or click away. Number and date fields take a number or a date. A value that isn’t one of the field’s options stays listed, so opening the field never drops it.Removing a Custom Field Value
Hover a row under Custom fields and click the trash can to remove that field’s value from this record. A row that holds a value asks you to confirm first, because the value can’t be brought back; an empty row is just taken off the page. Emptying a value in the editor asks the same question. Only this record changes: the field stays available, and other records keep their values. It works the same way on company and person pages; on a person’s page the value is removed from every contact of that person. To delete a field for everyone, see Renaming, Retyping, and Deleting. Email Status opens a list of its seven values: Valid, Invalid, Risky, Catchall, Unknown, Bounced or Unsubscribed. A value you pick counts as a real result, so a later verifier check does not replace it, but a bounce or an unsubscribe does. If a tool has reported an unsubscribe, picking anything else asks first: your value is saved, but Email Status keeps showing Unsubscribed, because an unsubscribe always wins. Clearing the field removes every result for the email, yours and every tool’s, and Email Status stays empty until the email is checked again; when one of those results is an unsubscribe, it asks first, because the person could then be emailed again. (Through the API, verifier spellings such as Catch-All or Deliverable are saved as the matching value.) See Email Statuses for how the shown value is picked. A LinkedIn URL opens directly when clicked. A URL or email address inside a longer text field, like a note or a custom field, also opens directly rather than needing to be copied out first.Importing from CSV
Open CSV Tools → Import from CSV on the Contacts or People page. The import runs in five steps:- Upload File. Drop a
.csvfile or pick one. RevyOps tells a header row from a data row on its own; a file with no header row gets columns namedColumn 1,Column 2, and so on. The import is named after the file and today’s date; click the pencil at the top right to rename it. Download sample CSV saves a file with the columns that map on their own and one correctly formatted row, and View full import guide explains how to prepare the file, including the format each kind of value needs. - Identifiers. Every email, LinkedIn URL, and phone column RevyOps recognizes is picked for you, each on its own line, and you can change, add, or remove them. With Create companies from loaded CSV file ticked, pick the column that holds company websites too. If you pick the same column twice, a note says which one to change. Learn more about identifiers opens a short guide on how identifiers work.
- Review Issues. Nothing here stops the import. Rows with no usable identifier, or with a value in a date column that isn’t a date, are listed and left out; Download issues saves them as a CSV. A row with one usable identifier and another that is badly formatted, such as
4328885529in a phone column (no+and country code), still imports without the bad value: Details left out counts these by column and reason, Show rows lists them, and Download rows saves them so you can fix the file. Under Good to know you see what RevyOps handles for you, such as duplicate rows it removes (BEN@acme.comandben@acme.comcount as one) and column names that are blank or repeated. A row is only removed when every email, LinkedIn URL, and phone on it already appeared earlier in the file; a row that shares just some of them, such as the same phone with a different email, adds its new ones to the earlier row’s person. - Map Fields. Each column is matched to a field by its header, ignoring case, spaces, and punctuation:
First Name,Last Name,Job Title, and, when creating companies,CompanyorCompany Name. A plainNamecolumn is left for you to map. Pick a field for every other column or skip it; the eye icon shows the column’s first values. When your workspace allows new fields, Create new custom field at the bottom of the list adds one. Identifier columns are already placed by the Identifiers step. - Results. The Import Log fills in while rows are sent, and the summary shows how many rows were imported, how many were partially imported (imported without a badly formatted identifier), and how many were left out. Download the results or the rows not imported, or click View imported contacts to filter the list to this import. Undo this import undoes it right away, the same as from the History tab.
Import history and undo
The History tab lists every import with how many records it created, updated, skipped, and failed, and how many rows were partially imported when any were. On the Contacts and People pages these are people, so a row with an email and a phone counts once. Details shows its log. Renaming an import also renames the Import Name on its records, so filtering by it still finds them. Undo deletes the contacts, people, and companies the import created, and puts back the values it changed on records that already existed. A record edited after the import keeps its current values: if someone changes Ana’s first name after the import, Ana’s contact stays as it is and the rest of the import is still undone. Undo also keeps a contact that has had activity since the import, such as an email or a meeting, a contact linked to your CRM since then, and a company that other contacts still belong to. The confirmation says how many records will be deleted, put back, and kept. People the import merged stay merged, and anything already sent to a webhook or a CRM can’t be recalled, since undo only changes RevyOps. The confirmation lists the contacts and companies changed or used after the import, each with the reason it stays. Records you leave unticked stay as they are. Choose the contacts and companies to undo too, or use Select all: an edited record gets its values from before the import back, and a record the import created is deleted together with what uses it, such as its emails and calls, and contacts of a deleted company are left without a company. Activities and messages always stay as they are, and a record that a later import changed can’t be chosen; undo the later import first. When undo kept any records, the import shows Partly undone. Download undo report in the import’s menu lists every record with what happened to it and why a record was kept, and Undo again retries once the reason is gone. When the undo finishes, the list refreshes, and a filter showing only that import is cleared. What undo does with each kind of change:
Fields the import did not touch are never changed, so an edit to any other field survives the undo.

