Why Connect Intercom to Odoo?
Intercom handles customer messaging — live chat, chatbots, product tours, and email campaigns. Odoo handles your business operations — CRM, invoicing, inventory, and project management. Without integration, your support team works in Intercom while your sales team works in Odoo, creating data silos and missed opportunities.
Connecting Intercom to Odoo ensures that every chat conversation can become a CRM lead, every customer interaction is logged against their Odoo contact, and your sales team sees the full picture without switching tools.
Integration Approaches
| Method | Difficulty | Best For |
|---|---|---|
| Zapier / Make | Easy | Simple sync, low volume |
| Intercom Webhooks + Custom Code | Medium | Real-time, full control |
| n8n Self-Hosted | Medium | No per-task costs |
| Custom Odoo Module | Hard | Deep integration, high volume |
What to Sync
Intercom to Odoo
- New conversations become CRM leads or helpdesk tickets
- Contact data (name, email, company) syncs to Odoo partners
- Conversation tags map to Odoo lead tags
- Custom attributes flow to Odoo partner fields
- Conversation ratings feed into customer satisfaction tracking
Odoo to Intercom
- Customer subscription status updates Intercom user attributes
- Invoice and payment status visible in Intercom user profile
- Product/plan information for support context
- Account owner assignment for routing conversations
Step 1: Get Intercom API Credentials
- Go to Intercom → Settings → Integrations → Developer Hub
- Create a new app or use your existing workspace
- Generate an Access Token with the scopes you need
- Required scopes:
read conversations,read users,write users
Step 2: Set Up Webhooks
In Intercom Developer Hub, configure webhooks to fire on these events:
conversation.created— new chat startedconversation.closed— conversation resolvedconversation.rating.added— customer rated supportcontact.created— new contact identified
# Webhook payload example (conversation.created)
{
"type": "notification_event",
"topic": "conversation.created",
"data": {
"item": {
"type": "conversation",
"id": "123456",
"source": {
"body": "I need help with my subscription",
"author": {
"email": "[email protected]",
"name": "Jane Smith"
}
}
}
}
}Step 3: Create Odoo Webhook Handler
# In your Odoo custom module controller
from odoo import http
import json, hmac, hashlib
class IntercomWebhook(http.Controller):
@http.route('/intercom/webhook', type='json', auth='none', csrf=False)
def handle_webhook(self, **kwargs):
data = json.loads(http.request.httprequest.data)
topic = data.get('topic')
if topic == 'conversation.created':
self._create_lead(data['data']['item'])
elif topic == 'contact.created':
self._sync_contact(data['data']['item'])
return {'status': 'ok'}
def _create_lead(self, conversation):
source = conversation.get('source', {})
author = source.get('author', {})
http.request.env['crm.lead'].sudo().create({
'name': f"Intercom: {source.get('body', '')[:80]}",
'email_from': author.get('email'),
'contact_name': author.get('name'),
'description': source.get('body'),
'source_id': self._get_intercom_source().id,
})Step 4: Sync Contacts Bidirectionally
Set up a scheduled action in Odoo that runs every hour to push updated customer data back to Intercom. This keeps Intercom agents informed about subscription status, recent orders, and account details without leaving the chat window.
import requests
def sync_partner_to_intercom(partner, intercom_token):
requests.post('https://api.intercom.io/contacts',
headers={'Authorization': f'Bearer {intercom_token}'},
json={
'email': partner.email,
'name': partner.name,
'custom_attributes': {
'odoo_customer_id': partner.id,
'subscription_plan': partner.plan_id.name or '',
'total_invoiced': partner.total_invoiced,
}
})Common Use Cases
- Sales qualification: Chat visitor asks about pricing, Intercom bot qualifies, creates Odoo lead with score
- Support context: Agent sees customer's open invoices, recent orders, and subscription tier in Intercom sidebar
- Churn prevention: Customer with overdue invoice starts a chat, agent is alerted to offer payment plan
- Onboarding tracking: New customer's onboarding progress in Odoo updates Intercom for targeted product tours
DeployMonkey + Intercom
DeployMonkey instances provide stable webhook endpoints for Intercom integration. Our AI agent can help configure the CRM lead source, map custom fields, and test the webhook flow end to end.