We Built All the Connectors. Here's Why We Recommend Migration Anyway
Every adoption meeting asks whether we integrate with GitLab, SVN, and Jenkins. We do. And we still recommend migrating. On what integration can move, what it can't, and when integration genuinely is the right answer.
There's a question that comes up in every adoption meeting: "We're on GitLab, SVN, and Jenkins. Can CollabOps integrate with those?"
The answer forks in two. Integration works, and so does migration. We build and ship the connectors ourselves (Jira and the rest). And yet, as the people who built those connectors, we recommend migration in most cases. It sounds odd to advise against using a feature you built, so this essay is an attempt to explain why.
What integration moves, and what it can't
What integration moves is data. Issue titles, commit messages, build statuses. Showing that system's data on this system's screen, via webhooks and APIs, is not the hard part.
What integration cannot move comes in three parts.
First, references. The fact that issue #1234 over there relates to this commit over here exists natively in neither system. The integration code guesses it by parsing strings out of commit messages. The moment the string convention slips, the relationship breaks, and nobody notices it broke.
Second, permissions. Two systems' permission models don't compose. An issue that was private over there leaking into view over here, carried by an integration. Any organization that has run integrations long enough has a story like that. So the integration account gets conservatively broad permissions, and that account's API token becomes a regular finding in every security audit.
Third, execution. Seeing something here and executing it here are different things. In an integrated environment, decisions still walk back to the original tool to get executed. Check the dashboard, go to Jenkins to rebuild, go to GitLab to merge, come back to Jira to flip the status. The screen became one; the work still happens in four places.
To compress it: integration moves data, migration moves context. Since our product's value comes from integrated context (issue to commit to build to deployment on one graph), integration alone delivers less than half of it.
The gap blows open the moment you add AI
This difference used to register as "inconvenient." Attach an AI agent and it becomes decisive.
For an agent to do good work it has to follow context: the commits tangled up with this issue, the build those commits broke, the similar incident from last quarter. On a unified graph, that's a query that follows relationships. In an integrated environment, it's a round trip through four API tokens and four different response schemas, and the relationships between the fragments you carried back are, once again, guesses. This is where we're blunt with customers even though we genuinely support GitHub and GitLab integrations: it works, but running agents on top of token-based integrations is much harder than it looks.
So how does the move actually happen?
The word "migration" conjures a big-bang cutover. That's not what we recommend. The path that actually works usually looks like this.
Move one team, one repository first (typically a new project or the most eager team). During this period, stay bridged to the old tools with connectors. That's the connectors' real purpose: not a permanent bridge, but a temporary one for moving week. Bring the history over, issues and commit history included. Nobody's asking you to abandon 25 years of records. Then, once the first team's results hold up, the next team follows. In our experience this kind of spreading beats attempts to move the whole company in one step, every time.
The same goes for organizations still on older version control like SVN. We understand that nobody keeps SVN out of laziness; they keep it because it's stable. So the transition should move exactly as fast as stability gets proven, and no faster.
Sometimes integration is the right answer
For balance, I want to be clear about the opposite direction too. Moving everything is not the answer.
ITSM is the canonical case. We don't build ITSM. We decided it's outside our scope, and we plan to support it via integration indefinitely. Company-wide systems the whole organization already depends on, areas where regulation mandates a specific tool, legacy with little life left in it: for these, the cost of moving exceeds the context gained by moving. Leave them integrated.
The rule of thumb is simple. What lives inside the daily development loop goes in; what lives outside the loop stays integrated. Issues, code, pipelines, deployments reference each other dozens of times a day, so they belong on one plane. A system you exchange data with once a quarter doesn't need to be absorbed.
Why do we recommend migration after building all the connectors? In one sentence: integration connects tools, and what we're trying to sell isn't tools — it's connected context.
Related posts
What Should a 100 Million Won Software Contract Change for the Customer?
The contract size a vendor wants and the reason a customer pays are two separate explanations. Working through a hypothetical ROI calculation to the end shows why counting only the hours saved per deployment falls short, and which items belong in the same table.
John Baek
The Customer Said They Hate Jira. Do They Need a New Jira?
Complaints about a familiar tool are easy to hear. But a complaint is not the same as a buying problem. What one conversation taught me about separating the friction a customer mentions from the problem their organization actually has to solve, and the four questions to ask instead.
John Baek
More Features, and a Harder Question: Why Us?
Issues, repositories, reviews, CI/CD, docs, AI. Every new feature made the product description longer, but not the reason to choose it today. So we changed the question: what decision can the customer not make right now? Why Change sits at the center of CollabOps.
John Baek