🔧 Troubleshooting Guide

Як користуватись цим гайдом

Знайдіть вашу проблему в меню зліва або використайте пошук (Ctrl+K) для швидкого доступу до рішення.

🔔 Webhook не працює

Симптом

TeamTailor події не тригерять n8n workflow

Крок 1: Перевірте URL

# Правильний формат webhook URL
https://viragamesinc.app.n8n.cloud/webhook/teamtailor-hired

# НЕ використовуйте
http:// (без SSL)
/webhook-test/ (тестові endpoints)

Крок 2: Перевірте налаштування в TeamTailor

  1. Settings → Integrations → Webhooks
  2. Перевірте що обрані правильні події:
    • ✅ candidate.hired
    • ✅ candidate.changed (опціонально)
  3. Перевірте статус: Active

Крок 3: Тест webhook

Ручний тест через curl:

curl -X POST https://viragamesinc.app.n8n.cloud/webhook/teamtailor-hired \
  -H "Content-Type: application/json" \
  -d '{"event":"test","data":{"test":true}}'

Крок 4: Перевірте логи n8n

  • Відкрийте workflow в n8n
  • Перейдіть на вкладку "Executions"
  • Шукайте failed або test executions
Порада:

TeamTailor може відправляти дублікати webhook. Переконайтесь що ваш workflow має dedupe логіку.

❌ API помилки

401 Unauthorized

Причини:

  • Невалідний API ключ
  • Закінчився термін дії токена
  • Неправильний формат авторизації

Рішення:

  1. Перегенеруйте API ключ в налаштуваннях сервісу
  2. Оновіть credentials в n8n
  3. Перезапустіть workflow

400 Bad Request

BambooHR специфіка:

BambooHR часто повертає 400 без опису. Перевірте:

  • Формат дати: YYYY-MM-DD
  • Email валідність
  • Обов'язкові поля: firstName, lastName
  • Department ID існує в системі

429 Rate Limit

// Додайте delay між запитами
// n8n: Wait node з Fixed interval
{
  "interval": 1, // секунда
  "unit": "seconds"
}

500 Internal Server Error

Критична помилка сервера

Зачекайте 5-10 хвилин та спробуйте знову. Якщо не допомагає - зверніться до підтримки сервісу.

👥 Дублікати даних

Дублікати в BambooHR

Перевірка перед створенням

// Додайте цей код в n8n Function node
const email = $input.item.json.email;

// Перевірка існуючого співробітника
const existingEmployee = await bamboohrApi.get(
  `/employees/directory?email=${email}`
);

if (existingEmployee.length > 0) {
  throw new Error(`Employee with email ${email} already exists`);
}

Дублікати в Notion

  1. Використовуйте Notion формули для перевірки унікальності
  2. Створіть view з фільтром по дублікатах
  3. Регулярно запускайте дедуплікацію

Видалення дублікатів

Python скрипт для BambooHR:

# delete_test_employees.py
import requests

def delete_duplicates(api_key, subdomain):
    # Отримати всіх співробітників
    employees = get_all_employees()
    
    # Знайти дублікати по email
    email_map = {}
    for emp in employees:
        email = emp['workEmail']
        if email in email_map:
            # Видалити старіший запис
            delete_employee(emp['id'])
        else:
            email_map[email] = emp['id']

🔄 Проблеми синхронізації

Департаменти не синхронізуються

Перевірте статус в Notion

Тільки "Verified" департаменти синхронізуються

Перевірте назви

Назви мають точно співпадати (case-sensitive)

Запустіть повну синхронізацію

Execute Workflow → Department Sync

Вакансія не створюється

  • Перевірте всі обов'язкові поля в Notion
  • Hiring Manager має існувати в TeamTailor
  • Департамент має бути верифікований
  • Зарплатна вилка в правильному форматі

🎯 TeamTailor помилки

Approval flow не працює

Відомий баг TeamTailor

API-створені requisitions не проходять через approval flow. Це "expected behavior" за словами підтримки.

Наш Workaround (працює чудово!):

  1. n8n створює requisition через API ✅
  2. Автоматичне Slack повідомлення рекрутеру 📱
  3. Повідомлення містить пряме посилання на requisition
  4. Рекрутер заходить в TeamTailor (1 клік)
  5. Встановлює approval flow вручну (30 секунд)

Результат: Повна автоматизація + контроль approval = найкраще з двох світів!

Пагінація обрізає дані

// Переконайтесь що обробляєте всі сторінки
while (nextUrl) {
  const response = await fetch(nextUrl);
  const data = await response.json();
  
  // ВАЖЛИВО: перевірте links.next
  nextUrl = data.links?.next;
  
  if (!nextUrl) {
    console.log('Остання сторінка досягнута');
  }
}

Resume URLs не працюють

Проблема:

S3 підписані URLs діють лише 60 секунд

Рішення:

Завантажуйте файли одразу після отримання URL або використовуйте ручне завантаження

🎋 BambooHR помилки

Employee створюється без даних

  • Перевірте mapping полів в n8n
  • BambooHR чутливий до типів даних
  • Числа мають бути без лапок
  • Дати в форматі YYYY-MM-DD

File upload не працює

Недокументований API

BambooHR file upload API не документований. Рекомендується ручне завантаження документів.

Custom fields не зберігаються

// Використовуйте правильні field IDs
{
  "customField123": "value", // ❌ Неправильно
  "field_123": "value"       // ✅ Правильно
}

📝 Notion помилки

Relations не працюють

// Правильний формат для relations
{
  "Department": {
    "relation": [
      { "id": "abc-123-def" } // ID сторінки, не назва
    ]
  }
}

Формули показують помилки

  • Формули read-only, не намагайтесь їх оновити через API
  • Перевірте що всі залежні поля заповнені
  • Оновіть сторінку в браузері для перерахунку

Rate limiting

Ліміти Notion API:

  • 3 requests per second
  • Додайте 350ms delay між запитами

⚙️ n8n помилки

AI Error Handler автоматично обробляє всі помилки

Всі помилки автоматично аналізуються GPT-4.1 та відправляються в Slack канал #automation-errors-notification

Як працює Error Handler

Автоматичний процес:

  1. Будь-яка помилка в workflow → Error Trigger спрацьовує
  2. AI Agent (GPT-4.1) аналізує помилку
  3. Генерується структуроване повідомлення з:
    • Людським поясненням проблеми
    • Конкретними кроками вирішення
    • Посиланням на execution
  4. Slack отримує повідомлення з emoji-індикатором severity

Розроблено: AI Automation Department

Workflow зависає

  1. Перевірте execution timeout (Settings → Workflow)
  2. Розбийте великі workflows на менші
  3. Error Handler автоматично повідомить про проблему

Memory exceeded

Обмеження пам'яті

Не обробляйте більше 1000 items одночасно. Використовуйте батching.

Credentials не працюють

  • Перевірте що вибрані правильні credentials
  • Test connection в налаштуваннях
  • Перевірте environments (dev/prod)

⚡ Топ-10 швидких рішень

1. Перезапустіть workflow

Вирішує 30% проблем

2. Очистіть кеш браузера

Ctrl + Shift + R

3. Перевірте API ключі

Термін дії та permissions

4. Запустіть тест webhook

Ручний curl запит

5. Перевірте логи

n8n Executions tab

6. Синхронізуйте департаменти

Department Sync workflow

7. Видаліть дублікати

В Notion та BambooHR

8. Додайте delay

Між API запитами

9. Зменшіть batch size

Обробляйте менше items

10. Оновіть n8n

До останньої версії

🔄 Процедури скидання

Повне скидання синхронізації

  1. Зупиніть всі активні workflows
  2. Очистіть TeamTailor ID в Notion
  3. Видаліть тестові записи
  4. Запустіть Department Sync
  5. Перевірте результати
  6. Відновіть автоматичні workflows

Скидання webhook

# 1. Видаліть старий webhook в TeamTailor
# 2. Створіть новий webhook
curl -X POST https://api.teamtailor.com/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://viragamesinc.app.n8n.cloud/webhook/teamtailor-hired",
    "events": ["candidate.hired"]
  }'

🚨 Екстрені випадки

Система повністю не працює
  1. Перевірте статус n8n: status.n8n.io
  2. Перевірте статус API сервісів
  3. Переключіться на ручний режим роботи
  4. Повідомте команду в Slack

Масове створення дублікатів

Негайні дії:

  1. 🛑 ЗУПИНІТЬ workflow негайно
  2. 📊 Оцініть масштаб проблеми
  3. 🗑️ Запустіть скрипт видалення дублікатів
  4. 🔍 Знайдіть причину в логах
  5. 🔧 Виправте проблему
  6. ✅ Перезапустіть з перевіркою

Втрата даних

  • Перевірте Notion history (30 днів)
  • BambooHR має audit log
  • n8n зберігає execution history
  • Відновіть з backup (якщо є)

Контакти для критичних ситуацій

n8n підтримка: support@n8n.io

Slack канал: #hr-automation-emergency

TeamTailor підтримка: Через їх платформу

BambooHR підтримка: Через їх платформу