From c6d848fd143ef2b68ab81fa1cb5b4e72ea8d4d9e Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Sun, 2 Nov 2025 08:42:41 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D0=B5=20=D0=B8=D0=B7=D0=B2=D0=BB=D0=B5=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=B8=D0=B7=20n8n=20response=20=D0=B2=20Step1Phone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: - 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 (флаг) --- frontend/src/components/form/Step1Phone.tsx | 36 ++++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/frontend/src/components/form/Step1Phone.tsx b/frontend/src/components/form/Step1Phone.tsx index 1bd3051..54bc176 100644 --- a/frontend/src/components/form/Step1Phone.tsx +++ b/frontend/src/components/form/Step1Phone.tsx @@ -100,34 +100,38 @@ export default function Step1Phone({ }) }); - const crmResult = await crmResponse.json(); + let crmResult = await crmResponse.json(); - console.log('🔥 N8N CRM Response:', crmResult); - console.log('🔥 claim_id from n8n:', crmResult.claim_id); - console.log('🔥 Array check:', Array.isArray(crmResult), crmResult[0]); + // ✅ n8n может вернуть массив - берём первый элемент + if (Array.isArray(crmResult) && crmResult.length > 0) { + crmResult = crmResult[0]; + } - if (crmResponse.ok) { - addDebugEvent?.('crm', 'success', `✅ Контакт создан/найден в CRM`, crmResult); - - // Если n8n вернул массив - берём первый элемент - const data = Array.isArray(crmResult) ? crmResult[0] : crmResult; + console.log('🔥 N8N CRM Response (after array check):', crmResult); + + if (crmResponse.ok && crmResult.success) { + // n8n возвращает: {success: true, result: {claim_id, contact_id, ...}} + const result = crmResult.result || crmResult; + console.log('🔥 Extracted result:', result); console.log('🔥 Saving to formData:', { phone, - contact_id: data.contact_id, - claim_id: data.claim_id, - is_new_contact: data.is_new_contact + contact_id: result.contact_id, + claim_id: result.claim_id, + is_new_contact: result.is_new_contact }); + addDebugEvent?.('crm', 'success', `✅ Контакт создан/найден в CRM`, result); + // Сохраняем данные из CRM в форму updateFormData({ phone, - contact_id: data.contact_id, - claim_id: data.claim_id, - is_new_contact: data.is_new_contact + contact_id: result.contact_id, + claim_id: result.claim_id, + is_new_contact: result.is_new_contact }); - message.success(crmResult.is_new_contact ? 'Контакт создан!' : 'Контакт найден!'); + message.success(result.is_new_contact ? 'Контакт создан!' : 'Контакт найден!'); onNext(); } else { addDebugEvent?.('crm', 'error', '❌ Ошибка создания контакта в CRM', crmResult);