# Managing Contacts

Contacts are the foundation of Karmaflow.ai's CRM. Every person your business interacts with across calls, chats, email, or SMS can be represented as a contact record.

## Viewing Contacts

Navigate to **CRM > Contacts** to open the contact list. Two view modes are available from the toggle in the toolbar:

- **Cards** — paginated table with rich activity badges (calls / chats / emails / SMS / memories).
- **Spreadsheet** — Attio-style grid with a sticky header, frozen first column, inline edit on click, drag-to-resize columns, multi-select with Shift-click range, sortable headers, and a bulk-action bar that appears when rows are selected.

The active view persists per page in your browser. Both views share the same pagination and search.

## Searching, Filtering, and Saved Views

The toolbar exposes:

- **Search** — name, email, company, or phone.
- **Saved view picker** — apply a reusable filter + sort + columns preset. If you have a default view set, it loads automatically. See [Saved Views](/help/crm/saved-views).
- **Filter / Sort / Columns** — build the list shape inline without leaving for the Views page: AND/OR/nested filter groups, removable filter chips, sort by any field, and choose which columns show (your tenant custom fields are all filterable, sortable, and selectable). Save the result as a new view or update the one you're on.
- **Ask AI** — describe the segment you want in plain English ("hot leads in Ontario with no open task") and the AI turns it into a structured filter, validated against the allowed fields, loaded into the toolbar for you to tweak.

Your filter, sort, and column choices are saved **per user on the server**, so your working list looks the same on every device.

### Activity and intent filters

Beyond a record's own fields, you can filter by:

- **Activity (related records)** — "has an email sent after `<date>`", "no open task", "has a deal in stage X", and similar existence checks across emails, notes, tasks, deals, calls, SMS, chats, and meetings.
- **Intent & sentiment** — buying intent, sentiment, relationship temperature, and confidence, drawn from [Relationship Intelligence](/help/crm/relationship-intelligence). (A record is only matched once its AI read has been generated.)

## Segment Actions (Organize)

When a filter is applied, a **select-all-matching** banner lets you act on the *entire filtered segment*, not just the rows on the current page. From the action bar you can:

- **Add to list** / **New list**
- **Tag** / **Untag**
- **Assign** an owner
- **Enroll** the segment in a sequence
- **Task** — create one task per record
- **Delete**

Owner and tag actions run as a single bulk update so they scale to large segments; list and task actions enumerate records up to a safety cap and tell you if a segment is too large rather than silently truncating.

## Creating a Contact

1. Click **+ Add Contact**.
2. Enter the contact details such as name, email, phone, and company.
3. Optionally assign tags, a company, and custom field values.
4. Click **Save**. Field-level validation errors appear inline if any field is rejected.

## Inline Editing (Spreadsheet view)

In Spreadsheet view, click any cell in an editable column to enter edit mode. Type the new value, then:

- **Enter** — commit.
- **Esc** — cancel.
- **Tab** / **Shift+Tab** — move to the next / previous column.
- Arrow keys move the focus ring between cells.

Editable columns on contacts: first name, last name, email, phone, company, lifecycle stage. Edits PUT to the contact and update the row optimistically.

## Bulk Edit and Bulk Delete

Select multiple rows in Spreadsheet view (checkboxes; Shift-click for a range). The bar at the top of the grid shows:

- **Edit** — opens a dialog to set one field on every selected row in a single batch.
- **Delete selected** — removes every selected row.

## Contact Detail View

Select any contact to open the detail page. The page opens with a full-width **hero** — avatar, name (inline-editable), company link, inline email and phone, LinkedIn / website, and status chips — with the action buttons grouped into clusters (Conversations · Enrich / Re-evaluate · Call / Meet / Note · Task · Deal). Most sections below are collapsible accordions whose open/closed state your browser remembers.

Just below the hero:

- **Vitals strip** — four at-a-glance, deterministic signals computed live from your existing CRM activity (no new tracking): **Last touch** (most recent interaction on any channel and how long ago), **Responses** (inbound "pull" vs outbound "push" and time since the last reply), **Engagement** (a blended cross-channel rate — the share of outreach that earned any positive signal), and a **Trend** — New / Warming / Steady / Cooling / Dormant with a one-line plain-English reason. The windows that drive the trend follow your workspace's **engagement cadence** setting (B2B runs slow, B2C/support fast; configurable per pipeline and lifecycle).
- **Recommended next move** — an AI-chosen, prefilled action card grounded in this contact's own history. It surfaces the suggested move plus one or two ready-to-run actions the AI picks from a fixed catalog (create task, draft email, log note, new deal, add tag, set lifecycle); clicking one opens the right surface already filled in and linked to the contact. It shows nothing when there's no clear next step.

The side panels and sections include:

- **Tasks** — follow-up items linked to this contact; "Add task" opens a full slide-in drawer (status, start/due/reminder, estimate, notes, tags, recurrence).
- **Lists** — list memberships.
- **Find similar** — neighbours from the semantic index. Useful for "show me other contacts that look like this one."
- **Most relevant context** — semantically closest historical interactions across all channels (calls, chats, emails, SMS, notes). Great cold-open for an account exec about to call.
- **Notes** — paginated note feed with inline add.
- **Custom fields** — edited inline with a pencil-first affordance.
- **Change history** — admin-only audit trail for the record.
- **Presence avatars** — when other teammates are viewing or editing the same record, their initial chips appear in the header.

The main panel shows a **unified engagement & activity timeline**. Alongside channel interactions and notes, it now records **every action taken on the record itself** — owner changes, tag changes, list membership, lifecycle changes, contact ↔ company links, merges, and more — plus processed web-form submissions, so the timeline is a complete history of the relationship. Clicking a timeline row opens the underlying record in a slide-in drawer. The action bar sends email / SMS, starts a call, or logs a note.

## Importing Contacts

You can import contacts in bulk from CSV files:

1. Go to **CRM > Contacts**.
2. Click **Import**.
3. Upload your CSV file.
4. Map the CSV columns to Karmaflow.ai fields.
5. Review and confirm the import.

For more detail, see [Importing Data](/help/crm/importing).

## Custom Fields

Use custom fields to capture information specific to your business. Open **CRM → Setup → Custom Fields** to create and manage them. Supported field types include text, number, date, dropdown, and checkbox. **AI-research fields** auto-populate from the record's own history plus optional web search — full walkthrough in [Enriching Records with AI](/help/crm/enrichment).

<!-- SCREENSHOT: contacts-list.png — Contact list view with filters -->
<!-- SCREENSHOT: contact-detail.png — Contact detail page showing timeline -->
<!-- SCREENSHOT: contacts-spreadsheet.png — Spreadsheet view with inline edit -->
