Lesson 2 of 4
Importing Contacts
Estimated time: 5 minutes
Importing Your Contacts
Before you can track relationships, OpenClaw needs a place to store them. In this lesson, you'll set up the contact database skill and optionally import your existing contacts.
Install the Contacts skill
OpenClaw uses a JSON-based contacts store. Install the skill:
openclaw skill add contacts --storage jsonThis creates a local contacts.json file that OpenClaw can read and write. Every contact gets a structured record with name, organization, tags, notes, and interaction history.
Why JSON?
For a personal CRM with hundreds (not millions) of contacts, a JSON file is simple, portable, and easy to back up. OpenClaw can also use SQLite or Airtable as backends — see the Advanced section below.
Add your first contact via chat
Test it by adding someone:
openclaw chat "Add contact: Lisa Chen, VP of Partnerships at Acme Corp.
Met at TechCrunch Disrupt 2025. She's interested in a partnership
around AI automation. Seemed very sharp — Stanford CS background.
Tags: partnership, AI, conference"
OpenClaw parses this into a structured record:
✅ Contact added: Lisa Chen
Name: Lisa Chen
Organization: Acme Corp
Title: VP of Partnerships
Tags: partnership, AI, conference
Notes: Met at TechCrunch Disrupt 2025. Interested in
partnership around AI automation. Stanford CS background.
Added: 2025-03-15
Notice how you wrote a freeform message and OpenClaw extracted the structured fields. You don't need to fill out a form — just describe the person naturally.
Import existing contacts (optional)
If you have contacts in another system, you can bulk import them.
Export from Google Contacts as CSV, then import:
openclaw contacts import \
--file ~/Downloads/google-contacts.csv \
--format google-csv \
--tag "google-import"
OpenClaw maps Google's fields (Name, Organization, Phone, Email, Notes) to its own schema and tags everything with google-import so you can filter later.
Deduplication
If you import from multiple sources, you may get duplicates. Ask OpenClaw to clean them up:
openclaw chat "Find and merge duplicate contacts. Match by name and email."It will show you potential duplicates and ask for confirmation before merging.
Search your contacts
Now that you have contacts, try searching:
openclaw chat "Who do I know at Acme Corp?"📇 Contacts at Acme Corp:
1. Lisa Chen — VP of Partnerships
Last interaction: Added Mar 15 (TechCrunch Disrupt)
Tags: partnership, AI, conference
2. David Park — Senior Engineer
Last interaction: Email thread, Feb 2
Tags: technical, referral
Other search examples:
openclaw chat "Who have I not talked to in over 3 months?"openclaw chat "Show all contacts tagged investor"For larger networks or team use, switch from JSON to a real database:
# SQLite (local, still portable)
openclaw skill add contacts --storage sqlite --db ~/crm.db
# Airtable (cloud, shareable)
openclaw skill add contacts --storage airtable \
--base-id appXXXXXXXXX \
--api-key keyXXXXXXXXX
The chat interface stays exactly the same — only the backend changes.
Add custom fields to your contact schema:
openclaw chat "Add a custom field 'relationship_strength'
with values: strong, medium, weak.
Also add 'last_gift_sent' as a date field."
OpenClaw will update the schema and start tracking these fields for new and existing contacts.
What You Have So Far
You now have a working contact database that you can:
- Add to with natural language messages
- Import into from Google, LinkedIn, or your phone
- Search by name, company, tag, or recency
In the next lesson, you'll start logging interactions — meetings, calls, and coffees — so that every contact has a full history.
What format does OpenClaw use by default to store personal CRM contacts?