What a 14-day Freshdesk trial taught me about building a cognee connector
Description and use
A Freshdesk connector for cognee was built that handles incremental sync, deletions, spam, and rate limits, based on a 14‑day trial investigation.
Problem
Implement a Freshdesk connector for cognee that ingests tickets, conversations, and solution articles with incremental sync, delete handling, and rate‑limit awareness.
Outcome
The connector successfully ingests all required data, handles incremental updates, deletes, and spam, and respects Freshdesk’s rate limits.
Workflow
- Read dlt source to identify gaps
- Set up Freshdesk Omni trial and obtain API key
- Determine rate‑limit headers (50/min)
- Create test tickets and observe updated_at changes
- Confirm conversations bump ticket updated_at
- Verify updated_since is inclusive and implement skip logic
- Test delete/restore/spam behavior and add filter=deleted/spam listings
- Implement three‑listing sync logic
- Add optional include_private_notes flag
- Write tests for ingest path and incremental cursor
- Deploy connector to cognee
Evidence
The connector pulls support tickets, their replies and knowledge‑base articles into cognee so you can ask questions like "What problems are customers reporting?"
Two other people in the issue thread suggested reusing dlt's verified Freshdesk source. So before building anything I read its code, not just its README
My first read-only call returned something important in the headers: X-Ratelimit-Total: 50 X-Ratelimit-Remaining: 49 X-Ratelimit-Used-CurrentRequest: 1
Both bump the ticket. That means conversations don't need their own cursor: if a ticket shows up in updated_since, refetch its conversations.
If you only follow updated_since, you never see a delete. The ticket just silently drops out of the list.
- Record date: 2026-11-01T12:59:22.663Z