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.@ and at least one . after it.
LinkedIn URL
A LinkedIn URL is accepted if it containslinkedin.<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 (
POSTorPATCHon/public/v2/contactsor/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.

