Back to home

Documentation

Everything you need to set up your workspace, get your data in, and start managing contacts and deals. No technical knowledge required.

Getting Started

What is OpenClaw CRM?

OpenClaw CRM helps you keep track of people, companies, deals, tasks, and notes in one place. It comes with a built-in AI assistant that lets you query and update your data in plain English, without writing any queries or learning a new interface.

OpenClaw is open-source (MIT licensed) and available in two ways:

  • Hosted: sign up here and start right away. Your data lives on our servers, updates happen automatically, and there is nothing to install.
  • Self-hosted: clone the repository and run it on your own server. You own everything. See the Self-Hosting section for step-by-step instructions.

Either way you get the same full-featured CRM with no per-seat pricing and no paywalled features.

Creating your account

Sign up

  1. Click Get started on the homepage.
  2. Enter your name, email, and a password (8 characters minimum). You can also sign in with GitHub or Google if OAuth is configured.
  3. Give your workspace a name, this is your team's shared space. If you leave it blank it defaults to "[Your Name]'s Workspace."
  4. Click Create workspace. You are taken to the Home page.

What gets created automatically

Every new workspace comes pre-configured with three standard objects:

  • People: contacts with fields for name, email, phone, job title, linked company, location, and description.
  • Companies: organizations with name, domains (websites), description, linked team members, location, and categories.
  • Deals: sales opportunities with name, value, stage, expected close date, and linked company and contacts. Six pipeline stages come ready to use: Lead, Qualified, Proposal, Negotiation, Won, and Lost.

The Home page

After logging in you land on the Home page. It shows a greeting with the current date, quick stats (contacts, companies, deals, open tasks), your recent tasks with overdue indicators, recent notes, and recently viewed records.

New users see an onboarding checklist with four suggested first steps. Each step can be individually dismissed, or you can hide the whole checklist at once. The checklist disappears automatically once you have added your first records.

Essential setup

Before you start entering data, take 5 minutes to do these four things. They make the rest of the experience significantly better.

1. Learn to navigate the app

The sidebar on the left is your main navigation. The top section has your objects (People, Companies, Deals, and any custom objects you create). Below that are Tasks, Notes, Lists, Chat, and Search. Settings is at the very bottom.

Press Ctrl+K (or Cmd+K on Mac) at any time to open the command palette. You can search for records, jump to any page, or start a new record without lifting your hands from the keyboard.

2. Set up AI chat

AI chat is the fastest way to query your data and take bulk actions. To enable it you need an OpenRouter API key. OpenRouter is a free service that gives you access to Claude, GPT-4o, Llama, Gemini, and other models through a single key.

  1. Go to openrouter.ai/keys and create a free account. Generate an API key.
  2. In OpenClaw, go to Settings > AI in the sidebar.
  3. Paste your API key into the OpenRouter API Key field.
  4. Choose a model. Claude Sonnet 4 is the default and works well for most tasks. GPT-4o Mini or Gemini 2.0 Flash are good lower-cost options if you want to minimize spend.
  5. Click Save, then click Test Connection to confirm everything works.

Once configured, open Chat in the sidebar. You can ask things like "How many deals do we have in Negotiation?" or "Create a contact named Jane Doe at Acme Corp" and the AI handles it.

3. Get your data in

There are two ways to add records. Choose the one that fits your situation.

Manual entry: open People, Companies, or Deals in the sidebar and click + New Record. Fill in the fields and click Create. Good for adding a handful of records or when you are building your CRM from scratch.

CSV import: if you have existing data in a spreadsheet (Excel, Google Sheets, another CRM), export it as a CSV and use the Import tool. Here is how:

  1. Open the object you want to import into (e.g. People).
  2. Click the Import button in the toolbar.
  3. Drop or select your CSV file. The first row must be column headers.
  4. A column mapping screen appears. Each row shows a CSV header next to a dropdown where you pick the matching CRM field. If your CSV headers match the field names exactly, they are mapped automatically.
  5. You do not need to map every column, skip any column that does not have a matching field.
  6. Click Import. Up to 1,000 records per run. If any rows have errors you will see them listed with row numbers so you can fix and re-import.

4. Invite your team

If others will use the CRM with you, invite them now so they can start adding data alongside you.

  1. Go to Settings > Members.
  2. Enter a team member's email address in the Add Member field.
  3. Choose their role: Admin (can change settings, manage members, and create API keys) or Member (full access to CRM data but cannot change workspace settings).
  4. Click Add. They can log in immediately.

You can change roles or remove members at any time from the same page.

Connect Your Agent

OpenClaw Bot Integration

OpenClaw CRM plugs directly into your OpenClaw Bot. Generate a skill file, drop it into your agent config, and your agent can create contacts, update deals, log notes, search data, and manage tasks, all from wherever you already talk to it.

Generate your skill file

  1. Go to Settings > API Keys and create an API key.
  2. Navigate to Settings > OpenClaw.
  3. Follow the 4-step wizard to generate your skill file. It contains your CRM's base URL, API auth, and all 19 API endpoint categories.
  4. Click Download to save the file.

Configure your agent

  1. Copy the downloaded file to ~/.openclaw/skills/openclaw/SKILL.md
  2. Add the skill reference to your openclaw.json config file.
  3. Restart your OpenClaw Bot.

Test it

Ask your agent: "list all objects in the CRM." It should return People, Companies, and Deals (plus any custom objects you have created). Try a few more commands:

  • "Add a contact named Jane Doe at Acme Corp"
  • "Show me all deals closing this month"
  • "Create a task to follow up with Sarah next Tuesday"

For a full walkthrough, see the step-by-step tutorial.

Features

People & Companies

People and Companies are the two main contact types. Each is a table of records with customizable fields (called "attributes"). Records from both objects can be linked to each other and to deals.

Default fields

People come with: Name, Email Addresses, Phone Numbers, Job Title, Company (linked to a company record), Location, and Description.

Companies come with: Name, Domains (websites), Description, Team (linked people records), Primary Location, and Categories.

Adding a record

  1. Open People or Companies in the sidebar.
  2. Click + New Record (top-right corner).
  3. Fill in the fields. Required fields are marked.
  4. Click Create. The record detail page opens automatically.

Record detail page

Click any record to open its full detail view. You will see five tabs:

  • Overview: all fields and their current values. Click any value to edit it inline. Press Enter or click away to save.
  • Related records: linked people, companies, or deals. Add relationships from here.
  • Activity: a timeline of every change to this record, showing who edited what and when.
  • Notes: rich text notes attached to this record.
  • Tasks: tasks linked to this record, with due dates and assignees.

Attribute types

OpenClaw CRM supports 17 attribute types: text, number, currency, date, timestamp, checkbox, select (dropdown), status, rating, email address, phone number, domain (website), location, personal name, record reference (link to another record), actor reference (link to a user), and interaction. When you add a custom field to any object you pick from this list.

Deals & Pipeline

Deals track your sales opportunities. They come with a built-in Kanban board so you can see where each deal sits in your pipeline at a glance.

Default pipeline stages

Every new workspace comes with six deal stages: Lead, Qualified, Proposal, Negotiation, Won, and Lost. Moving a deal to the Won stage triggers a small celebration animation. You can rename, reorder, recolor, or remove any of these stages.

Creating a deal

  1. Open Deals in the sidebar.
  2. Click + New Record.
  3. Fill in the deal name, value (in any currency), stage, expected close date, and optionally link a company and associated people.
  4. Click Create.

Kanban board

Switch to Board view using the toggle at the top of the Deals page. Each column represents a pipeline stage. Drag and drop deal cards between columns to move them through your pipeline. You can also reorder cards within a column to indicate relative priority. The total value of all deals in each stage is shown in the column header.

Customizing stages

Go to Settings > Objects, expand Deals, and edit the Stage attribute. You can add new stages, rename existing ones, change their colors, reorder them, and mark which stages are "active" (open pipeline) versus closed (won or lost).

AI Chat

OpenClaw CRM has a built-in AI assistant that can read and write your CRM data using plain English. It works through OpenRouter, which means you can use Claude, GPT-4o, Llama, Gemini, and other models, whatever you prefer or already pay for.

Setting up AI

See the Essential setup section above for step-by-step instructions. In short: get a free OpenRouter API key, paste it in Settings > AI, choose a model, and click Save.

What the AI can do

The AI has 13 tools. 8 are read tools that run instantly. 5 are write tools that ask for your confirmation before making any changes.

Read tools (instant, no confirmation needed):

  • Search records by name, email, domain, or any text
  • List all object types and their attributes
  • Browse records of a specific type (people, companies, deals)
  • Look up a specific record by ID with full field details
  • Show your open and completed tasks
  • Retrieve notes attached to any record
  • List all your workspace lists
  • Get entries from a specific list

Write tools (require your confirmation first):

  • Create new records (contacts, companies, deals, or custom objects)
  • Update fields on existing records
  • Delete records permanently
  • Create tasks and link them to records
  • Add notes to records

Example queries

  • "Show me all deals closing this month"
  • "What is our total pipeline value?"
  • "How many contacts did we add this week?"
  • "Who are the contacts at Acme Corp?"
  • "Add a follow-up note to Sarah Chen"
  • "Create a new contact: Jane Doe, jane@example.com"
  • "Move the Acme deal to Negotiation stage"
  • "Create a task to call John Smith by Friday"

How confirmations work

When the AI plans a write action (create, update, or delete), it describes exactly what it is about to do and waits for you to approve before proceeding. You can confirm, ask it to adjust the details, or say no to cancel. Nothing is changed in your database until you explicitly approve.

Conversations

Each chat session is a persistent conversation. You can start new conversations from the sidebar panel on the Chat page, switch between past conversations, or delete ones you no longer need. The AI remembers context within a conversation, so you can refer to records you mentioned earlier without repeating yourself.

Tasks

Tasks help you track things you need to do. Every task can be linked to one or more records (a person, company, deal, or any custom object) so you always have the context for why the task exists.

Creating a task

  1. Open Tasks in the sidebar, or click Add Task on any record's detail page (Tasks tab).
  2. Type the task description.
  3. Optionally set a due date and assignee (any workspace member).
  4. Optionally link the task to one or more records by searching for them.
  5. Click Create.

Managing tasks

Click the circle checkbox next to any task to mark it as done. The Tasks page shows all open tasks with red overdue indicators for anything past its due date. The Home page widget shows your 10 most recent tasks so you can check status at a glance without navigating away. Tasks linked to a record also appear on that record's detail page under the Tasks tab.

Notes

Notes let you write rich-text content attached to any record. Use them for meeting summaries, call logs, proposals, or any free-form information you want to keep alongside a contact or deal.

Creating a note

  1. Open a record and click the Notes tab.
  2. Click + New Note.
  3. Write your note using the rich text editor. You can format with bold, italics, headings (H1–H3), bullet lists, numbered lists, links, and more.
  4. Notes save automatically as you type.

Browsing all notes

The Notes page in the sidebar shows every note in your workspace grouped by date: Today, Yesterday, This Week, and Older. Click any note to open it in a side panel for quick reading or editing without navigating away.

Lists

Lists are curated collections of records you define manually. Think of them as saved groups, for example "VIP Clients," "Q1 Prospects," "Conference Leads," or "Partners."

Creating a list

  1. In the sidebar under Lists, click the + icon.
  2. Give your list a name and choose which object type it tracks (People, Companies, Deals, or any custom object).
  3. Click Create.

Adding records to a list

Open your list, click + Add Record, and browse or search for the records you want. You can add as many as you need.

List-specific attributes

Lists can have their own custom attributes (columns) that only apply within that list, useful for tracking data that is relevant to the list context but not to the record globally. For example, a "Q1 Prospects" list might have a "Priority" or "Follow-up Date" column that exists only in that list, not on the People object itself.

Import & Export

Importing from CSV

You can bulk-import records from a CSV file into any object type. This is the fastest way to migrate from another CRM, a spreadsheet, or any data export.

  1. Open the object you want to import into (People, Companies, Deals, or a custom object).
  2. Click the Import button in the toolbar.
  3. Drop or select your CSV file. The first row must be column headers, the importer treats everything in row 1 as field names, not data.
  4. The column mapping screen appears. For each CSV column, pick the matching CRM field from the dropdown, or leave it as "Skip" to ignore that column. If your headers already match the CRM field names (case-insensitive), they are mapped automatically.
  5. Click Import. The importer processes up to 1,000 rows per run. Empty rows are skipped automatically.

After import, you will see a summary showing how many records were created and a list of any rows that had errors (with row numbers). Fix the errors in your CSV and re-import just those rows.

Exporting to CSV

Click the Export button on any object page to download all current records as a CSV file. The export includes every attribute as a column with properly formatted values. Any active filters are applied before export, so you can export a filtered subset if needed.

Views & Filters

Every object supports two view modes, accessible from the toggle at the top of the page:

  • Table view: a spreadsheet-style grid. Click column headers to sort. Resize columns by dragging their edges. Edit cells directly by clicking on them.
  • Board view: a Kanban board grouped by a status attribute. Drag cards between columns to change their status. Available on any object that has at least one status field.

Filtering

Click the Filter button to build conditions. Filters are attribute-aware: a number field offers "greater than" and "less than," a text field offers "contains" and "starts with," a date field offers "before" and "after," and a select field lets you pick from the available options.

You can stack multiple filters and connect them with AND or OR logic. For example: show deals worth more than $10,000 AND in the Negotiation stage, or show contacts from New York OR London.

Sorting

Click any column header in table view to sort ascending or descending. Click again to reverse the direction. You can sort by any field: name, date, numeric value, status order, or any custom attribute.

Custom Objects

Beyond People, Companies, and Deals, you can create your own object types to track anything your business needs: projects, products, vendors, tickets, properties, campaigns, or anything else.

Creating a custom object

  1. Go to Settings > Objects.
  2. Click + New Object.
  3. Enter a singular name (e.g. "Product") and a plural name (e.g. "Products"). Choose an icon from the picker.
  4. Add attributes to define the fields on your object. For each attribute, pick a type from the 17 available options, give it a name, and configure whether it is required, unique, or supports multiple values.
  5. Click Create. The object appears immediately in the sidebar.

Custom objects support everything the built-in objects do: table and board views, filtering, sorting, CSV import and export, notes, tasks, related records, and AI chat.

Adding attributes to existing objects

You can add custom attributes to any object, including the built-in ones. Go to Settings > Objects, expand the object you want to modify, and click + Add Attribute. New attributes appear as additional columns in the table view and as new fields on record detail pages.

Administration

Settings

Access settings from the Settings link at the very bottom of the sidebar. Settings are divided into sections:

General

View and edit your workspace name. The workspace slug and internal ID are shown for reference (read-only). Only admins can change workspace settings.

Members

Invite team members by email address. Each member has one of two roles:

  • Admin: full access including settings, managing members, creating and revoking API keys, and configuring AI.
  • Member: full access to all CRM data (people, companies, deals, tasks, notes, lists, AI chat) but cannot change workspace settings or manage members.

You can change a member's role or remove them at any time. Removing a member revokes their access immediately.

API Keys

Create Bearer token API keys for programmatic access from external tools, scripts, or automations. Keys start with oc_sk_ and are shown only once when created, copy and store them somewhere safe immediately. You can revoke any key at any time, which cuts off access instantly.

To use a key, include it in the Authorization: Bearer oc_sk_... header on every API request.

AI Configuration

Enter your OpenRouter API key and select the default AI model for your workspace. Available models include Claude Sonnet 4, Claude Opus 4, GPT-4o, GPT-4o Mini, Llama 3.1 405B, Llama 3.1 70B, and Gemini 2.0 Flash. Each workspace stores its own key and model preference. The Test Connection button sends a quick test request so you can confirm the key and model are working before your team starts using Chat.

You can also configure the OpenClaw AI Agent from this page, which enables the built-in assistant to perform CRM actions on behalf of your team. See the AI Chat section for details on what the agent can do.

Objects

View and manage all object types and their attributes. Add custom attributes to existing objects, create entirely new object types, configure status options and colors, and set field constraints like required or unique. See the Custom Objects section for full details.

Keyboard Shortcuts

ShortcutAction
Ctrl+K / Cmd+KOpen global search and command palette
EscapeClose modal, dialog, or search
EnterSave inline edit / confirm selection
For Developers

API & Integrations

OpenClaw CRM has a full REST API so you can integrate with other tools, automate workflows, sync data with external systems, or build custom apps on top of your CRM data.

Quick start

  1. Go to Settings > API Keys and create a key.
  2. Include the key in every request as a Bearer token: Authorization: Bearer oc_sk_...
  3. Start with GET /api/v1/objects to list all object types in your workspace and their slugs.
  4. Use GET /api/v1/objects/people/records to fetch people records, /companies for companies, /deals for deals, and so on.

Key endpoints

EndpointDescription
GET /api/v1/objectsList all object types
GET /api/v1/objects/:slug/recordsList records with pagination
POST /api/v1/objects/:slug/recordsCreate a record
POST /api/v1/objects/:slug/records/queryFilter and sort records
POST /api/v1/objects/:slug/records/importBulk import records (up to 1,000)
GET /api/v1/objects/:slug/records/exportExport records as CSV
GET /api/v1/searchFull-text search across all records
GET /api/v1/tasksList tasks
GET /api/v1/notesList notes
POST /api/v1/chat/completionsAI chat with tool calling (SSE stream)

API documentation

  • Concise reference: /llms-api.txt , quick endpoint list, useful for LLM agents
  • Full reference: /llms-full.txt , comprehensive request/response documentation
  • OpenAPI spec: /openapi.json , machine-readable spec for code generation and tooling

Self-Hosting

OpenClaw CRM is MIT licensed and designed to run on your own infrastructure. You need Node.js 20+, pnpm 9+, and PostgreSQL 16+. Docker is recommended for the database in both development and production.

Prerequisites

  • Node.js 20 or later: nodejs.org
  • pnpm 9 or later: npm install -g pnpm
  • PostgreSQL 16 or later (or Docker to run it)
  • Git

Development setup

  1. Clone the repository:
    git clone https://github.com/giorgosn/openclaw-crm.git
  2. Install dependencies:
    cd openclaw-crm && pnpm install
  3. Copy the environment file:
    cp .env.example .env
  4. Edit .env with your database URL and auth secret. See the environment variables table below.
  5. Start PostgreSQL using Docker:
    sudo docker compose up db -d
  6. Push the database schema:
    pnpm db:push
  7. Seed default data (standard objects and pipeline stages):
    pnpm db:seed
  8. Start the development server:
    pnpm dev

Open http://localhost:3001 in your browser and create your first account.

Environment variables

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string, e.g. postgresql://user:pass@localhost:5432/openclaw
BETTER_AUTH_SECRETYesSession encryption key, 32+ characters. Generate with openssl rand -base64 32
NEXT_PUBLIC_APP_URLYesYour app's public URL, e.g. http://localhost:3001 or https://crm.yourcompany.com
OPENROUTER_API_KEYNoDefault OpenRouter key for AI chat. Individual workspaces can override this in Settings > AI.
OPENROUTER_MODELNoDefault model ID, e.g. anthropic/claude-sonnet-4. Falls back to Claude Sonnet 4 if not set.
GITHUB_CLIENT_IDNoGitHub OAuth app client ID. Also set GITHUB_CLIENT_SECRET.
GOOGLE_CLIENT_IDNoGoogle OAuth client ID. Also set GOOGLE_CLIENT_SECRET.
RESEND_API_KEYNoResend API key for sending transactional emails such as member invite notifications.

Production deployment with Docker

For production, use the included Docker Compose configuration which bundles both PostgreSQL and the Next.js app in optimized containers.

  1. Generate a secure auth secret:
    export BETTER_AUTH_SECRET=$(openssl rand -base64 32)
  2. Set your production environment variables in .env. Make sure NEXT_PUBLIC_APP_URL is your real public domain, not localhost.
  3. Build and start the production stack:
    docker compose -f docker-compose.prod.yml up --build -d

The production build uses PostgreSQL 16 and a Node.js container running the Next.js standalone output. For SSL termination, put a reverse proxy such as Nginx or Caddy in front of the app container.

Ready to get started?

Create your account and start managing your contacts in minutes.

Get started