Contacts

Manage people and relationships in your CRM with lifecycle tracking, lead scoring, and AI-powered insights.

Contacts are the core entity in your CRM. Each contact represents a person with their associated information, activity history, deals, and relationships. Leenops tracks contacts through their full lifecycle, from first touch to long-term customer.

Contacts List

Navigate to CRM → Contacts to see all contacts in your workspace. The list page provides powerful filtering, sorting, and bulk operations.

Filter Preset Tabs

Quick-access tabs at the top of the page let you switch between common views:

  • All Contacts — Every contact in your workspace
  • Qualified — Contacts in the qualified lifecycle stage
  • Customers — Contacts marked as customers
  • Inactive — Contacts that have gone inactive

A Deals dropdown filter is also available with options for No Deals (contacts without any associated deals) and Active Deals (contacts with at least one open deal).

Search and Filtering

The inline search bar supports debounced server-side filtering, so results update as you type without overwhelming the server. You can search by name, email, company, or any indexed field.

For more advanced filtering, use Saved Filter Presets. Click the filter presets button to save your current filter combination for quick access later. Presets are shared across your workspace.

View Modes

Toggle between two view modes:

  • Table view — A dense, sortable table ideal for managing large contact lists
  • Grid view — A card-based layout showing contact summaries at a glance

Sorting

In table view, click any column header to sort. Sortable columns include:

  • Contact name
  • Job title
  • Company
  • Contact type
  • Lifecycle stage
  • Last activity date
  • Deals count
  • Owner

Pagination

Contacts are loaded 50 per page. Use the pagination controls at the bottom to navigate through your full contact list.

Creating Contacts

From the UI

  1. Navigate to CRM → Contacts
  2. Click New Contact
  3. Fill in the required field (email) and any optional fields
  4. Optionally select a Company to link this contact to an organization
  5. Click Create Contact

The create contact form includes:

FieldRequiredDescription
EmailYesPrimary email address
First / Last NameNoContact's name
PhoneNoPhone number
CompanyNoLink an existing company, or type a new name to create one inline (see below)
Job TitleNoRole or position
Contact TypeNoNew, Engaged, Qualified, Lead, Prospect, Customer, Inactive, Partner, or Vendor
StatusNoActive, Inactive, Pending, or Blocked
Lead SourceNoWhere this contact originated
NotesNoInternal notes

Leenops automatically checks for duplicate email addresses when creating a contact. If a contact with the same email already exists, you will be prompted before creating a duplicate.

Creating a Company Inline

You don't need to leave the contact form when the company doesn't exist yet:

  1. Type the company name in the Company field
  2. Click the Create company "…" row that appears at the bottom of the dropdown
  3. The company is created instantly and linked to the form — finish the contact as usual

If you type a company name but close the dropdown without picking the create row, Leenops does not discard it: a notice appears under the field offering Create & link (or Dismiss), and if you submit the form anyway, the company is created and linked automatically. Companies created this way start with just a name — open the company afterwards to add VAT, address, and other details.

From a Company Page

You can also create a contact directly from a company's detail page with the company pre-filled:

  1. Navigate to the company's detail page
  2. Click Add in the Key Contacts panel, or open the Contacts tab and click Add Contact
  3. The contact form opens with the company already linked — fill in the details and save
  4. You are returned back to the company page, with an Add another action in the confirmation toast

This round trip makes batch onboarding fast: adding four people to a new account never loses the company context.

Other Creation Methods

  • Quick Add (+) — Use the + button in the header (or Cmd+Shift+N) to quickly create a contact from anywhere in the app. The company can be selected during creation.
  • CSV Import — Bulk import contacts from spreadsheets. Click the import button on the contacts list page and upload a CSV file with headers matching contact fields.
  • API — Create contacts programmatically via the REST API. See the API documentation for details.
  • AI Assistant — Use natural language, e.g., "Create a contact for John Smith at Acme Corp with email john@acme.com"
  • Email Sync — Contacts are automatically created from connected email accounts when new correspondents are detected.

CSV Export

Export your contacts to CSV at any time by clicking the Export button on the contacts list page. The export respects your current filters, so you can export a filtered subset of contacts.

Contact Properties

Core Fields

FieldRequiredDescription
EmailYesPrimary email address (must be unique)
First NameNoContact's first name
Last NameNoContact's last name
PhoneNoPhone number
CompanyNoLinked company (searchable dropdown)
Job TitleNoRole or position

Classification

FieldOptionsDescription
Contact TypeNew, Engaged, Qualified, Lead, Prospect, Customer, Inactive, Partner, VendorHow you categorize this contact
StatusActive, Inactive, Pending, BlockedCurrent operational status
Lifecycle StageNew, Engaged, Qualified, Customer, InactiveWhere the contact is in your funnel

Additional Fields

FieldDescription
Lead SourceWhere this contact originated (e.g., website, referral, event)
Lead ScoreNumeric score (0-100) based on engagement and fit
Stakeholder RoleThe role this person plays at their company (Champion, Economic Buyer, Decision Maker, Executive, User, Legal, Procurement, Blocker). Surfaced on the company detail page for enterprise and key-account companies.
TagsFreeform labels for grouping and filtering
NotesInternal notes visible only to your team
LinkedInLinkedIn profile URL
CityContact's city
CountryContact's country
TimezoneContact's timezone for scheduling

Stakeholder roles are the account-level default — the role this person plays most of the time at this company. For specific deals where the role differs (e.g., the legal reviewer is the actual decision-maker on a small renewal), per-deal roles on the deal detail page override the default in that context.

Custom Fields

You can add custom fields to contacts at CRM → Settings → Custom Fields. Custom fields appear in the contact detail sidebar and are available for filtering and export.

Contact Detail Page

Click any contact to open their full detail page with a comprehensive view of their profile, activity, and relationships.

Hero Section

The top of the page displays the contact's avatar, full name, lifecycle badge, tags, job title, and company. This gives you an at-a-glance summary of who the contact is.

Action Bar

A row of quick actions sits below the hero section:

  • Call — Initiate a call (logged as an activity)
  • Email — Open the email composer
  • Actions dropdown — Additional options:
    • Message the contact
    • Create a Deal linked to this contact
    • Schedule a Meeting
    • Create a Quote

Metadata Row

Below the action bar, key contact details are displayed inline:

  • Email address
  • Phone number
  • LinkedIn profile link
  • Location (city, country)
  • Timezone

Lifecycle Phase Chevrons

A visual progress indicator shows where the contact sits in your sales funnel:

NewEngagedQualifiedCustomerInactive

Click any phase to update the contact's lifecycle stage. The chevron display makes it immediately clear how far along a contact has progressed.

Lead Score

Each contact has a lead score (0-100) with a letter grade from A (highest) to F (lowest). The score breakdown shows the individual factors contributing to the overall score, helping you understand why a contact is ranked the way they are.

Lead scores are calculated based on engagement signals like email opens, meeting attendance, deal activity, and profile completeness. Factor weights can be adjusted in CRM settings.

Activity Feed

The activity timeline shows every interaction with the contact in chronological order. Filter the feed by activity type:

  • Everything — All activity types combined
  • Calls — Phone calls and call logs
  • Emails — Sent and received emails
  • Meetings — Scheduled and completed meetings
  • Notes — Internal notes added by team members
  • Proposals — Quotes and proposals sent
  • Email Events — Opens, clicks, bounces, and delivery events

Each activity entry shows the timestamp, the team member who performed it, and relevant details.

Context Sidebar

The right sidebar provides structured information at a glance:

  • Contact Details — Full property list with inline editing
  • Customer History — Timeline of key milestones (first contact, became customer, etc.)
  • Tags — View and manage tags
  • Custom Fields — Any custom fields you have configured
  • Notes — Quick notes section

AI Panel

The AI panel provides intelligent insights powered by your workspace AI:

  • AI Summary — A concise, auto-generated summary of the contact's history and current status (cached for 24 hours)
  • Suggested Actions — Recommended next steps based on the contact's activity and lifecycle stage
  • Similar Contacts — Other contacts in your CRM with similar profiles or behaviors

Linking Contacts to Companies

Every contact can be associated with one company at a time. This relationship powers company-level reporting, deal tracking, and organizational views.

When Creating a Contact

Select a company from the Company dropdown in the create contact form, or type a new name to create one inline.

On the Contact Detail Page

Two ways, no full edit dialog needed:

  • The company name in the hero section is a link — click it to jump to the company's detail page.
  • The Company field at the top of the Contact Details sidebar lets you search, switch, create inline, or clear the company directly.

The full Edit dialog also includes the Company field if you're already editing other properties.

From a Company Page

You can link existing contacts to a company from the company detail page:

  1. Navigate to the company's detail page
  2. Click Link Existing (Key Contacts panel or Contacts tab)
  3. Search for a contact — each result shows the contact's current company, if any
  4. Select a contact:
    • If they have no company, they are linked immediately
    • If they already belong to another company, Leenops asks you to confirm the move — a contact can only belong to one company, so linking here detaches them from the other one
    • If they are already linked to this company, nothing changes and you're told so

Removing a Contact from a Company

From the company's Contacts tab, open the menu on any contact row and choose Remove from company. After confirming, the association is cleared — with an Undo action in the toast if it was a mistake.

Unlinking never deletes the contact — only the association is removed. The contact remains in your CRM as an independent record. You can also unlink by clearing the Company field on the contact's detail page.

Primary Contact

Each company can have one primary contact — the person pre-filled when you create deals, quotes, and invoices from the company page. Set it from the menu on a contact row (Set as primary contact); the chosen contact shows a Primary badge. If no primary is set, Leenops falls back to the top-ranked contact from the Key Contacts panel (stakeholder role, then recent activity).

Bulk Actions

Select multiple contacts from the list view to perform bulk operations:

  • Change Status — Update the status of all selected contacts at once
  • Assign Tags — Add or remove tags across multiple contacts
  • Delete — Remove selected contacts (with confirmation)

To select contacts, use the checkboxes in table view. You can select all visible contacts or pick individual ones.

Merge Contacts

When you have duplicate contacts, use the merge feature to combine them into a single record.

  1. Open the contact you want to keep as the target

  2. Select Merge from the actions menu

  3. Search for and select the duplicate contact

  4. For each of the 9 mergeable fields, choose how to resolve conflicts:

    • Keep — Retain the target contact's value
    • Use — Take the duplicate contact's value
    • Combine — For array fields like tags, merge both sets together

    Company conflicts show the company names, so you always know which organization you're keeping.

  5. Confirm the merge

Merging is permanent. All activities, deals, and relationships from the duplicate contact are transferred to the target contact. The duplicate is then deleted.

Convert Lead

Convert a lead into a customer or prospect when they move forward in your pipeline.

  1. Open the lead contact's detail page
  2. Click Convert Lead from the actions menu
  3. Choose the target type: Customer or Prospect
  4. Optionally create a deal during conversion:
    • Deal title
    • Pipeline stage
    • Currency
    • Deal value
    • Expected close date
  5. Confirm the conversion

The contact's lifecycle stage and type are updated automatically. If you create a deal, it is linked to the contact immediately.

Importing Contacts via CSV

For bulk data entry, CSV import is the fastest path.

  1. Navigate to CRM → Contacts
  2. Click the Import button
  3. Upload a CSV file with column headers matching contact fields
  4. Map any unrecognized columns to the correct fields
  5. Review the import preview
  6. Confirm the import

Supported columns: Full Name, Email, Phone, Job Title, Company, Contact Type, Status, Lead Source, Notes, City, State, Country. Headers like "Company", "Organization", "Account", or "Employer" auto-map to the Company field.

Company Column

A Company column in your CSV is resolved automatically:

  • Company names are matched against existing companies in your workspace (case-insensitive)
  • Companies that don't exist yet are created during the import and linked to their contacts
  • If your role doesn't include company-creation permission, contacts still import — they're just left unlinked when the company is missing

During import, Leenops checks for duplicate email addresses. Contacts with emails that already exist in your workspace are flagged for review rather than silently duplicated.

Using the AI Assistant with Contacts

The AI Assistant can help you manage contacts with natural language commands:

  • "Create a contact for Jane Doe at TechCorp, email jane@techcorp.com"
  • "Find all contacts at Acme Corp"
  • "What's the lead score for John Smith?"
  • "Show me inactive contacts with no deals"
  • "Update the phone number for Sarah Chen to +1-555-0123"

The assistant also provides entity-level AI features on each contact's detail page, including summaries, action suggestions, and similarity matching.

Keyboard Shortcuts

Use the Cmd+K (or Ctrl+K on Windows) command menu to quickly search for contacts using semantic search. Type a contact's name, company, or any identifying detail to jump directly to their profile.