Skip to main content

AI-powered email processing and CRM automation

Project description

CRM Automator: Modular Agentic CRM Toolkit

Author: Trung Le
Team: RealTimeX.ai
Repository: https://github.com/therealtimex/crm-automator


Overview

The CRM Automator is a modular, agentic toolkit designed to transform unstructured data (emails, transcripts, documents) into structured CRM records. Unlike monolithic automation scripts, this toolkit is built as a collection of reusable Tools that can be orchestrated by AI agents or run as standalone pipelines.

Current Status: Production-Ready (v2.0)

Key Features

  • 🧩 Modular Architecture: Decoupled Ingestion (EML/Text), Intelligence (LLM Extraction), and Integration (CRM Sync).
  • 🤖 Agent-Ready: Components like IntelligenceLayer and RealTimeXClient are designed to be imported as tools for frameworks like LangChain or Autogen.
  • 🛡️ Idempotent & Safe: Implements "Search-before-Update" patterns and SQLite-based state tracking to prevent duplicate records.
  • 🧹 Smart Cleaning Pipeline: Automatically converts bloaty HTML into clean Markdown, strips noise, and resolves tracking links (e.g., unwraps Proofpoint/Safelinks and resolves HubSpot redirects) to ensure accurate URL extraction.
  • 🧠 OpenAI-Compatible: Works independently with OpenAI, Anthropic, or local LLMs (via LM Studio/Ollama) using instructor.

Installation

  1. Clone the repository:

    git clone https://github.com/therealtimex/crm-automator.git
    cd crm-automator
    
  2. Install dependencies:

    # Option A: Standard pip
    pip install -r requirements.txt
    
    # Option B: Modern uv (Recommended)
    uv sync
    
  3. Configure environment:

    cp .env.example .env
    # Edit .env with your CRM and LLM credentials
    

Usage

1. Process Emails (.eml)

Run the automator on a single EML file or an entire directory recursively.

Using uvx (Fastest, zero-install):

uvx eml/eml_automator.py "path/to/email.eml" --env-file ".env"

Using a directory:

uv run python eml/eml_automator.py "path/to/directory" --env-file ".env"

Options:

  • --force, -f: Force re-processing of an email even if it was already synced.
  • --verbose, -v: Enable debug logs to see HTTP requests and LLM thought process.

2. Generic Agent Demo

See how the toolkit handles raw text (e.g., meeting transcripts):

python3 eml/agent_demo.py --api-key "your_key"

Architecture

graph TD
    Ingest[Ingestion Layer] --> Intelligence[Intelligence Layer]
    Intelligence <--> Search[Web Search Tool]
    Intelligence --> Client[CRM Client]
    Client --> CRM[(RealTimeX CRM)]
  • crm_client.py: The "hands" – handles all API calls with retries and 10s timeouts.
  • intelligence.py: The "brain" – uses Pydantic models to extract structured data from text.
  • persistence.py: The "memory" – prevents processing the same resource twice.

Built with ❤️ by the RealTimeX.ai Team

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_automator-1.9.14.tar.gz (71.1 kB view details)

Uploaded Source

Built Distribution

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

crm_automator-1.9.14-py3-none-any.whl (83.6 kB view details)

Uploaded Python 3

File details

Details for the file crm_automator-1.9.14.tar.gz.

File metadata

  • Download URL: crm_automator-1.9.14.tar.gz
  • Upload date:
  • Size: 71.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for crm_automator-1.9.14.tar.gz
Algorithm Hash digest
SHA256 7c0b0d1c4f6fa653c351651514ae552d925a70cdea23bd6603c67a7c4ece50ff
MD5 e5acc4a053608b8b01bc75db3cdc619e
BLAKE2b-256 a417ce1f2bbbb97c07df6b2ae82e1df1db18e41bbb4f570f0067f1f8306a8e61

See more details on using hashes here.

File details

Details for the file crm_automator-1.9.14-py3-none-any.whl.

File metadata

  • Download URL: crm_automator-1.9.14-py3-none-any.whl
  • Upload date:
  • Size: 83.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for crm_automator-1.9.14-py3-none-any.whl
Algorithm Hash digest
SHA256 a6bb12656fe5d251574eecc455a067264df6235b5717797f0fd0960bbe695017
MD5 921436e3d50b1e805df88f05a8c9f7c8
BLAKE2b-256 3370d3eea9689f76e91c7a2f71f87de17058d3d41a545726a09479176e2cc4c6

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