Zoho CRM + Cognee: a CRM connector for AI agent memory
Description and use
Connecting Zoho CRM to Cognee automatically syncs records and notes into a knowledge graph, enabling natural‑language queries.
Problem
Finding specific customer interactions in Zoho CRM requires opening each record manually; the user wanted to query such data in plain English.
Outcome
The connector ingested 40 records and 5 notes on first run, performed zero‑change syncs on subsequent runs, and correctly updated or removed data after edits in Zoho.
Workflow
- Install cognee-community-connector-zoho-crm
- Create a Self Client in Zoho API Console and copy Client ID and Client Secret
- Generate an authorization code with scopes ZohoCRM.modules.READ,ZohoCRM.settings.READ
- Exchange the code for a refresh token via POST to accounts.zoho.
<region>/oauth/v2/token - Export ZOHO_CLIENT_ID, ZOHO_CLIENT_SECRET, ZOHO_REFRESH_TOKEN, ZOHO_REGION, LLM_API_KEY
- Run cognee.remember(zoho_crm_source(), dataset_name="zoho_crm", write_disposition="merge")
- Query with cognee.search(query_text="Which deals are open, and what do the notes say about them?", query_type=cognee.SearchType.GRAPH_COMPLETION, datasets=["zoho_crm"])
Evidence
Short answer: create a Self Client in the Zoho API Console for your data center, trade its grant code for a refresh token, set ZOHO_CLIENT_ID, ZOHO_CLIENT_SECRET, ZOHO_REFRESH_TOKEN, ZOHO_REGION and LLM_API_KEY, then pass zoho_crm_source() from cognee-community-connector-zoho-crm to cognee.remember() with write_disposition="merge".
First edit: I changed the Lead Status of Felix Hirpara (Sample). The field is on the right side of the Edit Lead form. After I saved, his page showed Not Qualified.
Second edit: I deleted Yvonne Tjepkema (Sample), a lead in the Pre-Qualified stage.
- Record date: 2026-11-02T00:14:04.550Z