CRM · Contacts, import and consent

One record per person. Proof for every send.

Everybody your brokerage knows, whether they came through the website, the assistant, a spreadsheet or an agent typing them in. Each is matched to one record, carries what they agreed to and when, and can be tagged, segmented and messaged from the same place. Consent is not a checkbox on the contact; it is a ledger you can show.

Matched by
Email first, then phone, one brokerage only
Consent
Four cells, from an append-only ledger
Import
Up to 50,000 rows, matched not duplicated
Acted on by
Tags, segments, campaigns and flows
One record

Wherever they came from, they are one person.

Five ways into the list, one matching rule. A person who enquired in March and signed the open-house sheet in July is one contact with two sources, not two contacts with half a history each.

chatWebsite enquiries

A listing inquiry, a showing request, a pre-construction request, a compare enquiry or a question to an agent. The contact is created with the source and the property attached.

Source · inquiry
edit_noteForms and the assistant

A marketing form arrives with its purpose, such as newsletter. The assistant's short form arrives as an enquiry on the property that was being discussed.

Source · form
upload_fileImports and by hand

A spreadsheet matched column by column, or a contact an agent types in. Both land in the same list and can be tagged, segmented and messaged like the rest.

Source · import, manual
Dana Whitfieldcontact · owned by Jordan Lee
dana.w@example.com · +1 647 555 0142Aurora, ON
SourcesListing inquiry (Mar 2026) · Form · Newsletter (Jul 2026)TagsHot buyer · Buyer leadPurposenewsletterEmail marketingAllowed · 6 Jul 2026, form checkboxSMS marketingNever recordedCustom fieldsBudget band: $900k–$1.2M
fingerprintThe matching rule. Email first, then the phone number in international form, always inside one brokerage. The same person at two brokerages is two records, so one brokerage's contact never leaks into another's automation.
shield_personA lead never re-owns a contact. When an enquiry matches an existing record, the lead attaches to it. The owner, the tags and the marketing state are left as they were.
Contacts

The list every other tool works on.

Contacts is the brokerage's CRM: name, email, phone, address, notes, an owner, and the history of how each person arrived. Tags, segments, campaigns and flows all read from it, so a list is built once and used everywhere.

  • Owned or shared. A contact belongs to the brokerage or to one agent. Agents see and add their own; admins see everyone.
  • Two screens, one list. The CRM view for people and notes; the Marketing Studio view for tags, consent, custom fields and imports.
  • Search, not scroll. Name, email, phone and city in one box, with tag, consent and source filters beside it.
  • Agents keep their own CRM too. The sellers and clients an agent is working with, in cards or a table, available to their presentations and, when the studio is on, to their segments.
Import contacts from a filepreview before anything is written
412parsed
396importable
9duplicates in file
7invalid
ruleEvery row needs an email address or a valid phone number. Rows that have neither are counted as invalid and reported, not skipped silently. Duplicates inside the file are counted once.
join_innerImport 380 new and update 16. The 16 already exist in your list, matched by email or phone, and are updated rather than copied.
verified_userConsent is all four parts or none. When, where, how and your confirmation. With all four, marketing and reply consent is recorded for every imported contact. With fewer, the contacts are imported and no consent is written.
undoReverse. Every import is listed under Recent imports and can be reversed, removing what it created, including the consent events it wrote.
Import

Bring the list you already have, without the duplicates.

Choose a CSV, match each column to the field it belongs to, and read the preview before it runs: how many rows are new, how many will update an existing contact, and how many cannot be read. The file is checked in your browser first, so a bad export is rejected before it is uploaded, and checked again on the server with the same rules.

  • Column matching. Name, email, phone, city and the rest, recognised from common header names and adjustable before you commit.
  • Up to 50,000 rows. Enough for a brokerage's history in one file.
  • Consent travels with the list, or it does not. An imported contact is only marketable if you attest when, where and how they agreed. The attestation is written to the ledger with the batch, and a segment can select on that batch.
  • Reversible. If the wrong file went in, reverse the batch. What it created is removed; what it updated is left alone.
Tags and custom fields

Say what someone is, and let the rest of the system act.

A tag is the simplest way to record what a contact is; a custom field records a fact about them a flow can write and read. Segments select on both, campaigns aim at the segments, and a flow can add a tag or save a value as it runs.

  • Tags describe the contact, not the campaign. Hot lead ages well; June open house does not. Brokerage tags are shared; an agent's own tags are private to them.
  • Deleting a tag has consequences, and says so. The confirmation counts the contacts that lose it, and any segment or flow trigger built on it stops matching.
  • Custom fields are brokerage-wide. Text, number, date, yes/no, a list of options, long text, email or phone. The key cannot change once created, because flows write to it by name.
  • Segments read all of it. Has or lacks a tag, has an email, has a phone, came from a source or from a particular import, and the consent that decides whether a send is allowed.
Tags and custom fieldsMarketing Studio

Tags

Everyone at this brokerage can apply these. Only an admin can rename or delete them.

Hot buyer7 contacts
Buyer lead642 contacts
Seller lead214 contacts
Open house396 contacts

Custom fields

Shared across the whole brokerage. A flow's Save Value step writes to one of these.

Budget bandselect · Under 500k / 500k to 1m / Over 1m
Move-by datedate
Pre-approvedyes / no
textnumberdateyes/noselectlong textemailphone
Tag · Open housearrow_forwardSegment · has the tag + SMS consentarrow_forwardMass SMS · 396 counted
Where it lives

The CRM on Growth. The studio side with the Lead Engine.

Contacts, owners, notes and the enquiry history come with Growth. Tags, custom fields, CSV import with attested consent, the consent ledger and the segments that read them are part of Marketing Studio, which the Automated AI Lead Engine add-on switches on.

Automated AI Lead Engine · add-on
CAD $299 a month, per brokerage

Added to Growth or Dominance AI. Switched on or off at any time, billed pro rata alongside your plan.

  • checkTags, brokerage-wide or private, with colours and counts
  • checkCustom fields in eight kinds, written by flows
  • checkCSV import with matching, preview, attested consent and reversal
  • checkConsent ledger with four cells per contact and manual recording
  • checkSegments, Mass SMS, the inbox and Automation Flows
  • checkDominance AI: email campaigns aimed by purpose

Growth includes the CRM itself: contacts, owners, notes, enquiries and the customer accounts that feed them.

Questions

Before you import the first list.

How are duplicates avoided?

One matching rule everywhere: email first, then the phone number in international form, always within your brokerage. An import checks each row against your existing contacts and updates a match instead of creating a copy; duplicates inside the file itself are counted once.

Can I text or email an imported list?

Only if consent is recorded for it. The import asks when, where and how the people agreed, plus your confirmation. With all four, marketing and reply consent is written for every imported contact; with fewer, they are imported without consent and no campaign will reach them until it is recorded.

What does the consent record hold?

Channel and purpose, whether it was granted or withdrawn, the time, the version of the wording that was shown, the source it came from, and hashed evidence of the request. It is append-only; a contact being deleted does not erase what they told you.

What happens when someone texts STOP or unsubscribes?

A STOP withdraws both texting purposes at once and outranks any earlier grant. An email unsubscribe is mirrored into the same ledger. From that moment the person is excluded from every campaign; nobody has to remove them by hand.

Can I undo an import?

Yes. Every import is listed under Recent imports with a Reverse action. Reversing removes what that batch created, including the consent events it wrote, and leaves contacts it merely updated in place.

Who owns a contact?

The brokerage, or the agent it is assigned to. Agents see their own; admins see everyone. When an enquiry matches an existing contact, the lead attaches to it without changing its owner, tags or marketing state.

What can a segment select on?

Has or lacks a tag, has an email, has a phone, came from a source, came from a particular import, and consent for the channel you intend to use. Rules are combined with AND; for OR, make two segments.

Ready when you are

One record per person. Proof for every send.

Growth brings the CRM; the Lead Engine adds tags, imports with attested consent and the ledger that makes a campaign lawful. Start with the list you already have.

Get started Assist Call