--- title: Panora created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, integration, api-unified, saas, etl, no-code, typescript] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/panoratech/Panora] --- # 💻 Panora > **L'API unifiée pour intégrations SaaS** : connectez votre app à 30+ services (CRM, Helpdesk, ATS, Storage) en quelques lignes de code, sans réécrire une intégration par client — l'open source answer à Merge.dev et Apideck. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [panora.dev](https://panora.dev/) | | **GitHub** | [panoratech/Panora](https://github.com/panoratech/Panora) | | **License** | MIT (Community) + Commercial (Cloud) | | **Langage** | TypeScript (NestJS + Next.js) | | **Étoiles GitHub** | 1k ⭐ | | **Dernière MAJ** | 2026-06-07 | | **Catégorie** | [[cat-development\|Development]], Unified API / Integration | ## 📝 Description **Panora** est une **plateforme d'intégration open source** qui expose une **API unifiée** pour se connecter à des dizaines de SaaS tiers (CRM, Helpdesk, ATS, Storage, etc.). L'idée : **vous codez une seule intégration Panora**, et Panora se charge de parler à **HubSpot, Salesforce, Pipedrive, Zendesk, Intercom, Greenhouse, Lever, Notion, Airtable, Google Drive, Dropbox**… à votre place. Le problème que résout Panora : chaque SaaS a sa propre API, ses propres schémas, ses propres rate limits, ses propres webhooks, ses propres OAuth flows. Pour une startup B2B qui veut **supporter plusieurs CRM côté client**, cela signifie réécrire la même intégration 5 fois. Panora mutualise ce travail : **un seul schéma unifié** (Common Model), des **transformations automatiques** vers les formats natifs de chaque provider, et un système de **sync bidirectionnel** (webhooks + polling). C'est l'**open source alternative à Merge.dev** (leader du marché, $100k+/an) et **Apideck**. La version community couvre les intégrations les plus demandées ; la version cloud payante ajoute des providers enterprise, du support, et un SLA. **Public cible** : **startups B2B, équipes produit SaaS, intégrateurs** qui veulent **scaler leurs intégrations tierces** sans y passer un dev à plein temps. ### Fonctionnalités principales - ✅ **API unifiée** : un seul schéma pour 30+ SaaS - ✅ **Catégories couvertes** : CRM, Helpdesk, ATS, HRIS, Accounting, Storage, Calendar - ✅ **Sync bidirectionnel** : webhooks + polling, déduplication - ✅ **Common Model** : entités normalisées (Contact, Company, Deal, Ticket, etc.) - ✅ **Authentification déléguée** : OAuth flows gérés par Panora - ✅ **Rate limit handling** : backoff intelligent, queue - ✅ **Field mapping** : configuration par client des champs custom - ✅ **Webhooks sortants** : votre app est notifiée des changements - ✅ **API REST + TypeScript SDK** typé - ✅ **Logs d'audit** : qui a synchro quoi, quand - ✅ **Self-hosted** : 100% on-prem, données chez vous - ✅ **Extensible** : ajouter un provider custom (TypeScript) ## 🚀 Installation ### Via Docker (recommandé) ```yaml # docker-compose.yml version: '3.8' services: panora-api: image: panoratech/panora-api:latest container_name: panora-api restart: unless-stopped ports: - "3000:3000" environment: DATABASE_URL: "postgresql://panora:password@db:5432/panora" REDIS_URL: "redis://redis:6379" NEXTAUTH_SECRET: "changez-moi-en-production-50-chars" NEXTAUTH_URL: "https://panora.example.com" PANORA_ENCRYPTION_KEY: "32-chars-encryption-key-aes-256" depends_on: - db - redis labels: - "traefik.enable=true" - "traefik.http.routers.panora.rule=Host(`panora.example.com`)" - "traefik.http.routers.panora.entrypoints=websecure" - "traefik.http.routers.panora.tls.certresolver=letsencrypt" panora-web: image: panoratech/panora-web:latest container_name: panora-web restart: unless-stopped ports: - "3001:3000" environment: NEXT_PUBLIC_API_URL: "https://panora.example.com/api" db: image: postgres:16-alpine container_name: panora-db restart: unless-stopped environment: POSTGRES_USER: panora POSTGRES_PASSWORD: changez-moi POSTGRES_DB: panora volumes: - panora_db:/var/lib/postgresql/data redis: image: redis:7-alpine container_name: panora-redis restart: unless-stopped volumes: panora_db: ``` ### Installation manuelle ```bash git clone https://github.com/panoratech/Panora.git cd Panora docker compose -f deploy/docker-compose.yaml up -d ``` ## ⚙️ Configuration 1. **Créer le compte admin** : `https://panora.example.com/web` 2. **Configurer un provider** : Settings > Providers > ajouter credentials OAuth (HubSpot, Salesforce, etc.) 3. **Définir les connecteurs actifs** par client : vertical, sync mode (immediate/scheduled) 4. **Map custom fields** : pour chaque client, mapper ses champs custom 5. **Webhooks** : configurer l'URL de votre backend pour recevoir les events 6. **Chiffrement** : `PANORA_ENCRYPTION_KEY` obligatoire (AES-256 des tokens) 7. **API Keys** : créer des clés par client, scope par catégorie ### Exemple d'usage (API unifiée) ```bash # Récupérer les contacts de tous les CRM d'un client curl -H "Authorization: Bearer " \ -H "x-connection-id: " \ "https://panora.example.com/api/crm/contacts" # → schéma unifié, identique quel que soit le CRM ``` ## 🔗 Alternatives - **Merge.dev** — Leader du marché, propriétaire, $100k+/an - **Apideck** — Concurrent direct, plus accessible en pricing - **Unify** — Alternative européenne, plus orienté EU - **Nango** — Open source (MIT), focus sur OAuth + sync, plus bas niveau - **Kombo** — Concurrent européen, focus marché DACH - **Tray.io** — Plateforme iPaaS plus large, plus complexe - **Workato** — iPaaS enterprise, hors budget PME ## 🔒 Sécurité - **🔐 NEXTAUTH_SECRET + PANORA_ENCRYPTION_KEY robustes** : `openssl rand -hex 32` (32 chars pour AES-256) - **🛡️ HTTPS obligatoire via [[app-traefik]]** : Panora manipule des tokens OAuth, des données CRM, et des secrets - **🔒 Chiffrement des credentials** : tous les tokens provider sont chiffrés en base (AES-256) - **🛡️ API Keys** : scope par client, rotation régulière - **🛡️ Webhooks sortants** : signature HMAC, secret partagé - **🛡️ RGPD** : Panora accède à des données CRM → DPA, registre des traitements - **🛡️ Audit log** : conserver l'historique des synchronisations ## 📚 Ressources - [Site officiel](https://panora.dev/) - [Documentation](https://docs.panora.dev/) - [GitHub panoratech/Panora](https://github.com/panoratech/Panora) - [Démo en ligne](https://app.panora.dev/) - [Liste des providers](https://docs.panora.dev/core-concepts/providers/overview) ## 🔗 Pages Liées - [[cat-development]] — Catégorie Development - [[app-nango]] — Concurrent open source (plus bas niveau) - [[app-supabase]] — BaaS (Panora peut être utilisé par-dessus) - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques - [[recettes-docker-compose]] — Templates Docker