A utility for syncing tasks from Clickup to Todoist
I use Todoist extensively for managing just about everything in my life. However, I usually have to use other project management software for work. Which brings us to Todoist sync. A utility for syncing tasks from one project management app to another. For now it only supports Clickup to Todoist but there are plans to eventually add more.
I wanted to add additionally functionality that's not available with a simple integration tool like that. Such as:
- Completing a task in one app marks it as completed in the other
- Editing the task in one syncs it back to other without creating new tasks
- Properly copying nested tasks over
- Ensure you have .NET Core 3.1 installed
- You'll need a publicly accessible url that can hit your running project. My preferred way to do this is through ngrok
- Create a new Todoist App using their app console
- Set the following environment variables in your project
- CLICKUP_API_KEY
- TODOIST_API_KEY
- This will be your access token from creating your todoist app
- TODOIST_CLICKUP_LABEL_ID
- This utility uses labels to determine if a task was generated by the utility itself. You'll have to create your own label and provide it's id here
- CLICKUP_USER_ID
- Clickup is normally setup as a team based project management app. You'll need to provide your specific User id here so the utility on syncs tasks assigned to you
- Run the project with
dotnet run
in theTodoistSync
folder - Run ngrok to get a public url
- Create a Todoist webhook
- Go back to your todoist app and fill in the Webhooks callback URL using the following format
<ngrok url>/todoist/webhook
- Select Webhooks version 8
- Check the
item:updated
event and theitem:completed
event - Save webhook configuration
- Go back to your todoist app and fill in the Webhooks callback URL using the following format
- Create a Clickup webhook
- Go to the Clickup API docs
- Scroll down to the webhooks section and click "Create Webhook"
- In the console fill out your team id and provide your api key in the
Authorization
header - Update the body section to have your endpoint using the format
<ngrok url>/clickup/webhook
- And update events to have just the following
- taskCreated
- taskUpdated
- taskDeleted
- Submit
- Create a new task in Clickup, assign it to the proper user id and watch it get created in Todoist