Fibery - Todoist integration app

日本語README

Overview

Status: Under development

Currently, this project is a personal development project for myself. I have made it Public in order to receive feedback, but please be careful when using it as it is not yet complete.

This is an integration app to import and display Todoist tasks and projects in Fibery.

This is a unidirectional synchronous integration app that simply displays tasks and projects in Todoist on the Fibery side.

As of March 2023, a Bata version of partial bi-directional sync has been implemented in the official Fibery-developed JIRA integration.

In the future, when bi-directional sync development becomes available for the Fibery integration API, I intend to implement bi-directional sync in this project as well.


Usage

This is still a development version, so please clone and host by yourself.


Implemented Features

  • Unidirectional synchronization of Todoist Task, Project, Label, and Collabolator.
  • Automatic synchronization of any period of time (every 60 to 240 minutes) set in Fibery.
  • Provides not only the same display as Todoist, but also more diverse perspectives through the use of the originally implemented Day, Week, Month, and Week day name DBs.
  • (Note: Completed Items are also retrieved, but the number of items retrieved is subject to the limitations of your Todoist plan)

Features to be developed in the future

  • (Currently no way to implement) Bi-directional sync of some attributes.
  • (Currently no way to implement) Partial overwrite.
  • (Under development feasibility study) Near realtime sync with incoming webhooks.

Features

Sample and suggested views

Calendar view:
You can see the list of tasks in a calendar view, which does not exist in Todoist.

Day Board View:
This view is similar to Todoist's Board view and can also display subtasks.

Week Board View:
This is a week view, which is not possible in Todoist.

Week day name View:
Vertical axis is the day of the week of ISO week, which Todoist cannot display.
This display is similar to a calendar, but can show more fields.

Month View:
For example, if you filter to only recurring tasks that only occur on a weekly or monthly basis, you can probably get a better idea of the appearance schedule.

And more...

Addition of these, the freedom of Fibery can be applied to Todoist.

In the future, when this application becomes stable/mature, it may be possible to turn on the setting to keep past data (see image below) and generate a graph where completed tasks can be evaluated.

It may also be possible to replicate Todoist's Karma.


Ingenious point

  • In Todoist, the completion status of a task is handled by the bool value of checked, but in order to make it visually clear on the Fibery side, it is synchronized as a Work Flow.
  • Implementing the time zone was quite a challenge. I implemented it by making full use of utc() and utc(true) in Day.js.

Things I noticed during development (to other developers)

  • You can also specify workflow as a subType for text, in addition to what is listed in the documentation.
    • The subtype can probably be roughly the dropdown in the image below (untested)
  • Although not mentioned in the documentat, the actual value passed when subType is date-range is in the following format
    • JSON.stringify({start: YYYY-MM-DD, end: YYYY-MM-DD})
  • It seems possible to implement near realtime sync of some fields by responding to Incoming Webhooks.
    • The officially developed Intercom integration uses this feature.

References.