fix: Корректное извлечение данных из n8n response в Step1Phone

Проблема:
- n8n возвращает [{success: true, result: {claim_id, contact_id, ...}}]
- Код пытался взять data.claim_id вместо data.result.claim_id

Исправление:
-  Обработка массива от n8n
-  Извлечение данных из result: const result = crmResult.result || crmResult
-  Улучшенное логирование для отладки
-  Проверка crmResult.success перед обработкой

Теперь formData корректно получает:
- claim_id (от n8n)
- contact_id (от CreateWebContact)
- is_new_contact (флаг)
This commit is contained in:
AI Assistant
2025-11-02 08:42:41 +03:00
parent ea287b32eb
commit c6d848fd14

View File

@@ -100,34 +100,38 @@ export default function Step1Phone({
}) })
}); });
const crmResult = await crmResponse.json(); let crmResult = await crmResponse.json();
console.log('🔥 N8N CRM Response:', crmResult); // ✅ n8n может вернуть массив - берём первый элемент
console.log('🔥 claim_id from n8n:', crmResult.claim_id); if (Array.isArray(crmResult) && crmResult.length > 0) {
console.log('🔥 Array check:', Array.isArray(crmResult), crmResult[0]); crmResult = crmResult[0];
}
if (crmResponse.ok) { console.log('🔥 N8N CRM Response (after array check):', crmResult);
addDebugEvent?.('crm', 'success', `✅ Контакт создан/найден в CRM`, crmResult);
if (crmResponse.ok && crmResult.success) {
// Если n8n вернул массив - берём первый элемент // n8n возвращает: {success: true, result: {claim_id, contact_id, ...}}
const data = Array.isArray(crmResult) ? crmResult[0] : crmResult; const result = crmResult.result || crmResult;
console.log('🔥 Extracted result:', result);
console.log('🔥 Saving to formData:', { console.log('🔥 Saving to formData:', {
phone, phone,
contact_id: data.contact_id, contact_id: result.contact_id,
claim_id: data.claim_id, claim_id: result.claim_id,
is_new_contact: data.is_new_contact is_new_contact: result.is_new_contact
}); });
addDebugEvent?.('crm', 'success', `✅ Контакт создан/найден в CRM`, result);
// Сохраняем данные из CRM в форму // Сохраняем данные из CRM в форму
updateFormData({ updateFormData({
phone, phone,
contact_id: data.contact_id, contact_id: result.contact_id,
claim_id: data.claim_id, claim_id: result.claim_id,
is_new_contact: data.is_new_contact is_new_contact: result.is_new_contact
}); });
message.success(crmResult.is_new_contact ? 'Контакт создан!' : 'Контакт найден!'); message.success(result.is_new_contact ? 'Контакт создан!' : 'Контакт найден!');
onNext(); onNext();
} else { } else {
addDebugEvent?.('crm', 'error', '❌ Ошибка создания контакта в CRM', crmResult); addDebugEvent?.('crm', 'error', '❌ Ошибка создания контакта в CRM', crmResult);