skills$openclaw/dex-crm
jaybna4.3k

by jaybna

dex-crm – OpenClaw Skill

dex-crm is an OpenClaw Skills integration for coding workflows. |

4.3k stars6.4k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namedex-crm
description| OpenClaw Skills integration.
ownerjaybna
repositoryjaybna/dex-crm
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @jaybna/dex-crm
last updatedFeb 7, 2026

Maintainer

jaybna

jaybna

Maintains dex-crm in the OpenClaw Skills directory.

View GitHub profile
File Explorer
5 files
.
scripts
dex-cleanup.py
6.3 KB
_meta.json
266 B
README.md
2.0 KB
SKILL.md
4.5 KB
SKILL.md

name: dex-crm description: | Manage Dex personal CRM (getdex.com) contacts, notes, and reminders. Use when you need to: (1) Search or browse contacts, (2) Add notes about people, (3) Create or check reminders, (4) Look up contact details (phone, email, birthday). Requires DEX_API_KEY environment variable.

Dex Personal CRM

Manage your Dex CRM directly from Clawdbot. Search contacts, add notes, manage reminders.

Authentication

Set DEX_API_KEY in gateway config env vars.

API Base

  • Base URL: https://api.getdex.com/api/rest
  • Headers: Content-Type: application/json and x-hasura-dex-api-key: $DEX_API_KEY

Quick Reference

Contacts

# List contacts (paginated)
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/contacts?limit=10&offset=0"

# Get contact by ID
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/contacts/{contactId}"

# Search contact by email
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/search/contacts?email=someone@example.com"

# Create contact
curl -s -X POST -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"first_name":"John","last_name":"Doe","emails":["john@example.com"]}' \
  "https://api.getdex.com/api/rest/contacts"

# Update contact
curl -s -X PUT -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"job_title":"CEO"}' \
  "https://api.getdex.com/api/rest/contacts/{contactId}"

# Delete contact
curl -s -X DELETE -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/contacts/{contactId}"

Notes (Timeline Items)

# List notes
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/timeline_items?limit=10&offset=0"

# Notes for a contact
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/timeline_items/contacts/{contactId}"

# Create note
curl -s -X POST -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"note":"Met for coffee, discussed project","contact_ids":["contact-uuid"],"event_time":"2026-01-27T12:00:00Z"}' \
  "https://api.getdex.com/api/rest/timeline_items"

# Update note
curl -s -X PUT -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"note":"Updated note text"}' \
  "https://api.getdex.com/api/rest/timeline_items/{noteId}"

# Delete note
curl -s -X DELETE -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/timeline_items/{noteId}"

Reminders

# List reminders
curl -s -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/reminders?limit=10&offset=0"

# Create reminder
curl -s -X POST -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"body":"Follow up on proposal","due_at_date":"2026-02-01","contact_ids":["contact-uuid"]}' \
  "https://api.getdex.com/api/rest/reminders"

# Update reminder
curl -s -X PUT -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  -d '{"is_complete":true}' \
  "https://api.getdex.com/api/rest/reminders/{reminderId}"

# Delete reminder
curl -s -X DELETE -H "Content-Type: application/json" \
  -H "x-hasura-dex-api-key: $DEX_API_KEY" \
  "https://api.getdex.com/api/rest/reminders/{reminderId}"

Contact Fields

  • first_name, last_name, job_title, description
  • emails (array of {email})
  • phones (array of {phone_number})
  • education, website, linkedin, facebook, twitter, instagram, telegram
  • birthday, image_url
  • last_seen_at, next_reminder_at
  • is_archived, created_at, updated_at

Searching Contacts

The API only supports search by email. For name-based search, fetch contacts in batches and filter locally. Use a reasonable limit (50-100) for browsing.

Notes

  • Always confirm before creating, updating, or deleting contacts/notes/reminders
  • Contact search by name requires local filtering (API only supports email search)
  • Use pagination (limit/offset) for large result sets
  • The event_time field on notes is when the interaction happened, not when the note was created
README.md

Dex CRM Skill for Clawdbot

Manage your Dex personal CRM directly from Clawdbot. Search contacts, add notes, manage reminders.

Installation

Via ClawdHub (recommended)

clawdhub install dex-crm

Manual Installation

Copy the SKILL.md file to your Clawdbot skills directory:

cp SKILL.md ~/.clawdbot/skills/dex-crm/SKILL.md
# or for workspace installs:
cp SKILL.md ~/clawd/skills/dex-crm/SKILL.md

Setup

  1. Get your Dex API key from Dex Settings

  2. Add it to your Clawdbot gateway config (config.yaml):

env:
  DEX_API_KEY: "your-api-key-here"
  1. Restart the gateway:
clawdbot gateway restart

Features

  • Search contacts by email or browse all contacts
  • View contact details — phone, email, birthday, notes
  • Add notes to contacts with timestamps
  • Create/complete reminders for follow-ups
  • Create new contacts from conversations
  • Archive contacts you no longer need

Example Usage

"Find John Smith in my Dex contacts"

"Add a note to Sarah's contact: Met for coffee, discussed the project proposal"

"Create a reminder to follow up with Mike next Tuesday"

"Show me all my reminders due this week"

Included Scripts

scripts/dex-cleanup.py

Automatically archives junk/newsletter contacts from Dex. Useful for cleaning up contacts imported from email that aren't real people.

# Set your API key
export DEX_API_KEY="your-key"

# Dry run (preview what would be archived)
python3 scripts/dex-cleanup.py --dry-run

# Actually archive junk contacts
python3 scripts/dex-cleanup.py

The script identifies junk contacts by patterns like:

  • Substack newsletters
  • Noreply addresses
  • Calendar system entries
  • Common newsletter domains

API Reference

See SKILL.md for the complete API reference including all endpoints for contacts, notes, and reminders.

License

MIT

Author

Jay Graves (@jaybna)

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install dex-crm?

Run openclaw add @jaybna/dex-crm in your terminal. This installs dex-crm into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/jaybna/dex-crm. Review commits and README documentation before installing.