I was playing around with the idea how to get more out of Kaizala and it’s interfaces. I have already earlier written about using the Flow with Kaizala in my November 2018 post. This time I thought I bring in Rest API and see how that can be used when creating a messaging solution.
Why and basics
The first question is always “Why” and the second is “What”. Make sure you have the answer for this before proceeding beyond POC/test phase. Why do you need to send messages & information to Kaizala Group. What are you expecting from it. Why people are using Kaizala. What they can do and what happens to their feedback.
Create a connector
To use Kaizala Rest API you need to configure a connector with suitable permissions. This is done by Kaizala Admin in Kaizala Admin Portal. This is a similar to Application Authorization / Permissions done in Azure AD. This has nothing to do with Office 365 Groups Connectors.
After setting up a connector you will get Application ID, Application Secret and a refresh Token. For more details check out the documentation, which provides you a good 101 how to do this.
After this phase you can continue to work on your application. For API calls you need to know the Endpoint URL and use Access Token to get be able to use API . Since I was playing with a quick & dirty POC I didn’t fetch my secrets from a file.. and used PowerShell. Naturally.
For some reason I could not retrieve a groups list using API, so I had to get the group ID manually via Kaizala Admin Portal (open the group and check the URL for ID). After this, the first test was succesful.
Naturally my next test was to pop out Announcement in the Kaizala group.
These two tests worked fine without any issues. Thus it is possible to create a message or Announcement to a Kaizala group via API without too many problems. Sorry about the FinnishEncrypted Kaizala UI.
For more API reference go to Kaizala API Documentation.
While sending messages and adding (a text) Announcement was easy, there are still a lots of missing parts in the API. For example fetching groups (and getting empty result) should not work like that (or I have a bug somewhere) and there is no GET action for messages. Kaizala and Teams integration will eventually also bring in new angles how these groups should be accessed.
I was not also able to include any media (file, picture) in my calls. The documentation doesn’t have enough examples how a file should be included. This will need more experimenting and a follow-up blog once I have taken my time to study that part of the API.
Flow to the conclusion
In case you are experimenting how to connect Teams, Intranet or other backend systems to Kaizala I recommend for most cases to build a Flow/Logic App for that. There are more options already available (and triggers too) that make interacting with the Kaizala group way more easier than working with Rest API at this point. You can use messaging/files in Teams and build a Flow towards (and back from!) Kaizala. Or you can write messages and so on into a SharePoint list/document library and initiate a Flow from there to send information to Kaizala.
However, if you have some backend systems or other processes that could connect to Kaizala via Rest API.. It can be done even now (with some limits) and I believe it will be better in the future. One nicely usable solution could be a messaging extension to Microsoft Teams: sending messages to Kaizala. With this I would, however, wait for the reveal of Kaizala+Teams Integration Roadmap to see what’s coming from there and approximately when.