It has been quite some time since my last post, and although I finished all the development work by the end of February, I started working for a new company, so I could not make time to write this article.
I have implemented what I am currently able to do in the development of the Todoist integration application, and I would like to ask you to check the code and ask some questions.
I know you are busy, so I will wait patiently and would appreciate it if you could check it when you have some time.
I would be very happy if this app I developed could be of use to someone in the future!
Questions about features I want to implement
About Bi-directional sync
The bi-directional sync of JIRA released in the beta version was great.
It would be great if you could release the actual implementation code as OSS in the near future!
This is not a question, just a request.
About Entity update with incoming webhook
I tried to implement this based on your previous answer, but I was not able to implement it to the best of my ability.
I would like to wait for actual samples from Intercom app and others to be released.
Also, I actually tried Intercom’s integration and it was still a great experience.
As I’m sure you know, I have seen requests on GitHub for near realtime sync based on Webhook to be implemented, so it would be great to see a detailed real-world example published.
I think many people would be happy to see this feature enabled in the new JIRA integration as well.
This is also not a question, just a request.
Q. About the partial update of Entity.
This is a question and a request for partial entity override in the integration API.
The Todoist API handles completed tasks differently than normal tasks, and Tasks and Completed Tasks are retrieved from different API endpoints.
In addition, Tasks retrieved from the Completed Task endpoint omit some properties.
As shown in the image below, for example, “task creation date” and “multiline text description” are properties that are omitted in the Completed Task endpoint.
On the Fibery side, if you separate the Task and Completed Task DBs, the task will be moved to a different DB when it is completed, so if it is mentions in a text somewhere, it will no longer exist.
Therefore, I implemented to display both Tasks and Completed Tasks on one Task DB.
However, if the Fibery data is updated with the information obtained from the new Completed Task, the missing properties from the already existing task will disappear.
To avoid this, if there is a synchronization method called “Partial Overwrite”, I can update only the properties that already exist, such as “Completion Date” and “Status”, etc. Is it possible to implement this at this time?
By the way, I found a description of delta synchronization in the document of the Integration api, and thought this might be the feature I was looking for, so I tried it. However, it seems that this one does not “partially overwrite” but “completely replace”.
The documentation didn’t give any details about delta synchronization, so I would also like to ask you to check if my understanding is correct.
Specification of delta synchronization:
- Only one of “SET” or “REMOVE” can be specified.
- If SET is specified, the target Entity will be overwritten with all newly passed information. (Missing properties for the Schema definition are overwritten with null.)
- If REMOVE is specified, the target Entity is deleted.
- Entities that are not included in the items array will remain in the Fibery side.
If the above is correct, I would like to have another option like “UPDATE”, “UPSERT”.
I think it would be possible to implement this at this time by starting up a database on my application side and keeping a copy of the data, but I don’t want to do that for maintenance and security reasons.
I would be very happy if you could publish an actual example here as well!
That’s all I have to ask.
Requests for Integration API
Creating views from the Integration app
This is just a suggestion, but I thought it would be nice to be able to generate views that the developer recommends while developing the integration.
Here is a concrete example from the integration I created this time.
In Todoist, not only for tasks as mentioned above, but also for projects, it is necessary to hit different end points for active projects and archived projects.
However, on the other hand, when retrieving a Task, it is normally retrieved with active status, even though the Task is in the Archived project.
In the integration I created this time, I omitted the getting the Archived Project.
All Todoist tasks always belong to a parent project, but since Archived Projects are not retrieved, they are displayed in Fibery as uncompleted tasks with no parent.
Therefore, in order to match the Todoist display, the “Project is Empty” filter must be applied after the view is created.
I think it would be troublesome for users of the integration feature to go through this kind of detailed setup each time they use it, so I thought it would be a good idea to provide a function to generate a sample view.
In particular, since the integration feature is likely to be used by users of the original app, it would be a memorable experience if a view similar to the original app is generated on Fibery at the same time they start using the integration feature.
I have come up with several ideas for this matter that can be implemented at this time.
Have the user provide the Fibery api key and domain name when setting up the integration, and generate the view via the Fibery API.
Receiving Fibery’s API key doesn’t seem like a good security idea.
I don’t think it’s a good idea to have no-code users to do the black box work, because if this becomes the norm, there is a risk that someone with malicious intent could exploit it.
So, I know it’s not a priority, but it would be nice if there was a way to do create view safely with integration api.
About Formula field
I have implemted a db for date and week within this app.
I thought it would be nice to be able to add pictograms to “today” and “this week” to make them stand out in the view that is shown to the user.
I can provide that field on the integration app side, but it will not be reflected until synchronization occurs, so it would be nice if the integration app could be given the ability to generate Fibery’s formula field.
Sorry again for the very long post.
I would be very happy if you could answer briefly when you have time.
Now that GPT-4 has been released, it may be easier to develop integration features.