Skip to content

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-leads
python
# 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-leadsemployee_leads/tasks.py
Лид квалифицированcrm-leadsРучное действие менеджера
Автоматизация лидаcrm-automationemployee_leads/services/automation.py

Связи

  • app.employee_leads — CRM-лиды
  • Frontend: libs/core/mattermost.service.ts
  • Frontend: apps/main-office/contact-collector — форма сбора лидов