You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/chat/README.md
+67-3Lines changed: 67 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Cal.com Chat Bot
2
2
3
-
A multi-platform chat bot for Cal.com built with [Chat SDK](https://chat-sdk.dev) and Next.js. Supports **Slack**and **Telegram**.
3
+
A multi-platform chat bot for Cal.com built with [Chat SDK](https://chat-sdk.dev) and Next.js. Supports **Slack**, **Telegram**, and **Sendblue iMessage**.
4
4
5
5
## Features
6
6
@@ -19,12 +19,20 @@ A multi-platform chat bot for Cal.com built with [Chat SDK](https://chat-sdk.dev
19
19
-**`/unlink`** — disconnect your Cal.com account
20
20
-**@mention** — ask anything in natural language (AI-powered)
21
21
22
+
### Sendblue iMessage
23
+
-**`/bookings`** — view upcoming bookings
24
+
-**`/availability`** — check your availability
25
+
-**`/book <username>`** — book a public Cal.com event with numbered text prompts
26
+
-**`/cancel` / `/reschedule`** — manage upcoming bookings with text confirmations
27
+
-**`/link`** — connect your Cal.com account via OAuth
28
+
-**Freeform message** — ask anything in natural language (AI-powered)
4. Add a signing secret and set it as `CALCOM_WEBHOOK_SECRET`
144
-
5. (Optional) In the webhook metadata, include `slack_team_id` and `slack_user_id` to route notifications to specific users
160
+
5. (Optional) In the webhook metadata, include routing fields:
161
+
- Slack: `slack_team_id` and `slack_user_id`
162
+
- Telegram: `telegram_chat_id`
163
+
- Sendblue: `sendblue_phone` or `sendblue_thread_id`
145
164
146
165
### Telegram (optional)
147
166
@@ -165,6 +184,26 @@ To enable the Telegram bot alongside Slack:
165
184
166
185
**Limitations:** Streaming uses post+edit fallback (no native streaming). Modals are not supported. Button callback data is limited to 64 bytes — keep action IDs short.
167
186
187
+
### Sendblue iMessage (optional)
188
+
189
+
To enable Sendblue alongside Slack and Telegram:
190
+
191
+
1. Create a Sendblue account and register an iMessage-capable sending number
192
+
2. Add to `.env`:
193
+
-`SENDBLUE_API_KEY`
194
+
-`SENDBLUE_API_SECRET`
195
+
-`SENDBLUE_FROM_NUMBER`
196
+
-`SENDBLUE_WEBHOOK_SECRET` if you configure webhook verification
197
+
3. Point Sendblue inbound webhooks to:
198
+
```text
199
+
https://your-domain.com/api/webhooks/sendblue
200
+
```
201
+
4. If using webhook verification, configure Sendblue to send the same secret in the `sb-signing-secret` header.
202
+
203
+
**Services:** The adapter accepts iMessage inbound messages by default. SMS/RCS are intentionally not enabled here.
204
+
205
+
**Limitations:** Sendblue/iMessage has no message editing, modals, dropdowns, or buttons. The bot uses numbered text prompts for booking, cancellation, and rescheduling flows. Group iMessage threads are intentionally ignored.
206
+
168
207
### 7. Run locally
169
208
170
209
```bash
@@ -192,6 +231,12 @@ Remember to restore the production webhook URL (including the secret token if yo
0 commit comments