{
  "id": 14559001,
  "title": "Mergetober part 2: my plan was wrong twice, and a free trial caught it before the code did",
  "url": "https://urgent.news/2026/10/14/mergetober-part-2-my-plan-was-wrong-twice-and-a-free-trial-caught-it",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-14T23:23:14.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/abhishekm_shivanagoudar/mergetober-part-2-my-plan-was-wrong-twice-and-a-free-trial-caught-it-before-the-code-did-22g9"
  },
  "original_language": "en",
  "account": "During my BambooHR connector work, I encountered two Mergetober issues. The first involved a Customer.io connector for cognee. The second issue highlighted that my initial plan was incorrect, and a free trial caught those errors before the code was implemented.\n\nCustomer.io is a marketing messaging platform that turns data into a knowledge graph for AI agents to search. Issue #4786 requested a connector for Customer.io, which would allow agents to answer questions about team emails, push notifications, and in-app messages. My original plan involved merging and tombstones like the BambooHR connector, with unique doc ids for translations.\n\nHowever, my plan fell short in two ways: translations and deduplicate_id. Translations proved problematic because each language was treated as a separate action with its own id, making the initial key (id + language) unnecessary. Moreover, I discovered a collision between a newsletter's content and a campaign message, both having the same id 5. The deduplicate_id, intended to detect changes, failed due to the prefix being the branch id, not its own id.\n\nTo address these issues, I conducted a test using a free Customer.io trial. I built a small test automation that saved every API response as raw JSON and printed differences between snapshots. This approach revealed that my plan needed to be revised. I realized that Customer.io didn't have a change feed like BambooHR, so I had to list every message on every run. My final solution was to use a full snapshot, similar to cognee's Notion connector, where every run lists everything and replaces the existing data. This approach allowed for proper handling of changes and prevented issues caused by partial snapshots.",
  "summary": "After my BambooHR connector , I picked up a second Mergetober issue: a Customer.io connector for cognee . Last time the lesson was \"read the API before writing code\". This time it was \" test your plan before writing code \", because my plan was wrong in public, twice. The issue cognee turns your data into a knowledge graph that AI agents can search. Issue #4786 asked for a connector for…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}