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.3.tar.gz (38.2 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.3-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for crm_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ee1ea6266d9de9167305d4827a5e9630427d4db49ab1cb75c7cea007b70b93aa
MD5 0976084e0370833987d1e96fff83472e
BLAKE2b-256 7e8bd1edfc65f99b5723e96f6b2f16bb96cc8b4055de58934f9c0e24904d32ab

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for crm_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 82eae40578d0755f5fddd18725e5fec3f0be9747ee3b9096771564d9a16a206a
MD5 c98eb5204575a06e514be3536d8cddf0
BLAKE2b-256 1485733f24e68d1a9ff229e3839ed452d3d7eff63cfd1e4dc7fe4b489a3c2a47

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