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:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user