Mattermost
Файл: app/employee_leads/services/mattermost.py
Frontend: libs/core/src/lib/services/mattermost.service.ts
Назначение
Интеграция с Mattermost — корпоративным мессенджером. Используется для уведомлений о новых CRM-лидах и активности в воронке продаж.
Конфигурация
env
MATTERMOST_WEBHOOK_URL=https://mattermost.company.com/hooks/abc123
MATTERMOST_USERNAME=NarmakCRM
MATTERMOST_CHANNEL=crm-leadspython
# Frontend (environment.ts)
mattermostToken = 'bearer_token'
mattermostApiUrl = 'https://mattermost.company.com/api/v4'Backend: отправка уведомлений
python
# app/employee_leads/services/mattermost.py
import requests
def send_lead_notification(lead_data: dict):
"""Отправить уведомление о новом лиде в Mattermost"""
payload = {
"username": settings.MATTERMOST_USERNAME,
"channel": settings.MATTERMOST_CHANNEL,
"text": f"""
**Новый лид!** 🎯
**Имя:** {lead_data['name']}
**Телефон:** {lead_data['phone']}
**Email:** {lead_data['email']}
**Источник:** {lead_data['source']}
""",
"attachments": [
{
"color": "#e52a3f",
"title": lead_data['company'],
"fields": [
{"title": "Должность", "value": lead_data.get('position', '—'), "short": True},
{"title": "Бюджет", "value": lead_data.get('budget', '—'), "short": True},
]
}
]
}
requests.post(settings.MATTERMOST_WEBHOOK_URL, json=payload)Frontend: Mattermost Service
typescript
// libs/core/src/lib/services/mattermost.service.ts
@Injectable({ providedIn: 'root' })
export class MattermostService {
sendMessage(channel: string, message: string): Observable<void> {
return this.http.post<void>(
`${environment.mattermostApiUrl}/posts`,
{ channel_id: channel, message },
{ headers: { Authorization: `Bearer ${environment.mattermostToken}` } }
)
}
}Когда отправляются уведомления
| Событие | Канал | Триггер |
|---|---|---|
| Новый лид (Contact Collector) | crm-leads | employee_leads/tasks.py |
| Лид квалифицирован | crm-leads | Ручное действие менеджера |
| Автоматизация лида | crm-automation | employee_leads/services/automation.py |
Связи
app.employee_leads— CRM-лиды- Frontend:
libs/core/mattermost.service.ts - Frontend:
apps/main-office/contact-collector— форма сбора лидов