déployer un chatbot IA dans un CRM Node.js avec l’API OpenAI
16/01/2026
déployer un chatbot IA dans un CRM Node.js avec l’API OpenAI
Vous êtes CTO ou responsable produit d’une PME/Startup et vous souhaitez enrichir votre CRM sur-mesure avec un chatbot intelligent ? Ce tutoriel vous guide pas à pas pour intégrer l’API OpenAI dans un microservice Node.js, dockeriser le tout et garantir des temps de réponse optimisés.
1. Pré-requis et configuration initiale
- Node.js ≥ 18 (vérifié via
node -v). - Un compte OpenAI et votre clé API (forest > API Keys).
- Docker & Docker Compose installés.
- Accès à votre code CRM Node.js (Express, NestJS, etc.).
Installez les dépendances dans votre projet :
npm init -y
npm install express openai dotenv
2. Développement du microservice chatbot
2.1. Structure du projet
crm-chatbot/
├── .env
├── Dockerfile
├── docker-compose.yml
└── index.js
2.2. Fichier index.js
require('dotenv').config();
const express = require('express');
const { Configuration, OpenAIApi } = require('openai');
const app = express();
app.use(express.json());
const config = new Configuration({
apiKey: process.env.OPENAI_API_KEY
});
const openai = new OpenAIApi(config);
app.post('/chat', async (req, res) => {
const { message } = req.body;
try {
const response = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: message }]
});
res.json({ reply: response.data.choices[0].message.content });
} catch (err) {
console.error('OpenAI Error:', err.message);
res.status(500).json({ error: 'Erreur interne chatbot' });
}
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Chatbot service listening on ${PORT}`));
3. Containerisation avec Docker
3.1. Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
CMD ["node", "index.js"]
EXPOSE 3000
3.2. docker-compose.yml
version: '3.8'
services:
chatbot:
build: .
env_file: .env
ports:
- "3000:3000"
4. Tests et métriques de performance
- Lancer les containers :
docker-compose up --build. - Tester localement :
curl -X POST http://localhost:3000/chat -d '{"message":"Bonjour"}' -H "Content-Type: application/json". - Objectif latence < 200 ms par appel (benchmark avec
wrkouartillery). - Gérer le taux d’erreur (error rate) < 1 % en production.
5. Intégration au CRM et bonnes pratiques
- Proxy interne : routez les requêtes /chat via votre API Express principale pour auth et journalisation.
- Chunking : découpez les historiques longs pour respecter les limites du modèle (max tokens).
- Cache des réponses fréquentes avec Redis pour réduire les coûts OpenAI et améliorer la scalabilité.
- Monitorer l’usage via un dashboard Prometheus + Grafana ou un SaaS APM.
Exemple de métriques :Metric Objectif Latency (P95) < 200 ms Throughput > 100 req/s Error Rate < 1 %
Conclusion
En quelques étapes, vous avez mis en place un microservice Node.js qui enrichit votre CRM d’un chatbot IA. Vous disposez d’un déploiement Docker prêt pour la production, de métriques pour piloter les performances et de bonnes pratiques pour garantir fiabilité et scalabilité.
Prêt à passer à l’étape suivante ? Découvrez nos solutions d’intégration IA sur-mesure ou parcourez nos réalisations pour vous inspirer.

