Темный режим
8.1. Team Metrics API
Описание API
Team Metrics API предоставляет данные о метриках команд и отделов в компании. Этот API используется для отображения показателей производительности, вовлеченности и других метрик на дашборде и в аналитических отчетах.
Endpoint информация
| URL | Метод | Авторизация | Параметры |
|---|---|---|---|
/teams/metric/get |
GET | company_token |
|
Принцип работы
API Team Metrics работает по следующему принципу:
- Аутентификация - проверка company_token для идентификации компании
- Валидация параметров - проверка корректности переданных параметров (период и метрика)
- Выборка данных - запрос к базе данных PostgreSQL для получения метрик команд
- Агрегация данных - расчет средних значений по метрикам для каждого отдела
- Расчет изменений - вычисление абсолютных и относительных изменений метрик
- Форматирование ответа - подготовка данных в требуемом формате
Схема процесса в n8n
В n8n API реализовано как рабочий процесс со следующими основными шагами:
- HTTP Trigger - точка входа, принимающая HTTP-запрос
- Function Node - валидация параметров и токена
- PostgreSQL - запрос к базе данных для получения метрик по отделам
- Function Node - обработка результатов и расчет средних значений
- PostgreSQL - запрос для получения предыдущих значений метрик
- Function Node - расчет изменений метрик
- Set - форматирование финального ответа
- Respond to Webhook - отправка ответа клиенту
Формат ответа
Пример ответа API
[
{
"departmentId": 3,
"metrics": {
"wellness": 6.4,
"happiness": 8.1,
"alignment": 6.9,
"relationship_with_peers": 7.3,
"relationship_with_manager": 7.4,
"feedback": 6.7,
"personal_growth": 8.3,
"recognition": 7,
"satisfaction": 7.1,
"ambassadorship": 7.2
},
"engagement_score": 7.2,
"absolute_changes_by_metric": {
"wellness": -0.5,
"happiness": -0.3,
"alignment": -0.5,
"relationship_with_peers": -0.3,
"relationship_with_manager": -0.4,
"feedback": -0.4,
"personal_growth": 0,
"recognition": -0.5,
"satisfaction": -0.4,
"ambassadorship": -0.6,
"engagement_score": -0.4
},
"name": "Тестовый отдел"
},
// Другие отделы
]
Алгоритм расчета метрик
API использует следующий алгоритм для расчета метрик команд:
- Сбор данных - получение всех ответов на опросы от сотрудников отдела за указанный период
- Группировка по метрикам - группировка ответов по соответствующим метрикам
- Расчет средних значений - вычисление среднего значения для каждой метрики
- Расчет общего показателя вовлеченности - вычисление общего значения на основе всех метрик
- Сравнение с предыдущим периодом - расчет изменений по сравнению с предыдущим аналогичным периодом
Особенности и примечания
- API поддерживает фильтрацию по конкретной метрике с помощью параметра
paramNameMetric - Значения метрик нормализуются в диапазоне от 0 до 10
- Расчет абсолютных изменений производится как разница между текущим и предыдущим значением
- API оптимизирован для быстрой работы даже с большими объемами данных
- Результаты кэшируются для повышения производительности при частых запросах
Интеграция с фронтендом
Данный API используется на фронтенде для следующих компонентов:
- Дашборд с показателями метрик команд
- Карточки команд с основными метриками
- Графики изменения метрик во времени
- Тепловые карты метрик по отделам
Пример использования API на фронтенде:
Пример запроса к API
// Пример функции для получения метрик команд
async function getTeamMetrics(period = '3m', metricName = null) {
const params = new URLSearchParams();
if (period) {
params.append('curdate', period);
}
if (metricName) {
params.append('paramNameMetric', metricName);
}
const url = `https://api.hroom.ai/webhook/teams/metric/get?${params.toString()}`;
const response = await fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${localStorage.getItem('companyToken')}`,
'Content-Type': 'application/json'
}
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
}