Google Calendar
CalendarOAuth-based two-way sync of meetings, time blocks, and free/busy windows. Powers the user-calendar availability and event-type endpoints under /user/calendar/*.
CleenUI is built to interoperate. There are two layers of integrations in the codebase — the ones your end-users connect to their own accounts, and the ones the development team wires into the application's own internals. Both ship configured and ready to go.
Integrations your end-users connect from their account settings. Each one runs through a standard OAuth flow — users authorize once, CleenUI stores the refresh tokens scoped to their account, and the relevant background jobs handle synchronization. Adding a new vendor in this list is typically a configuration row plus a per-vendor OAuth handler.
OAuth-based two-way sync of meetings, time blocks, and free/busy windows. Powers the user-calendar availability and event-type endpoints under /user/calendar/*.
Automatic meeting-link generation for scheduled events. Pairs with Google Calendar — when a user schedules a call through CleenUI, a Meet link is provisioned and added to the calendar invite.
Alternative video provider for users who prefer Zoom over Meet. Per-user OAuth; meeting links are created on-demand and attached to scheduled events.
Webhook-driven booking sync. CleenUI subscribes to Calendly's event-created webhooks and pulls the resulting bookings into the in-app calendar without forcing users off their existing scheduling tool.
Bidirectional CRM sync for users whose pipeline lives in GHL. Prospects converted in CleenUI flow back to GHL; GHL contacts surface in the app's prospect-search.
Webhook-based notification channel — users route in-app events (assignments, mentions, status changes) to a Slack channel of their choice. Configured per-user in notification settings.
Third-party services the codebase wires for its own internal functions. These aren't user-facing — they're the providers behind authentication, AI capabilities, payment processing, telemetry, and media workflows. Every one is behind a thin abstraction so swap-outs (e.g., changing LLM providers, moving from Twilio to a different SMS vendor) are configuration changes, not refactors. Listed here by category. Configuration lives in appsettings.json; values are kept out of source control via Azure Key Vault references.
Primary identity provider. OIDC, social login (Google, Microsoft, GitHub, Apple), MFA, password reset, and management-API integration for tenant provisioning. The full identity stack is documented in module M01 (Security).
GPT-family models for text generation, embeddings, and function-calling. Behind the cleenLLM abstraction so prompts are written against the abstraction, not a provider-specific SDK.
Claude family for the same workloads as OpenAI — used where context-window or steerability is the deciding factor.
Gemini family as a third LLM option, swappable per workload. Per-prompt routing is configured at the platform level.
Multi-provider LLM gateway — used to access Llama, Mistral, and other open-weight models without integrating each provider's API individually.
Hosted-inference endpoints for fine-tuned and self-hosted models. Used for the specialized models that don't justify a dedicated commercial-LLM contract.
AI avatar video generation. Used by the assessment + scorecard modules for synthesized avatar presentations. Webhook-driven; HeyGen calls back into /media/ai/hey-gen/callback/receive when a video is ready.
Stable Diffusion-based text-to-image and image-to-image generation. One of three image-gen providers wired in; routing is per-workload.
Multi-provider image generation gateway. Falls back through providers automatically when one is rate-limited or fails.
SDXL-base image generation as a third image-gen option. Used where the cheapest-per-image cost is the primary constraint.
OCR, image classification, and content moderation. Used in the media-safety background jobs that screen user uploads before they go live.
Cloud video transcoding service. Triggered by the media pipeline when an uploaded video needs to be normalized to web-friendly formats and resolutions.
Asset-rendering API used in the artifact and template-generation pipelines for composed visual outputs.
Stock-photo search. Powers the photo-pickers in artifact templates, presentation builders, and any UI surface that lets users insert a stock image.
GIF, sticker, and emoji search. Surfaced in the chat composer and rich-text editors.
Alternative GIF provider — used as a fallback when Giphy doesn't have coverage.
Licensed SVG-icon search. Powers the icon-picker in the artifact and template builders.
Aggregated icon-library API covering 100+ open icon sets. Used for the developer-facing icon picker.
Searchable SVG illustrations. Used by the artifact and presentation modules where vector graphics are the right asset.
The primary data store. 300+ tables, 700+ stored procedures, accessed via Dapper + ADO.NET.
Media storage — user-uploaded images and video, static assets, and cold-archive blobs. Multiple storage accounts segment hot vs. static vs. cold.
Bulk best-effort queues for media safety, object detection, translation backfill, and AI dispatch.
Layer-2 distributed cache shared across API instances and WebJobs. Two separate Redis instances — one for API hot paths, one for AI workloads.
Outbound email — backed by Azure's managed email service. Used by the notify-template module to dispatch transactional and digest emails.
Cross-platform push notifications (iOS, Android, web) for the chat, task, and notification modules.
Server-side telemetry and exception capture. Configurable — the codebase is OpenTelemetry-compatible, so Datadog / New Relic / any OTLP collector can swap in.
Subscription billing, one-time payments, and the webhook receiver that drives subscription-lifecycle events (paid, failed, disputed). Plan-vendor mappings link CleenUI's internal Plan rows to Stripe price IDs.
SMS verification codes for phone-based MFA and password recovery, plus general SMS notifications. Per-country routing rules live in the SMS-dispatcher function.
URL-metadata extraction for the link-preview cards that appear in chat, comments, and task descriptions.
Lexical lookup — definitions, synonyms, part-of-speech — used by the entity-moderation system to evaluate user-generated text.
Operational alerting destination for the cleenExceptionDigestJob and cleenJobMonitorJob — the engineering team's first line of incident notification.
Two paths to your first component. Pick the one that fits how your team builds.
One prompt to your AI tool. The Setup skill handles dependencies, design tokens, build config, and component registration — all without leaving your editor.
The classic flow. Install the package, import the styles, drop in your first component. No agents required — same end result.