Blog / Technology · August 4, 2025 0

ClickUp to YouTrack

My project management setup is the backbone of my entire workflow. For a long time, ClickUp was the tool for the job, but I recently hit a wall. The big one? Time tracking. When this crucial feature got locked behind a paywall on the free plan, it was a dealbreaker. How can you manage projects effectively if you can’t track the time you’re sinking into them? I knew it was time for a change, and my search for a new home led me to YouTrack.

Okay, decision made. Now for the hard part: moving everything. My first stop was GitHub, where I found a pre-built migration script. Seemed perfect, right? Well, almost. After a few tests, I realized it was a bit too basic. It was a good start, but it was missing key things I needed and didn’t have the flexibility to bring over all my data in the way I wanted.

This is where the real project began. I decided the only way to do this right was to go straight to the source: the APIs for both ClickUp and YouTrack. This way, I could have full control over the process. I self-host n8n and a number of other sites and tools on Racknerd, so using my own n8n instance as the engine for this project was the natural choice. Using n8n, I could connect to both APIs and visually build the entire migration workflow.

Now, tackling two different APIs to build a custom migration tool is a pretty big task, even with a powerful platform like n8n. This is where a very interesting collaborator came into the picture: Gemini 2.5 Pro. I chose to work with Gemini 2.5 Pro for its enhanced reasoning and ability to digest complex technical information. As we built the workflow in n8n, its “better thinking” was invaluable in helping to architect the logic and troubleshoot the inevitable issues that came up.

And there were certainly bumps in the road. As is common with any custom integration, we ran into a few head-scratching moments:

  • The “State” vs. “Stage” Mystery: We kept getting an error about an incompatible “State” field. After using an n8n HTTP Request node to inspect the API, we discovered that my YouTrack project didn’t call the status “State” at all—it called it “Stage.” A small word, a big difference!
  • The Historical Data Problem: The biggest hurdle was migrating dates. The YouTrack API wouldn’t let me set a historical creation date when making a new issue. And getting the individual, historical time entries required a separate, specific API call that wasn’t obvious at first.
  • Permissions, Permissions, Permissions: Some of our API requests were failing silently. It turned out the API token I created didn’t have high-level admin permissions. We had to create a brand new “Importer” role in YouTrack to give the token the power it needed to set fields like the Due Date.

After a lot of back-and-forth, testing, and refining the n8n workflow, I finally got it. All my tasks—open and closed—are now in YouTrack, with their correct due dates and, most importantly, a complete and historically accurate time tracking record.

Want to See the Workflow?

This was a deep dive, but it proved that when off-the-shelf tools don’t cut it, a custom API integration using a tool like n8n is the way to go. It’s a lot more work, but the control you get is worth it.

I’ve had a few people ask about the specifics of the n8n workflow itself. If you’re interested in a deep dive into the nodes, expressions, and logic we built to make this happen, let me know! If I get enough interest, I’ll create a dedicated blog post, and possibly a video, walking through the entire n8n workflow from start to finish.

TABLE FOR 8