cal/packages/app-store/zapier
Joe Au-Yeung a9a295dc54
Admin apps UI (#5494)
* Abstract app category navigation

* Send key schema to frontend

Co-authored-by: Omar López <zomars@users.noreply.github.com>

* Render keys for apps on admin

* Add enabled col for apps

* Save app keys to DB

* Add checks for admin role

* Abstract setup components

* Add AdminAppsList to setup wizard

* Migrate to v10 tRPC

* Default hide keys

* Display enabled apps

* Merge branch 'main' into admin-apps-ui

* Toggle calendars

* WIP

* Add params and include AppCategoryNavigation

* Refactor getEnabledApps

* Add warning for disabling apps

* Fallback to cal video when a video app is disabled

* WIP send disabled email

* Send email to all users of  event types with payment app

* Disable Stripe when app is disabled

* Disable apps in event types

* Send email to users on disabled apps

* Send email based on what app was disabled

* WIP type fix

* Disable navigation to apps list if already setup

* UI import fixes

* Waits for session data before redirecting

* Updates admin seeded password

To comply with admin password requirements

* Update yarn.lock

* Flex fixes

* Adds admin middleware

* Clean up

* WIP

* WIP

* NTS

* Add dirName to app metadata

* Upsert app if not in db

* Upsert app if not in db

* Add dirName to app metadata

* Add keys to app packages w/ keys

* Merge with main

* Toggle show keys & on enable

* Fix empty keys

* Fix lark calendar metadata

* Fix some type errors

* Fix Lark metadata & check for category when upserting

* More type fixes

* Fix types & add keys to google cal

* WIP

* WIP

* WIP

* More type fixes

* Fix type errors

* Fix type errors

* More type fixes

* More type fixes

* More type fixes

* Feedback

* Fixes default value

* Feedback

* Migrate credential invalid col default value "false"

* Upsert app on saving keys

* Clean up

* Validate app keys on frontend

* Add nonempty to app keys schemas

* Add web3

* Listlocale filter on categories / category

* Grab app metadata via category or categories

* Show empty screen if no apps are enabled

* Fix type checks

* Fix type checks

* Fix type checks

* Fix type checks

* Fix type checks

* Fix type checks

* Replace .nonempty() w/ .min(1)

* Fix type error

* Address feedback

* Added migration to keep current apps enabled

* Update apps.tsx

* Fix bug

* Add keys schema to Plausible app

* Add appKeysSchema to zod.ts template

* Update AdminAppsList.tsx

Co-authored-by: Omar López <zomars@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-12-07 14:47:02 -07:00
..
api Fix Zapier sample data and payload (#5241) 2022-10-28 09:09:15 +00:00
components 🧹 One `calcom/ui` import to rule them all (#5561) 2022-11-22 19:55:25 -07:00
lib Add try-catch and validation to run triggers on reschedule (#5252) 2022-10-28 09:36:30 +00:00
pages/setup Trigger webhooks when booking is confirmed not submitted (#5609) 2022-11-23 16:38:13 +00:00
static Add links to Zapier templates in installed apps (#4982) 2022-10-15 08:05:37 +00:00
_metadata.ts Admin apps UI (#5494) 2022-12-07 14:47:02 -07:00
index.ts 🧹 One `calcom/ui` import to rule them all (#5561) 2022-11-22 19:55:25 -07:00
package.json Add links to Zapier templates in installed apps (#4982) 2022-10-15 08:05:37 +00:00
README.md Zapier Trigger: After Meeting ends (#3827) 2022-08-15 20:18:41 +00:00
README.mdx Removed old v1 app components in web. (#5286) 2022-10-31 10:42:01 +00:00
zod.ts Admin apps UI (#5494) 2022-12-07 14:47:02 -07:00

Setting up Zapier Integration

If you run it on localhost, check out the additional information below.

  1. Create Zapier Account
  2. If not redirected to developer account, go to: Zapier Developer Account
  3. Click Start a Zapier Integration
  4. Create Integration
    • Name: Cal.com
    • Description: Cal.com is a scheduling infrastructure for absolutely everyone.
    • Intended Audience: Private
    • Role: choose whatever is appropriate
    • Category: Calendar

Authentication

  1. Go to Authentication, choose Api key and click save
  2. Click Add Fields
    • Key: apiKey
    • Check the box is this field required?
  3. Configure a Test
    • Test: GET <baseUrl>/api/integrations/zapier/listBookings
    • URL Params
      • apiKey: {{bundle.authData.apiKey}}
  4. Test your authentication —> First you have to install Zapier in the Cal.com App Store and generate an API key, use this API key to test your authentication (only zapier Api key works)

Triggers

Booking created, Booking rescheduled, Booking cancelled, Meeting ended

Booking created

  1. Settings
    • Key: booking_created
    • Name: Booking created
    • Noun: Booking
    • Description: Triggers when a new booking is created
  2. API Configuration (apiKey is set automatically, leave it like it is):
    • Trigger Type: REST Hook
    • Subscribe: POST <baseUrl>/api/integrations/zapier/addSubscription
      • Request Body
        • subscriberUrl: {{bundle.targetUrl}}
        • triggerEvent: BOOKING_CREATED
    • Unsubscribe: DELETE <baseUrl>/api/integrations/zapier/deleteSubscription
      • URL Params (in addition to apiKey)
        • id: {{bundle.subscribeData.id}}
    • PerformList: GET <baseUrl>/api/integrations/zapier/listBookings
  3. Test your API request

Create the other triggers (booking rescheduled, booking cancelled and meeting ended) exactly like this one, just use the appropriate naming (e.g. booking_rescheduled instead of booking_created)

The invite link can be found under under Manage → Sharing.

Localhost

Localhost urls can not be used as the base URL for api endpoints

Possible solution: using https://ngrok.com/

  1. Create Account
  2. Download gnork and start a tunnel to your running localhost
    • Use forwarding url as your baseUrl for the URL endpoints