All Collections
Integrations
Zapier
Kisi Integration - Electronic Locks
Kisi Integration - Electronic Locks

Connect Skedda to Kisi using Zapier's Webhooks

Team Skedda avatar
Written by Team Skedda
Updated over a week ago

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 work flows. 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, first few minutes of the booking, etc., but it will always be dependant on a booking. If you would like to give all of your Skedda users access to Kisi all of the time or not dependant on their bookings, then Skedda and Kisi can be used as two standalone platforms without an integration.

Since every Skedda venue is unique and has differing needs, we've created this tutorial for you to make your own integration using Zapier.

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.

  1. 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.

  2. 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. 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

3 examples of Kisi actions are described in this article:

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

Kisi documentation: Headers

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!

Kisi documentation: Unlock a lock

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 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 in 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 that 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

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 that 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:

Kisi documentation: Send access link

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

Did this answer your question?