Documentation
Everything you need to set up your workspace, get your data in, and start managing contacts and deals. No technical knowledge required.
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
- Click Get started on the homepage.
- Enter your name, email, and a password (8 characters minimum). You can also sign in with GitHub or Google if OAuth is configured.
- Give your workspace a name, this is your team's shared space. If you leave it blank it defaults to "[Your Name]'s Workspace."
- 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.
- Go to openrouter.ai/keys and create a free account. Generate an API key.
- In OpenClaw, go to Settings > AI in the sidebar.
- Paste your API key into the OpenRouter API Key field.
- 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.
- 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:
- Open the object you want to import into (e.g. People).
- Click the Import button in the toolbar.
- Drop or select your CSV file. The first row must be column headers.
- 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.
- You do not need to map every column, skip any column that does not have a matching field.
- 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.
- Go to Settings > Members.
- Enter a team member's email address in the Add Member field.
- 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).
- Click Add. They can log in immediately.
You can change roles or remove members at any time from the same page.
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
- Go to Settings > API Keys and create an API key.
- Navigate to Settings > OpenClaw.
- 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.
- Click Download to save the file.
Configure your agent
- Copy the downloaded file to
~/.openclaw/skills/openclaw/SKILL.md - Add the skill reference to your
openclaw.jsonconfig file. - 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.
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
- Open People or Companies in the sidebar.
- Click + New Record (top-right corner).
- Fill in the fields. Required fields are marked.
- 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
- Open Deals in the sidebar.
- Click + New Record.
- Fill in the deal name, value (in any currency), stage, expected close date, and optionally link a company and associated people.
- 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
- Open Tasks in the sidebar, or click Add Task on any record's detail page (Tasks tab).
- Type the task description.
- Optionally set a due date and assignee (any workspace member).
- Optionally link the task to one or more records by searching for them.
- 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
- Open a record and click the Notes tab.
- Click + New Note.
- Write your note using the rich text editor. You can format with bold, italics, headings (H1–H3), bullet lists, numbered lists, links, and more.
- 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
- In the sidebar under Lists, click the + icon.
- Give your list a name and choose which object type it tracks (People, Companies, Deals, or any custom object).
- 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.
- Open the object you want to import into (People, Companies, Deals, or a custom object).
- Click the Import button in the toolbar.
- 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.
- 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.
- 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.
Search
Press Ctrl+K (or Cmd+K on Mac) anywhere in the app to open the command palette. Type a name, email address, company name, or any text to search across all record types and lists simultaneously.
Results are grouped by type (People, Companies, Deals, and any custom objects) and also include list matches. Click any result to jump directly to that record. The command palette also lets you navigate to any page in the app by typing its name.
For a full-page search experience, open the dedicated Search page from the sidebar. It works the same way but gives you more space to browse results and shows more context for each match.
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
- Go to Settings > Objects.
- Click + New Object.
- Enter a singular name (e.g. "Product") and a plural name (e.g. "Products"). Choose an icon from the picker.
- 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.
- 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.
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
| Shortcut | Action |
|---|---|
| Ctrl+K / Cmd+K | Open global search and command palette |
| Escape | Close modal, dialog, or search |
| Enter | Save inline edit / confirm selection |
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
- Go to Settings > API Keys and create a key.
- Include the key in every request as a Bearer token:
Authorization: Bearer oc_sk_... - Start with
GET /api/v1/objectsto list all object types in your workspace and their slugs. - Use
GET /api/v1/objects/people/recordsto fetch people records,/companiesfor companies,/dealsfor deals, and so on.
Key endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/objects | List all object types |
GET /api/v1/objects/:slug/records | List records with pagination |
POST /api/v1/objects/:slug/records | Create a record |
POST /api/v1/objects/:slug/records/query | Filter and sort records |
POST /api/v1/objects/:slug/records/import | Bulk import records (up to 1,000) |
GET /api/v1/objects/:slug/records/export | Export records as CSV |
GET /api/v1/search | Full-text search across all records |
GET /api/v1/tasks | List tasks |
GET /api/v1/notes | List notes |
POST /api/v1/chat/completions | AI 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
- Clone the repository:
git clone https://github.com/giorgosn/openclaw-crm.git - Install dependencies:
cd openclaw-crm && pnpm install - Copy the environment file:
cp .env.example .env - Edit
.envwith your database URL and auth secret. See the environment variables table below. - Start PostgreSQL using Docker:
sudo docker compose up db -d - Push the database schema:
pnpm db:push - Seed default data (standard objects and pipeline stages):
pnpm db:seed - Start the development server:
pnpm dev
Open http://localhost:3001 in your browser and create your first account.
Environment variables
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string, e.g. postgresql://user:pass@localhost:5432/openclaw |
BETTER_AUTH_SECRET | Yes | Session encryption key, 32+ characters. Generate with openssl rand -base64 32 |
NEXT_PUBLIC_APP_URL | Yes | Your app's public URL, e.g. http://localhost:3001 or https://crm.yourcompany.com |
OPENROUTER_API_KEY | No | Default OpenRouter key for AI chat. Individual workspaces can override this in Settings > AI. |
OPENROUTER_MODEL | No | Default model ID, e.g. anthropic/claude-sonnet-4. Falls back to Claude Sonnet 4 if not set. |
GITHUB_CLIENT_ID | No | GitHub OAuth app client ID. Also set GITHUB_CLIENT_SECRET. |
GOOGLE_CLIENT_ID | No | Google OAuth client ID. Also set GOOGLE_CLIENT_SECRET. |
RESEND_API_KEY | No | Resend 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.
- Generate a secure auth secret:
export BETTER_AUTH_SECRET=$(openssl rand -base64 32) - Set your production environment variables in
.env. Make sureNEXT_PUBLIC_APP_URLis your real public domain, not localhost. - 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.