integration de chatgpt dans un crm sur-mesure avec node.js et typescript : tutoriel technique
21/09/2025
integration de chatgpt dans un crm sur-mesure avec node.js et typescript
Dans ce tutoriel technique, nous allons connecter l’API ChatGPT d’OpenAI à un CRM sur-mesure développé en Node.js et TypeScript. Vous apprendrez à créer un endpoint REST, à gérer les appels asynchrones et à sécuriser les échanges pour offrir à vos équipes commerciales une assistance automatique intelligente.
prérequis
- Node.js v18+ et npm installés
- Un projet TypeScript configuré (
tsconfig.json
) - Clé API OpenAI (compte sur platform.openai.com)
- Accès à votre code CRM sur-mesure (Express, NestJS ou framework équivalent)
1. installation du SDK OpenAI
- Ajouter la dépendance officielle :
npm install openai@^4.0.0
# ou avec yarn
yarn add openai@^4.0.0
La version 4+ inclut le type ChatCompletion
et la gestion native des modèles GPT-4.
2. configuration de l’accès à l’API
- Créer un fichier
.env
à la racine :
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Charger les variables d’environnement :
npm install dotenv
# puis dans src/index.ts ou app.ts
import 'dotenv/config';
3. création de l’endpoint « chat » dans votre CRM
Exemple avec Express + TypeScript :
import express from 'express';
import { Configuration, OpenAIApi } from 'openai';
const app = express();
app.use(express.json());
// Initialisation OpenAI
const config = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
const openai = new OpenAIApi(config);
app.post('/crm/chat', async (req, res) => {
try {
const { prompt, userId } = req.body;
if (!prompt) return res.status(400).json({ error: 'prompt manquant' });
// Appel OpenAI
const completion = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: prompt }],
max_tokens: 150,
});
const reply = completion.data.choices[0].message?.content || '';
// Ici, vous pouvez stocker reply en base ou déclencher un workflow CRM
res.json({ reply });
} catch (error: any) {
console.error('OpenAI error :', error.response?.data || error.message);
res.status(500).json({ error: 'Erreur interne du serveur' });
}
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`API CRM démarrée sur :${PORT}`));
Points clés :
- Validation du
prompt
pour éviter les requêtes vides. - Gestion des erreurs OpenAI (rate limit, clé invalide).
- Stockage possible de la conversation dans votre base (PostgreSQL, MongoDB…).
4. test et automatisation CI/CD
Pour valider votre endpoint :
curl -X POST http://localhost:3000/crm/chat \
-H 'Content-Type: application/json' \
-d '{"prompt":"Comment qualifier un lead ?"}'
Intégrez ensuite ce test dans votre pipeline GitLab CI / GitHub Actions pour garantir un temps de réponse <500 ms en environnement de staging.
5. bonnes pratiques de performance et sécurité
- Limiter
max_tokens
pour réduire le coût et le temps de latence. - Mettre en cache les réponses fréquentes (Redis).
- Contrôler les quotas API pour éviter les surcoûts.
- Protéger l’endpoint avec un JWT ou OAuth2 adapté (ERP/CRM sur-mesure).
exemple d’optimisation de cache avec Redis
import Redis from 'ioredis';
const redis = new Redis();
const cacheKey = `chat:${userId}:${hash(prompt)}`;
const cached = await redis.get(cacheKey);
if (cached) return res.json({ reply: JSON.parse(cached) });
// après appel OpenAI
await redis.set(cacheKey, JSON.stringify(reply), 'EX', 3600);
conclusion
En quelques étapes, vous avez mis en place une intégration robuste de ChatGPT dans votre CRM sur-mesure avec Node.js et TypeScript. Cette fonctionnalité améliore l’efficacité de vos commerciaux, réduit le temps de qualification des leads et apporte un avantage concurrentiel tangible.
Vous souhaitez aller plus loin en ajoutant de l’IA à vos processus métiers ? Découvrez nos services d’intégration d’intelligence artificielle ou contactez-nous pour un audit personnalisé.