Files
calendar/packages/platform/examples/base
Peer RichelsenGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>Amit Sharmasean-brydoncoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
20b7ac8c0d feat: implement tiered Intercom chat system replacing Plain (#23285)
* feat: implement tiered Intercom chat system replacing Plain

- Add TieredIntercomChat component with customer tier detection
- Add IntercomContactForm for free users using Intercom API
- Add /api/intercom-conversation endpoint for free user support
- Update UserDropdown to use tiered chat logic
- Replace Plain chat with Intercom in app providers
- Remove all Plain chat components and related files
- Use useHasPaidPlan hook for customer tier detection

Paying customers see Intercom widget, free users see contact form
that creates conversations via Intercom API.

Co-Authored-By: peer@cal.com <peer@cal.com>

* fix: add missing environment variables to turbo.json globalEnv

- Add NEXT_PUBLIC_WEBAPP_URL, NEXT_PUBLIC_WEBSITE_URL, NEXT_PUBLIC_STRIPE_PUBLIC_KEY
- Add NEXT_PUBLIC_IS_E2E, NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE_MONTHLY
- Add NEXT_PUBLIC_BOOKER_NUMBER_OF_DAYS_TO_LOAD, NEXT_PUBLIC_STRIPE_CREDITS_PRICE_ID
- Resolves turbo/no-undeclared-env-vars ESLint errors blocking commits

Co-Authored-By: peer@cal.com <peer@cal.com>

* fix: resolve linting errors in platform examples base package

- Fix prettier/prettier formatting (quotes and comma)
- Add underscore prefix to unused variables
- Resolves CI failure in @calcom/base#lint check

Co-Authored-By: peer@cal.com <peer@cal.com>

* remove plain usage

* placement fixes

* fix: pop closing immediately issue

* stuff

* proper error and additional user info

* add key to .env.example and remove unused plain route

* fix conversation route

* refactor intercom dynamic provider

* code rabbit fixes

* feat: introduce tiered support feature flag

* fix: type check

* Apply suggestion from @coderabbitai[bot]

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-09-09 18:20:22 +09:00
..
2025-08-11 20:53:26 +05:30
2025-08-11 20:53:26 +05:30
2025-07-03 16:45:23 +00:00

Atoms examples

Example apps using atoms - customizable UI components to integrate scheduling into your product.

Running examples apps locally

  1. Cal's backend is required to run example apps, so clone https://github.com/calcom/cal.com and follow setup instructions in the readme. Importantly, you need to have Google credentials setup by following this section in the docs.

  2. Open "apps/api/v2/.env" and copy environment variables below, and then copy NEXTAUTH_SECRET from the root ".env" of repository cloned in step 1.

NODE_ENV="development"
API_PORT=5555
DATABASE_READ_URL="postgresql://postgres:@localhost:5450/calendso"
DATABASE_WRITE_URL="postgresql://postgres:@localhost:5450/calendso"
API_URL="http://localhost"
NEXTAUTH_SECRET="copy from .env of root of repository cloned in step 1"
DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
JWT_SECRET="asjdijI1JIO12I3O89198jojioSAJDU"
REDIS_URL="redis://localhost:6379"
  1. Start "apps/api/v2" api using yarn dev.
  2. Start "packages/platform/atoms" atoms package with yarn dev.
  3. Start "apps/web" cal web app using yarn dx.
  4. Open your browser at "http://localhost:3000/" and login with admin username admin@example.com and password ADMINadmin2022!.
  5. In the web app navigate to http://localhost:3000/settings/organizations/new and create a sample organization. When asked for phone verification code enter 111111.
  6. In the web app navigate to http://localhost:3000/settings/organizations/platform/oauth-clients and create a new oAuth client - give all permissions and set redirect uri to http://localhost:4321 which points to example app.
  7. Setup environment for the example app you want to run:
    1. First, copy ".env.example" into ".env".
    2. Open ".env" file and paste client id from step 8 in NEXT_PUBLIC_X_CAL_ID and client secret in X_CAL_SECRET_KEY. If in step 2 you used the same environment variables, then NEXT_PUBLIC_CALCOM_API_URL can stay as is. Otherwise adjust the port to point to the same API_PORT as you used in step 2.
  8. Navigate to example app and setup database by running rm -f prisma/dev.db && yarn prisma db push.
  9. Start the example app by running yarn dev and go to http://localhost:4321.
  10. In the Google Cloud Console "API & Services" "Credentials" https://console.cloud.google.com/apis/credentials open web project setup in step 1 and add http://localhost:5555/v2/gcal/oauth/save to the authorized redirect URIs.
Screenshot 2024-03-21 at 09 42 36