# Contacts and lists

> A simple CRM in Contacts: adding people and CSV import, stages, tags, lists in your menu, reminders, fields and data from your own system through the API.

Contacts is a simple CRM for your team. It holds everyone you talk to, with a stage, an assignee, tags, fields, notes and reminders.

![The contact list with stages, tags, reminders and lists in the menu](https://hrc.lt/screens/en/contacts-list.desktop.2400.08077b4a.webp)

## How contacts appear

- **By themselves.** When someone writes through the chat widget or by e-mail, or your site recognizes them.
- **By hand.** The "New contact" button. A name or an e-mail is enough. If the e-mail already belongs to a contact, the app shows it and does not create a second one.
- **From a CSV file.** The "Import CSV" button, see below.
- **Through the API.** From your own system, see [Data from your own system](#api).

An e-mail you type in is linked to the contact, so the person's reply to your e-mail lands on the same contact. It stays unverified until the person replies to your e-mail.

## Import and export

"Import CSV" takes four steps:

1. **File:** a `.csv` up to 5 MB and 5000 rows. The separator (`,`, `;` or a tab) and the encoding are detected for you.
2. **Columns:** pick where each column goes: name, e-mail, phone, company, stage, tags, note, one of your fields or a new detail. Common headers are recognized in five languages.
3. **Settings:** what to do when the contact already exists (update or skip), and which tag, list, stage or assignee everyone imported gets. Before the import you see how many are new, already there and skipped.
4. **Import:** the progress and the result. You can download the skipped rows with the reason.

![CSV import: the file's columns matched to contact fields](https://hrc.lt/screens/en/contacts-import.desktop.1600.de25db7b.webp)

Export: the ⋯ menu, "Export CSV". The file has the visible columns, the e-mail and the phone, up to 10 000 rows. It opens in Excel.

## Stage, assignee and tags

- **Stage:** Lead, In talks, Customer, Former customer, Not a fit or No stage.
- **Assignee:** one team member. The "Mine" list shows your contacts.
- **Tags:** short names with a color, like "VIP". Manage them in the ⋯ menu, "Tags". A tag your site or the API sends is added to the list by itself.

You can change the stage and the assignee right in the list row.

## Lists in your menu

“All” shows every contact, most recent activity first. To see only the people who wrote to you, open “Filters” and choose “Has conversations”.

Under Contacts the menu always has "All", "Mine" and "Reminders". Create your own lists with "New list":

- **I add people myself:** select people in the list and choose "Add to list".
- **By filters:** the list updates by itself, for example every customer you have not talked to for 30 days. Pick the filters and press "Save as list".

The whole team sees a list, or only you. A company can have up to 50 team lists, and each member up to 20 of their own.

![The new list dialog: add people yourself or by filters](https://hrc.lt/screens/en/contacts-new-list.desktop.1600.7de068e7.webp)

## A list from a registry

"New list" has two more options: "From the company registry" and "From the service provider registry". They fill a new list with companies from a registry.

1. **Filters:** for companies, type of activity and city (include or exclude, several at once), number of employees, annual revenue, VAT code, e-mail, phone and website. For service providers, service category, city, e-mail, phone and website.
2. **How many were found:** you see straight away how many companies match the filters.
3. **Data example:** shows what the data looks like. It always shows the same sample companies, not your search results.
4. **How many to add:** enter a number and press "Create the list and add". The companies become contacts in the new list. You can close the window, adding continues.

We import and immediately check the e-mail addresses. Free, once every 30 days: an address checked in the last 30 days is not checked again. Every contact gets a badge: Valid, Risky or Bad ([E-mail check](#email-check)).

Only newly added companies count. Ones already in contacts are just added to the list and do not count. 100 companies in total are free, and the "Companies from registries" add-on gives more ([Billing](https://hrc.lt/en/docs/account/billing)).

## Reminders and last contacted

With a contact you can schedule a reminder, a call or a meeting: a time, a duration, a place or a meeting link and a short note, like "Call about the offer". A contact can have several items. An item is for the contact's assignee, or for whoever scheduled it when there is no assignee.

- The "Reminders" list is a timeline: overdue items, today with the "Now" line, tomorrow, this week, later and recently done ([Reminders and your calendar](https://hrc.lt/en/docs/contacts/calendar)).
- On an item choose "Done" or "Postpone". When a call or a meeting did not take place, choose "Did not happen" in the ⋯ menu.
- In the "All" list the "Reminder" column shows the next item, like "in 2 h", "Tomorrow 09:00" or "Overdue, 2 days ago".
- When it is due, a Telegram notice comes if Telegram is linked and "Contact reminders" is on ([Notifications](https://hrc.lt/en/docs/inbox/notifications)).
- You can see your planned items in your Google, Apple or Outlook calendar too ([Connect your calendar](https://hrc.lt/en/docs/contacts/calendar#subscribe)).

**Last contacted** is counted for you: your reply in any channel, a new e-mail from the contact page, or a logged contact (a call, a meeting or other). Notes do not count.

![The reminders timeline: overdue items, today with the "Now" line and what comes next](https://hrc.lt/screens/en/contacts-reminders.desktop.1600.c5d199e1.webp)

## The contact page

At the top you see the stage, the assignee, the tags and the next planned item, and under them the quick actions: "Write e-mail", "Note", "Log contact", "Schedule" and "Open conversation".

- **Planned:** the contact's reminders, calls and meetings in time order, overdue first. "Earlier" shows the past ones.
- **Activity:** conversations, notes, calls, site activity and changes in one feed, with filters.
- **Notes** are for your team only.
- **Write e-mail** sends through a connected company mailbox ([Mailboxes](https://hrc.lt/en/docs/inbox/mailboxes)).

![A contact page with planned items, a note, a call, conversations and fields](https://hrc.lt/screens/en/contact-page.desktop.1600.018936eb.webp)

## Fields

Fields are your company's details about customers, like "Contract end". Types: text, number, date, yes or no, choice and link. Up to 30 fields.

Every field has a key. When your site or the API sends a value under the same key, it shows with the field's name. Other values show under "Other details" with their source, and "Make it a field" turns one into a field.

## Bulk actions

Select rows or "Select all", then change the stage, the assignee, the tags, a list or the reminder, export or delete. Only owners can delete, and the app asks first.

## E-mail check

Select contacts or a whole list and press "Check e-mails". Before it starts, the app shows how many credits the check needs and how many you have. If you are short, an owner can top up. The check runs in the background and shows its progress.

The result shows as a badge on the contact's row and on the contact page: Valid, Risky, Bad or Expired. A check is valid for 3 months, then it shows as Expired. The "E-mail check" filter shows only contacts with a valid address, or with any other result, including Not checked. Prices and credits: [Add-ons and billing](https://hrc.lt/en/docs/account/billing).

## Data from your own system

You can send the plan, orders or the contract date yourself:

- **From your site** with the chat widget JavaScript API: [Visitor profile](https://hrc.lt/en/docs/widget/visitor-profile).
- **From your server** through the [REST API](https://hrc.lt/en/docs/ai-agents/rest-api) or [MCP](https://hrc.lt/en/docs/ai-agents/mcp) with an AI agent key. It needs the Conversations and messages area with change access.

- **`contact_upsert`** (`/private/contact/upsert`): creates or updates a contact by e-mail or by your user id. It never merges contacts.
- **`contact_event_create`** (`/private/contact/event-create`): records what the person did in your system. Up to 20 events a call, shown in Activity.
- **`contact_set_profile`** (`/private/contact/set-profile`): changes the profile of a known contact ([Trusted fields](https://hrc.lt/en/docs/ai-agents/rest-api#trusted-profile)).

These values have the source "team", so neither your site nor the browser can change them.

```js
// From your backend: create or update a customer by e-mail.
// Values set here have the source "team".
// Uses hrc() from the Node.js example.
const { contactId, wasCreated } = await hrc('/private/contact/upsert', {
  companyId: me.companyId,
  email: 'jane@example.com',
  name: 'Jane Doe',
  company: { name: 'Acme', plan: 'Pro' },
  stage: 'customer',
  set: [
    { key: 'orders', type: 'number', value: 14 },
    { key: 'contract_end', type: 'date', value: '2027-03-31' },
  ],
  addTags: ['vip'],
});

// What the customer did in your system: shown in Activity.
await hrc('/private/contact/event-create', {
  companyId: me.companyId,
  contactId,
  events: [
    {
      name: 'order-placed',
      props: [{ key: 'total', type: 'number', value: 1240 }],
    },
  ],
});
```

Over MCP, AI agents can also find and read contacts, change the stage and the assignee, write notes, set reminders and manage lists. They cannot delete contacts, tags, lists or fields.
