Skip to main content

Overview

A contact is identified by an email address, a LinkedIn URL, or a phone number. Each one has a format RevyOps checks before saving it. Below are the accepted formats with examples, and what happens when a value doesn’t match, whether it comes in through a CSV import, the public API, or an edit made directly on a contact’s record page.

Email

RevyOps lowercases and trims an email address before saving it. The public API and the record page run no other format check. On CSV import, a value is accepted only if it contains an @ and at least one . after it.

LinkedIn URL

A LinkedIn URL is accepted if it contains linkedin.<tld>/in/<slug>, with nothing but a scheme, www., or a subdomain in front of linkedin, all lowercase. The scheme, any trailing slash, and anything after the slug (query parameters, for example) are stripped, and the URL is saved as linkedin.com/in/<slug>.

Phone

A phone number must include a country code, written with a leading +. RevyOps parses and validates it, then saves it in E.164 format. A number with no country code is rejected, since there’s no default country to assume it belongs to.

What Happens To A Value That Doesn’t Match

What happens next depends on where the value came in:
  • CSV import: an identifier that doesn’t match its format is skipped, and the row still imports using whatever other valid identifiers it has. If none of a row’s identifiers are valid, the whole row is skipped.
  • Public API (POST or PATCH on /public/v2/contacts or /public/contacts): a LinkedIn URL or phone that doesn’t match is rejected, and the request fails with an error naming the field. An email isn’t format-checked on write, so it’s saved as given.
  • Record page: editing an identifier directly on a contact’s page follows the same rules as the public API. A LinkedIn URL or phone that doesn’t match is rejected and the edit doesn’t save.
See IDs and Lookups for how these identifiers are used to look up a contact, and Contacts for the full attribute list.