Update: Kisi now has Zapier actions. It is no longer necessary to use Zapier’s webhook action to connect with Skedda.
Connecting Skedda to Kisi will allow you to automate your booking and access control workflows. For example, automatically unlock a door or send an access link to allow users to get into the spaces they've booked in Skedda.
This automation can allow access for the duration of the booking, the first few minutes of the booking, etc., but it will always be dependent on a booking. If you would like to give all of your Skedda users access to Kisi all of the time or not depending on their bookings, then Skedda and Kisi can be used as two standalone platforms without an integration.
Setup
To learn more about how Zapier works generally, please refer to this article. After choosing the right trigger, you have two options to set up the rest of the Zap.
Kisi's Zapier actions allow you to do a few actions with locks, shares, and schedules. This is very easy to set up, but a bit limited.
If these options do not work for your situation, you can access all of Kisi's API actions using Zapier Webhooks. This requires a little bit of coding but is fully explained below.
Please note: This was the primary way to connect Skedda and Kisi before they released Zapier actions.
Method 1: Zapier Action
Kisi’s Zapier actions can be found here. Below is an example scenario.
Create a Kisi Share for the duration of a Skedda booking
As soon as a user makes a Skedda booking they will receive an email from Kisi. This email tells them that they have access for the duration of the Skedda booking and to install the Kisi app to unlock the door(s).
Trigger: Skedda - New User Booking
Action: Kisi - Create Share
This sends the email below to the Skedda booking holder:
If you would like to do something in your Kisi account that is not listed in the Zapier actions, but is in Kisi’s API then you can use Zapier’s webhooks.
Method 2: Webhook Method
You can find the Kisi instructions here.
Zapier Webhooks - Create a Webhooks by Zapier Action to talk to Kisi
Kisi Values - Unique Kisi values (ID numbers) needed
Kisi Action - Lock, unlock, or create schedules
Zap Templates - Examples to copy to your Zapier account
3 examples of Kisi actions are described in this article:
Unlock a lock right at the time of the booking for 3-30 seconds
Create a scheduled unlock to last the duration of the booking
Send an access link that is valid for the duration of the booking
Refer to Kisi's API documentation for extra information or if you run into strange errors.
All of the Kisi API interactions are done through Zapier's Webhooks, specifically a Custom Request > POST.
This requires a Starter Zapier plan or above (depending on how many Zap tasks you do per month).
Create a Webhooks by Zapier action to talk to Kisi
Choose 'Webooks by Zapier' and pick 'Custom Request':
The Method is POST, the URL and Data will depend on what Kisi action you are doing. Various actions are described below.
Headers
Find the Kisi documentation for headers here.
Each POST needs to have these 4 headers:
accept = application/json
content-type = application/json
Authorization = KISI-LOGIN generated API key from Kisi Dashboard
X-Kisi-Integration-Identifier = Skedda
Kisi can react and reach out to us in case of any issues with your integration
Unique Kisi values (ID numbers) needed
To tell Kisi which items to do the actions to, find the following IDs in the URL of various pages in your Kisi dashboard. Include these where necessary in your Zap actions.
Door page: https://web.kisi.io/places/12345/locks/67890
Place ID = 12345
Lock ID = 67890
Team page: https://web.kisi.io/organization/123/groups/45678
Organization ID = 123
Group ID = 45678
Locks vs. Groups
You can perform some Kisi actions on individual locks or groups of locks. If you can group locks to avoid doing multiple actions each Zap, then you'll cut down on the number of Zap tasks you run!
Add doors/locks to a Team in the Kisi dashboard and take note of the Group ID in the URL.
Example Kisi Actions
Unlock a lock
This unlocks the lock at the time of the Zap action for the duration set in the lock settings (3 - 30 seconds).
Anyone standing at the door at the exact time of this unlock action can get inside. This means it's fairly secure, but doesn't leave much flexibility for your booking holders. They can't be even 30 seconds late! See the Kisi documentation for unlocking a lock here.
You only need to input the lock ID in the URL and include the 4 headers. No code in the data section is necessary for this action.
Create a scheduled unlock
This unlocks a lock or group of locks for the duration of the booking or another duration that you set (ex. first 10 minutes of the booking). You can run this Zap to create the schedule for a set time before the booking starts, ideally once the booking is locked in, in Skedda. If you use the external calendar (synced to Skedda) trigger, you just need to allow time for the calendar to sync with Skedda before running this Zap.
Creating a scheduled unlock can be done manually from Kisi on the lock page:
Example workflow:
Skedda > Speedy script > Google Calendar > Webhooks Zap > Kisi
Skedda 2-hour lock-in policy (users cannot edit or cancel their booking if it starts in less than 2 hours)
Speedy script syncs your Google Calendar to Skedda every 30 minutes
Create the scheduled unlock through Zapier 1 hour before the event start in Google Calendar
This option gives the most flexibility to your booking holders and anyone attending the booking; however, it is the least secure. If the booking holder doesn't show up there is no way for Skedda/Kisi to know and the door will still be unlocked automatically. If you do choose this option, it is recommended that you require your users to notify you if they won't be coming to their booking in your terms and conditions. That way you can manually cancel the Zap or delete the scheduled unlock in Kisi to prevent unintended users from accessing your space.
Example Zaps:
Kisi documentation: Create a scheduled opening for the duration of the booking here.
Data:
{
"schedule": {
"enabled": true,
"consequence": "unlock",
"scheduleable_type": "GROUP OR LOCK",
"scheduleable_id": ID OF THE GROUP OR LOCK,
"type": "single_event",
"starts_at": "EVENT START FROM TRIGGER",
"ends_at": "EVENT END FROM TRIGGER"
}
Here is what it will look like in Zapier for a Lock with ID 22281 and Google Calendar trigger:
Send group access link
This will email a link to the booking holder (or another email that you collect in a custom field) that is valid for the duration of the booking to unlock a lock or group of locks. This can be done manually in Kisi from the Teams page > Access Links:
The link can be forwarded by them to anyone else who needs access to the space. This is the most secure option but is not suitable for users who do not have internet access when they are standing at the door. For example, if they run out of data on their mobile plan, or if their device runs out of battery, they will be locked out.
Example Zap:
Google Calendar trigger - Send team access link to email collected in custom field (with filtering by space)
Kisi documentation: Send access link here.
Data:
{
"group_link": {
"name": "NAME OF THE USER or generic label SKEDDA BOOKING",
"email": "BOOKING HOLDER EMAIL",
"valid_from": "BOOKING START TIME",
"valid_until": "BOOKING END TIME",
"group_id": ID OF THE GROUP
}
}
Here is what it will look like in Zapier for a Group with ID 32693 and Google Calendar trigger with a formatting step to extract the booking holder's email (step 2 output):
Zap Templates/Examples
Skedda/Outlook → Kisi: Create unlock schedule based on a Skedda booking synced to Outlook: https://zapier.com/shared/e9ea6159c48a734c9211d1f5d0da2f808a584ccd
Skedda→ Kisi: Create unlock schedule based on a Skedda booking: https://zapier.com/shared/6de0101be4ef8dc8776373b588c98c368416bb02
Skedda/Google Calendar → Kisi: Send access link based on a Skedda booking synced to Google Calendar: https://zapier.com/shared/de1c76f515c68adc447ba90c646ca2677abba596