
اتوماسیون تماس سرد با هوش مصنوعی: Vapi.ai و Google Sheets
14 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۶
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 5008 · منبع: کاتالوگ Axeto
اتوماسیون تماس سرد با قدرت هوش مصنوعی با Vapi.ai، GPT-4o و Google Sheets
این گردش کار فرآیند تماس سرد را با ادغام بازیابی سرنخ از Google Sheets، شروع تماس با قدرت هوش مصنوعی از طریق Vapi.ai، بهروزرسانی وضعیت، منطق تلاش مجدد و اعلانها از طریق Slack خودکار میکند. این گردش کار برای تیمهای فروش یا بازاریابی طراحی شده است که به دنبال افزایش کارایی تماس خود با کمک هوش مصنوعی و ردیابی سیستماتیک هستند.
این گردش کار و موارد دیگر را در کاتالوگ n8n اکسِتو.ای کاوش کنید.
ساختار گردش کار (Workflow Structure)
گردش کار به بخشهای منطقی زیر تقسیم میشود:
1. بازیابی سرنخ (Lead Retrieval): دریافت سرنخها از Google Sheets، به صورت دستی یا زمانبندی شده.
2. فیلتر کردن سرنخ و ارزیابی وضعیت (Lead Filtering & Status Evaluation): تعیین اینکه کدام سرنخها آماده تماس هستند، نیاز به تلاش مجدد دارند، یا قبلاً پردازش شدهاند.
3. شروع تماس با قدرت هوش مصنوعی (AI-Powered Call Initiation): ارسال سرنخها به Vapi.ai برای تماسهای هدایتشده توسط هوش مصنوعی.
4. پردازش تماس و بهروزرسانی وضعیت (Call Processing & Status Updates): مدیریت پاسخهای دریافتی از Vapi.ai و بهروزرسانی وضعیت سرنخها در Google Sheets.
5. منطق تلاش مجدد و انتظار (Retry & Wait Logic): پیادهسازی تأخیرها و مکانیزمهای تلاش مجدد برای تماسهای ناموفق.
6. اطلاعرسانی (Notifications): آگاهسازی تیمها از طریق Slack در مورد پیشرفت و نتایج گردش کار.
---
تشریح گرهها (Nodes) به تفصیل
۱. بازیابی سرنخها (Lead Retrieval)
این بخش مسئول دریافت اولیه سرنخها از صفحه Google Sheet شما است. میتوانید این کار را برای آزمایش به صورت دستی اجرا کنید یا یک برنامه زمانبندی برای عملیات مداوم تنظیم کنید.
- گرهها (Nodes):
* When clicking 'Test workflow' (ماشه دستی)
* Schedule Trigger (ماشه زمانبندی)
* Get Leads from Sheet1 (Google Sheets)
* Get Leads from Sheet (Google Sheets)
- جزئیات:
* When clicking 'Test workflow' (ماشه دستی):
* هدف: امکان شروع دستی گردش کار را فراهم میکند که برای آزمایش یا اجرای درخواستی ایدهآل است.
* پیکربندی: تنظیمات استاندارد ماشه دستی.
* خروجی: به گره Get Leads from Sheet1 متصل میشود.
* Schedule Trigger (ماشه زمانبندی):
* هدف: گردش کار را برای اجرا در فواصل زمانی از پیش تعریف شده (مانند روزانه، ساعتی) خودکار میکند.
* پیکربندی: برنامه زمانبندی دلخواه خود را تنظیم کنید.
* خروجی: به گره Get Leads from Sheet متصل میشود.
* Get Leads from Sheet1 (Google Sheets):
* هدف: دادههای سرنخ را از یک صفحه خاص (مانند "Sheet1") هنگام فعال شدن دستی میخواند.
* پیکربندی: صفحه گسترده و نام صفحه را مشخص کنید.
* خروجی: دادهها را برای فیلتر اولیه به گره If1 تغذیه میکند.
* ملاحظات: از احراز هویت صحیح Google Sheets اطمینان حاصل کنید و صفحه حاوی دادههای معتبر سرنخ باشد.
* Get Leads from Sheet (Google Sheets):
* هدف: دادههای سرنخ را از یک صفحه مشخص برای اجرای زمانبندی شده میخواند.
* پیکربندی: مشابه Get Leads from Sheet1، اما برای پردازش دستهای خودکار استفاده میشود.
* خروجی: دادهها را به گره If5 تغذیه میکند.
* ملاحظات: مشابه Get Leads from Sheet1.
۲. فیلتر سرنخ و ارزیابی وضعیت (Lead Filtering & Status Evaluation)
این بخش از منطق شرطی (گرههای If) برای ارزیابی وضعیت هر سرنخ و تصمیمگیری در مورد اقدام بعدی استفاده میکند.
- گرهها (Nodes):
* If1 (اگر)
* Pending (اگر)
* If4 (اگر)
* If5 (اگر)
- جزئیات:
* If1 (اگر):
* هدف: یک بررسی اولیه روی دادههای سرنخ انجام میدهد، احتمالاً برای دیدن اینکه آیا فیلد وضعیت وجود دارد یا در قالبی قابل پردازش است.
* پیکربندی: از یک عبارت برای ارزیابی دادههای سرنخ استفاده میکند.
* خروجی: اگر شرط برآورده شود، سرنخها را به Pending هدایت میکند، در غیر این صورت به If4.
* Pending (اگر):
* هدف: به طور خاص بررسی میکند که آیا یک سرنخ به عنوان "در انتظار" (pending) علامتگذاری شده و آماده تماس است یا خیر.
* ورودی: سرنخها را از If1 دریافت میکند.
* خروجی: اگر شرط برقرار باشد، به شروع تماس (Loop Over Items1) ادامه میدهد؛ اگر برقرار نباشد، از طریق Slack1 یک اعلان ارسال میکند (نشاندهنده عدم وجود سرنخ در انتظار).
* If4 (اگر):
* هدف: ارزیابی میکند که آیا یک سرنخ بر اساس نتایج تماس قبلی نیاز به تلاش مجدد دارد یا خیر.
* ورودی: سرنخها را از If1 دریافت میکند.
* خروجی: اگر تلاش مجدد موجه باشد، سرنخها را به Retry هدایت میکند، در غیر این صورت برای اعلان به Slack2.
* If5 (اگر):
* هدف: سرنخهای بازیابی شده از طریق Schedule Trigger را فیلتر میکند تا اطمینان حاصل شود که برای پردازش معتبر هستند.
* ورودی: سرنخها را از Get Leads from Sheet دریافت میکند.
* خروجی: اگر شرط برقرار باشد، به شروع تماس (Loop Over Items3) ادامه میدهد؛ اگر برقرار نباشد، از طریق Slack3 یک اعلان ارسال میکند (نشاندهنده عدم وجود سرنخ جدید).
۳. شروع تماس با قدرت هوش مصنوعی (AI-Powered Call Initiation)
اینجاست که تماس هوش مصنوعی اصلی اتفاق میافتد. سرنخها برای مکالمات خودکار به Vapi.ai ارسال میشوند.
- گرهها (Nodes):
* Loop Over Items (SplitInBatches)
* Loop Over Items1 (SplitInBatches)
* Loop Over Items2 (SplitInBatches)
* Loop Over Items3 (SplitInBatches)
* HTTP Request
* HTTP Request1
* Wait (انتظار)
* Wait1 (انتظار)
- جزئیات:
* Loop Over Items, Loop Over Items1, Loop Over Items2, Loop Over Items3 (SplitInBatches):
* هدف: سرنخها را در دستههای قابل مدیریت پردازش میکند تا از بارگذاری بیش از حد APIها و رعایت محدودیتهای نرخ جلوگیری شود.
* ورودی: سرنخهای فیلتر شده را از گرههای If مختلف دریافت میکند.
* خروجی: سرنخها را برای اجرای زمانبندی شده به گرههای Wait یا Wait1 ارسال میکند.
* ملاحظات: اندازه دسته را بر اساس محدودیتهای API Vapi.ai و Google Sheets تنظیم کنید.
* Wait (انتظار):
* هدف: قبل از شروع تماس، تاخیر ایجاد میکند و از سرعت کنترل شده اطمینان حاصل میکند.
* پیکربندی: تاخیر دلخواه را بر حسب ثانیه یا دقیقه تنظیم کنید.
* ورودی: سرنخها را از یک حلقه دسته دریافت میکند.
* خروجی: به گره HTTP Request متصل میشود.
* Wait1 (انتظار):
* هدف: مشابه Wait، برای تنظیم سرعت تماسها، احتمالاً برای دستههای تلاش مجدد یا انواع تماسهای مختلف استفاده میشود.
* پیکربندی: تاخیر دلخواه را تنظیم کنید.
* ورودی: سرنخها را از یک حلقه دسته دریافت میکند.
* خروجی: به گره HTTP Request1 متصل میشود.
* HTTP Request:
* هدف: درخواست واقعی را به API Vapi.ai برای شروع تماس با قدرت هوش مصنوعی ارسال میکند.
* پیکربندی:
* متد (Method): POST
* URL: نقطه پایانی API Vapi.ai برای شروع تماسها.
* بدنه (Body): حاوی اطلاعات تماس سرنخ (شماره تلفن، نام) و هرگونه دستورالعمل یا پارامتر خاص هوش مصنوعی است.
* ورودی: دادهها را پس از گره Wait دریافت میکند.
* خروجی: به گره Update Status - Calling1 متصل میشود.
* ملاحظات: کلید API Vapi.ai خود را به صورت امن ذخیره کنید. اطمینان حاصل کنید که ساختار payload با الزامات Vapi.ai مطابقت دارد.
* HTTP Request1:
* هدف: احتمالاً برای یک فراخوانی API ثانویه، شاید برای انواع تماسهای مختلف یا منطق تلاش مجدد استفاده میشود.
* پیکربندی: مشابه HTTP Request.
* ورودی: دادهها را پس از گره Wait1 دریافت میکند.
* خروجی: به گره Update Status - Calling2 متصل میشود.
۴. پردازش تماس و بهروزرسانی وضعیت (Call Processing & Status Updates)
پس از شروع تماس، این بخش مسئول دریافت نتایج و بهروزرسانی Google Sheet شما مطابق با آن است.
- گرهها (Nodes):
* Get Call Data (HTTP Request)
* If2 (اگر)
* Edit Fields2 (Set)
* Update Status - Calling (Google Sheets)
* Update Status - Calling1 (Google Sheets)
* Update Status - Calling2 (Google Sheets)
* Update Status - Calling3 (Google Sheets)
* Update Status - for Missed call (Google Sheets)
* Merge
- جزئیات:
* Get Call Data (HTTP Request):
* هدف: نتیجه یا جزئیات تماس Vapi.ai آغاز شده را دریافت میکند.
* پیکربندی:
* متد (Method): GET (یا طبق الزامات Vapi.ai)
* URL: نقطه پایانی API Vapi.ai برای دریافت وضعیت/لاگهای تماس، احتمالاً با استفاده از شناسه تماس از پاسخ شروع.
* ورودی: دادهها را از Loop Over Items3 پس از شروع تماس دریافت میکند.
* خروجی: نتایج تماس را به گره If2 تغذیه میکند.
* ملاحظات: برای مواردی که دادههای تماس بلافاصله در دسترس نیست، مدیریت خطا را پیادهسازی کنید.
* If2 (اگر):
* هدف: دادههای تماس دریافت شده را تجزیه و تحلیل میکند تا تعیین کند آیا تماس موفق بوده یا از دست رفته/ناموفق بوده است.
* ورودی: دادههای تماس را از Get Call Data دریافت میکند.
* خروجی: برای تماسهای موفق به Edit Fields2 و برای تماسهای ناموفق به Update Status - for Missed call هدایت میکند.
* Edit Fields2 (Set):
* هدف: فیلدهای داده را قبل از بهروزرسانی Google Sheets، مانند استانداردسازی پیامهای وضعیت، اصلاح یا قالببندی میکند.
* ورودی: دادهها را از If2 (تماسهای موفق) دریافت میکند.
* خروجی: به گره Update Status - Calling متصل میشود.
* Update Status - Calling, Update Status - Calling1, Update Status - Calling2, Update Status - Calling3 (Google Sheets):
* هدف: وضعیت شروع یا تکمیل تماس را به ردیف سرنخ مربوطه در Google Sheets مینویسد.
* ورودی: دادهها را از گرههای HTTP Request یا Edit Fields2 دریافت میکند.
* خروجی: دادههای بهروز شده را به گره Merge تغذیه میکند یا حلقه را ادامه میدهد.
* ملاحظات: اطمینان حاصل کنید که ستونهای صحیح بهروزرسانی میشوند (مانند "Call Status", "Last Call Result").
* Update Status - for Missed call (Google Sheets):
* هدف: وضعیت سرنخ را در Google Sheets به طور خاص برای تماسهایی که از دست رفته یا ناموفق بودهاند، بهروزرسانی میکند.
* ورودی: دادهها را از شاخه نادرست If2 دریافت میکند.
* خروجی: به گره Merge متصل میشود.
* Merge:
* هدف: جریانهای داده مختلف (مانند بهروزرسانی تماس موفق و بهروزرسانی تماس از دست رفته) را برای پردازش بیشتر یا نهاییسازی در یک خروجی واحد ترکیب میکند.
* ورودی: دادهها را از Update Status - Calling و Update Status - for Missed call دریافت میکند.
* خروجی: معمولاً به مرحله بعدی پردازش یا اعلان تغذیه میشود.
۵. منطق تلاش مجدد و انتظار (Retry & Wait Logic)
این بخش تاخیرها و تلاشهای مجدد را برای اطمینان از پردازش قوی تماس مدیریت میکند.
- گرهها (Nodes):
* Retry (اگر)
- جزئیات:
* Retry (اگر):
* هدف: ارزیابی میکند که آیا یک سرنخ معیارهای تلاش مجدد را برآورده میکند یا خیر (به عنوان مثال، تماس ناموفق، کد خطای خاص، تعداد تلاش مجدد بیش از حد نیست).
* ورودی: دادهها را از If4 دریافت میکند.
* خروجی: اگر شرط برقرار باشد، سرنخها را به Loop Over Items هدایت میکند تا فرآیند تماس را دوباره شروع کند؛ اگر برقرار نباشد، به یک اعلان (Slack2) ادامه میدهد.
* ملاحظات: مکانیزمی برای جلوگیری از حلقههای تلاش مجدد بی نهایت پیادهسازی کنید (به عنوان مثال، شمارنده تلاش مجدد).
۶. اطلاعرسانیها (Notifications)
این بخش تیم شما را در مورد پیشرفت و نتایج گردش کار مطلع نگه میدارد.
- گرهها (Nodes):
* Slack
* Slack1
* Slack2
* Slack3
- جزئیات:
* Slack, Slack1, Slack2, Slack3 (Slack):
* هدف: اعلانها را برای رویدادهای مختلف به یک کانال Slack تعیین شده ارسال میکند:
* Slack1: هیچ سرنخ در انتظاری یافت نشد.
* Slack2: سرنخهایی که واجد شرایط تلاش مجدد نیستند.
* Slack3: هیچ سرنخ جدیدی در طول اجرای زمانبندی شده یافت نشد.
* Slack (عمومی): احتمالاً برای رویدادهای کلیدی دیگر مانند تکمیل موفقیتآمیز دسته یا خطاها.
* پیکربندی: به یک URL Webhook ورودی Slack نیاز دارد. محتوای پیام را سفارشی کنید.
* ورودی: توسط گرههای شرطی (گرههای If) یا تکمیل وظایف خاص فعال میشود.
* خروجی: ندارد (گرههای پایانی برای اعلانها).
* ملاحظات: اطمینان حاصل کنید که URLهای Webhook به درستی پیکربندی شده و قابل دسترسی هستند.
---
جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش کاربردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) |
|---|---|---|---|---|
When clicking 'Test workflow' | Manual Trigger | شروع دستی گردش کار (Manually start the workflow) | None | Get Leads from Sheet1 |
Schedule Trigger | Schedule Trigger | فعالسازی دورهای گردش کار (Periodically trigger the workflow) | None | Get Leads from Sheet |
Get Leads from Sheet1 | Google Sheets | دریافت سرنخها برای اجرای دستی (Fetch leads for manual runs) | When clicking 'Test workflow' | If1 |
Get Leads from Sheet | Google Sheets | دریافت سرنخها برای اجرای زمانبندی شده (Fetch leads for scheduled runs) | Schedule Trigger | If5 |
If1 | If | اعتبارسنجی اولیه دادههای سرنخ (Initial lead data validation) | Get Leads from Sheet1 | Pending, If4 |
Pending | If | بررسی وضعیت سرنخ در حالت 'در انتظار' (Check if lead status is 'pending') | If1 | Loop Over Items1, Slack1 |
If4 | If | تعیین اینکه آیا سرنخ واجد شرایط تلاش مجدد است (Determine if a lead qualifies for retry) | If1 | Retry, Slack2 |
If5 | If | فیلتر کردن سرنخها برای اجرای زمانبندی شده (Filter leads for scheduled runs) | Get Leads from Sheet | Loop Over Items3, Slack3 |
Loop Over Items | SplitInBatches | پردازش سرنخها در دستهها برای تلاشهای مجدد (Process leads in batches for retries) | Retry | Wait |
Loop Over Items1 | SplitInBatches | پردازش سرنخهای در انتظار در دستهها (Process pending leads in batches) | Pending | Wait |
Loop Over Items2 | SplitInBatches | پردازش سرنخها برای تماس عمومی (Process leads for general calling) | If1 (False branch) | Wait |
Loop Over Items3 | SplitInBatches | پردازش سرنخها از اجرای زمانبندی شده (Process leads from scheduled runs) | If5 | Wait |
Wait | Wait | مکث قبل از شروع تماس (Pause before initiating a call) | Loop Over Items, Loop Over Items1, Loop Over Items2 | HTTP Request |
Wait1 | Wait | مکث قبل از شروع تماس ثانویه (Pause before initiating a secondary call) | Loop Over Items3 | HTTP Request1 |
HTTP Request | HTTP Request | شروع تماس با هوش مصنوعی از طریق Vapi.ai (Initiate AI call via Vapi.ai) | Wait | Update Status - Calling1 |
HTTP Request1 | HTTP Request | شروع تماس ثانویه/تلاش مجدد با هوش مصنوعی از طریق Vapi.ai (Initiate secondary/retry AI call via Vapi.ai) | Wait1 | Update Status - Calling2 |
Get Call Data | HTTP Request | دریافت نتایج تماس Vapi.ai (Retrieve Vapi.ai call results) | Loop Over Items3 | If2 |
If2 | If | بررسی موفقیتآمیز بودن تماس (Check if call was successful) | Get Call Data | Edit Fields2, Update Status - for Missed call |
Edit Fields2 | Set | فرمتدهی دادهها قبل از بهروزرسانی Google Sheets (Format data before Google Sheets update) | If2 (True branch) | Update Status - Calling |
Update Status - Calling | Google Sheets | بهروزرسانی وضعیت برای تماسهای موفق (Update status for successful calls) | Edit Fields2 | Merge |
Update Status - Calling1 | Google Sheets | بهروزرسانی وضعیت پس از شروع تماس اولیه (Update status after initial call initiation) | HTTP Request | Merge |
Update Status - Calling2 | Google Sheets | بهروزرسانی وضعیت پس از شروع تماس ثانویه (Update status after secondary call initiation) | HTTP Request1 | Merge |
Update Status - Calling3 | Google Sheets | بهروزرسانی وضعیت برای تماسهای زمانبندی شده (Update status for scheduled calls) | Loop Over Items3 | Merge |
Update Status - for Missed call | Google Sheets | بهروزرسانی وضعیت برای تماسهای ناموفق/از دست رفته (Update status for missed/failed calls) | If2 (False branch) | Merge |
Merge | Merge | ترکیب چندین جریان داده (Combine multiple data streams) | Update Status - Calling, Update Status - for Missed call | Loop Over Items3 (or next processing step) |
Retry | If | بررسی شرایط تلاش مجدد (Check retry conditions) | If4 | Loop Over Items, Slack2 |
Slack | Slack | ارسال اعلانهای عمومی گردش کار (Send general workflow notifications) | Various | None |
Slack1 | Slack | اطلاعرسانی در صورت عدم وجود سرنخ در انتظار (Notify if no pending leads) | Pending (False branch) | None |
Slack2 | Slack | اطلاعرسانی در صورت عدم کاربرد تلاش مجدد (Notify if retry is not applicable) | Retry (False branch) | None |
Slack3 | Slack | اطلاعرسانی در صورت عدم یافتن سرنخ جدید (Notify if no new leads found) | If5 (False branch) | None |
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چگونه تماسهای سرد را خودکار میکند؟▾
این گردش کار سرنخها را از Google Sheets بازیابی میکند، با استفاده از Vapi.ai و GPT-4o تماسهای هوش مصنوعی برقرار میکند، وضعیت تماسها را در Google Sheets بهروزرسانی میکند و از طریق Slack اعلان ارسال میکند.
چه ابزارهایی برای این اتوماسیون استفاده میشود؟▾
ابزارهای اصلی مورد استفاده عبارتند از n8n برای ارکستراسیون گردش کار، Vapi.ai برای قابلیتهای تماس هوش مصنوعی، GPT-4o برای پردازش زبان طبیعی و Google Sheets برای مدیریت سرنخها و وضعیتها.
آیا این گردش کار برای تلاشهای مجدد تماسها منطقی دارد؟▾
بله، این گردش کار شامل منطق تلاش مجدد و انتظار برای مدیریت تماسهای ناموفق یا پاسخهای نامناسب است تا اطمینان حاصل شود که هیچ سرنخی نادیده گرفته نمیشود.
چگونه میتوانم پیشرفت این گردش کار را پیگیری کنم؟▾
این گردش کار اعلانهای Slack را برای بهروزرسانی تیمها در مورد پیشرفت و نتایج هر مرحله از فرآیند اتوماسیون ارسال میکند و امکان پیگیری و نظارت آسان را فراهم میآورد.
workflowهای مرتبط
- اتوماسیون جستجوی لینکدین با GPT-4 و جستجوی بولی گوگلHR
- اتوماسیون خلاصهسازی جلسات با Google Drive و OpenAIAI
- تحلیل صوتی با DeepGram و GPT-4o در n8nAI
- گردش کار n8n: ارجاع پشتیبانی هوش مصنوعی به انسانSupport
- ناشناسسازی و بازسازی رزومه با هوش مصنوعی Gemini و Google Sh…HR
- پرسش از هوش مصنوعی درباره تبلیغات متا: بینش فوری از دادههای…AI
