Skip to main content

FXiaoke CRM CLI - Sync leads from JSON/CSV files

Project description

CRM CLI

A minimal CLI that reads leads from JSON/CSV files and syncs them to FXiaoke CRM (纷享销客).

Installation

Requires UV (fast Python package manager).

# Install UV (if not already installed)
brew install uv

# Clone and sync dependencies
git clone https://github.com/thaddeus-git/crm-cli.git
cd crm-cli
uv sync

Quick Start

# Sync leads from JSON file
uv run crm sync leads.json

# Preview without creating (dry run)
uv run crm sync leads.csv --dry-run

# Assign to specific owner (FSUID format)
uv run crm sync leads.json --owner FSUID_xxx
uv run crm sync leads.json --assign FSUID_xxx  # --assign is an alias for --owner

# Override lead pool (skip automatic routing)
uv run crm sync leads.json --pool 643d87b17be47e0a000190a715

# Combine flags
uv run crm sync leads.json --assign FSUID_xxx --pool 643d87cda34e0a0001336093

User Lookup

Lookup CRM users by mobile number or list all users to find FSUIDs for assignment:

# Lookup user by mobile number
uv run crm lookup --mobile 18102106041

# List all users (paginated)
uv run crm lookup --list-all

# List with custom page size
uv run crm lookup --list-all --page-size 500

Example Output

✓ User found:

  Name: 王雨檬
  FSUID: FSUID_4CF6AD1011C941AE32545CCC409CFD50
  Mobile: 18102106041
  Email: wangyumeng3@orionstar.com
  Status: NORMAL

Using the FSUID

Once you have the FSUID, use it with the --assign flag when syncing leads:

uv run crm sync leads.json --assign FSUID_4CF6AD1011C941AE32545CCC409CFD50

Note: Store the default assignee FSUID in your shell profile or environment for convenience:

export CRM_DEFAULT_ASSIGNEE_FSUID="FSUID_4CF6AD1011C941AE32545CCC409CFD50"
uv run crm sync leads.json --assign $CRM_DEFAULT_ASSIGNEE_FSUID

Input Format

JSON

[
  {
    "company": "Acme Corp",
    "email": "contact@acme.com",
    "phone": "+44 123 456 7890",
    "country": "GB",
    "source_id": "optional-external-id"
  }
]

CSV

company,email,phone,country,source_id
Acme Corp,contact@acme.com,+44 123 456 7890,GB,optional-external-id

Fields

Field Required Description
company Yes Company name
email No Email address
phone No Phone number (any format, cleaned automatically)
country No ISO 2-letter code (GB, DE, CN, etc.) for region/pool routing
source_id No External reference ID for logging

Configuration

Set environment variables:

export CRM_APP_ID="FSAID_xxx"
export CRM_APP_SECRET="xxx"
export CRM_PERMANENT_CODE="xxx"
export CRM_USER_MOBILE="19957895939"  # Optional, for user ID lookup

Behavior

  • Duplicates: Skip with warning, continue with remaining leads
  • Output: Stdout only - progress and summary printed to terminal
  • Region routing: Automatic based on country code
    • Europe (GB, DE, FR, etc.) → 欧洲线索公海池
    • Asia (CN, JP, KR, etc.) → 亚洲线索公海池

Lead Pools

Pool ID Countries
欧洲线索公海池 643d87b17be47e0a000190a715 GB, DE, FR, IT, ES, NL, etc.
亚洲线索公海池 643d87cda34e0a0001336093 CN, JP, KR, TH, VN, etc.
日本线索池 6464a6451a3c2c0001c12369 JP (special routing)

Use --pool to override automatic routing.

Owner Assignment

The --owner or --assign flag accepts an FSUID (e.g., FSUID_C3F0FA243B2B385385D570C8968C8AB3).

Note: The API requires FSUID format. Employee IDs like empid-1079 are not directly compatible - you need to find the corresponding FSUID from the CRM user management interface.

Development

# Run tests
uv run python -m unittest discover tests/

# Run CLI
uv run crm sync --help

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crm_cli-0.1.5.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crm_cli-0.1.5-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file crm_cli-0.1.5.tar.gz.

File metadata

  • Download URL: crm_cli-0.1.5.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for crm_cli-0.1.5.tar.gz
Algorithm Hash digest
SHA256 7c5a969fda2ccd816f936cd8c5516378d101648f504e70d110031b89809fc596
MD5 732bc3c79174ad249658490b398e876e
BLAKE2b-256 1d1ba9e31ddb1cce9c65605b8ec14d28f47a2a9dead89af454042317cdb9d41e

See more details on using hashes here.

File details

Details for the file crm_cli-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: crm_cli-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for crm_cli-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7988b58bafa32b0d9a0aed2a614d84df715b20e658b6b751887dd052a00e2e13
MD5 502cd0f2903847966216984c132db847
BLAKE2b-256 b5a2a7d9f226ce42f2f2ddb03bb837dfcc53fa6e65ae0b81d65990c70aaff505

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page