ساخت دستیار فروش
فرآیند خودکارها
فرآیند خودکارها به شما امکان میدهند نحوهی پاسخدهی دستیار فروش به سوالات رایج بازدیدکنندگان را پیش از درگیر شدن مدل زبانی بزرگ (LLM) اسکریپتنویسی کنید. این قابلیت برای پاسخهای از پیش تعیینشده (سوالات متداول بازپرداخت، ساعات کاری، سیاستهای فروشگاه)، پرسشنامههای تعیین صلاحیت مشتری بالقوه، جریانهای انشعابی تعیین صلاحیت، و انتقال مستقیم به کارشناس براساس کلمات کلیدی خاص مفید است.
جایگاه در فرآیند
هر پیام بازدیدکننده از این مسیر عبور میکند:
- تطابق پاسخ گزینشی — پاسخ دقیق به سوال که توسط مدیر ثابت شده است.
- تطابق فرآیند خودکار ← این صفحه.
- بازیابی RAG + تولید توسط مدل زبانی بزرگ (LLM).
فرآیند خودکار زمانی که تطابق پیدا میکند، فراخوانی مدل زبانی بزرگ را دور میزند: بازدیدکننده حبابهای اسکریپتشده را دریافت میکند، هیچ هزینهای بابت توکن مصرف نمیشود، و گفتگو برای تحلیلهای آماری با برچسب فرآیند خودکار اجراشده علامتگذاری میشود.
چگونگی اتصال فرآیند خودکار به دستیار فروش
یک فرآیند خودکار فقط زمانی برای یک نوبت بازدیدکننده اجرا میشود که هر سه شرط زیر برقرار باشند:
-
وضعیت برابر با
activeباشد. فرآیند خودکارهای جدید با وضعیتdraftشروع میشوند و محیط اجرا تا زمانی که وضعیت را تغییر ندهید، آنها را بهکلی نادیده میگیرد — به این ترتیب میتوانید ویرایشها را بدون تأثیر بر ترافیک زنده مرحلهبندی کنید.disabledوضعیت سوم برای حالت «متوقف شده ولی حذف نشده» است. -
حوزهی دستیار فروش تطابق داشته باشد. در صفحهی ویرایش فرآیند خودکار، انتخابگر محدود به دستیار فروش دو شکل به شما میدهد:
-
کل فضای کاری (همهی دستیاران) —
agent_id IS NULL. فرآیند خودکار برای همهی دستیاران فضای کاری شما قابل اجراست. مناسب برای جریانهای مقطعی مانند «کلمهی 'human' در هر جایی تریگر انتقال به کارشناس را فعال میکند». - مختص به یک دستیار فروش — یک دستیار خاص را از منوی کشویی انتخاب کنید. فرآیند خودکار فقط برای گفتگوهای آن دستیار قابل اجراست. مناسب برای سوالات متداول خاص فروشگاه («بازگشت کالا» فقط در دستیار فروشگاه شاپیفای اهمیت دارد، نه در دستیار مستندات).
-
کل فضای کاری (همهی دستیاران) —
-
تریگر فعال شود. پیام بازدیدکننده باید با مجموعهی کلمات کلیدی فرآیند خودکار تطابق داشته باشد (تحت حالت تطابق
any/all/exactپیکربندیشده).
بهطور مشخص، برای هر نوبت بازدیدکننده، موتور یک پرسوجو اجرا میکند:
SELECT * FROM workflows
WHERE status = 'active'
AND workspace_id = :current_workspace
AND (agent_id IS NULL OR agent_id = :current_agent)
…و ردیفهای تطابقیافته را به ترتیب پیمایش میکند و اولین فرآیند خودکاری که کلمات کلیدی آن با پیام تطابق داشته باشد را برمیگرداند. ترتیب، ترتیب درج در پایگاه داده است (یعنی فرآیند خودکارهای قدیمیتر در صورت تساوی برنده میشوند)؛ از وضعیت disabled برای غیرفعالسازی یک فرآیند خودکار بدون از دست دادن کلمات کلیدی آن استفاده کنید. در حال حاضر ستون اولویتی وجود ندارد — اگر به تقدم دقیقتری نیاز دارید، مجموعههای کلمات کلیدی را محدودتر کنید تا دو فرآیند خودکار نتوانند همزمان با یک نوبت تطابق داشته باشند.
دستورالعمل سریع — اتصال یک فرآیند خودکار جدید به دستیار فروش
- به
/app/workflowsبروید → فرآیند خودکار جدید. - به آن نام بدهید. دستیار فروش را از محدود به دستیار فروش انتخاب کنید (یا روی کل فضای کاری باقی بگذارید).
- وضعیت: اگر آمادهی انتشار فوری هستید فعال را انتخاب کنید، یا تا زمانی که仍在 ویرایش میکنید پیشنویس را انتخاب کنید.
-
حداقل یک کلمهی کلیدی در پیکربندی تریگر اضافه کنید (مثلاً
refund) و یک حالت تطابق انتخاب کنید. - حداقل یک مرحله اضافه کنید — یک حباب
messageکار میکند. - ذخیره کنید.
- در ویجت عمومی دستیار فروش هدف، پیامی حاوی کلمهی کلیدی تایپ کنید. فرآیند خودکار به جای مدل زبانی بزرگ اجرا میشود و پاسخ اسکریپتشده را مشاهده خواهید کرد.
برای متوقف کردن یک فرآیند خودکار بدون حذف آن، وضعیت آن را به disabled تغییر دهید. برای تغییر هدف آن از یک دستیار به دستیار دیگر، فقط محدود به دستیار فروش را در همان ردیف فرآیند خودکار تغییر دهید — نیازی به کپیکردن مراحل نیست.
قابلیتها
- یک نوع تریگر: براساس کلمهی کلیدی، با سه حالت تطابق (any / all / exact).
- شش نوع مرحله: message، question، branch، tag_lead، webhook، escalate.
- درونیابی متغیر: {{var_name}} در هر متن پیام، مقدار ضبطشده را در زمان اجرا جایگزین میکند.
- انشعاب شرطی براساس پاسخهای ضبطشده (۶ عملگر تطابق + یک بازگشت پیشفرض).
- مراحل عوارض جانبی برای برچسبزنی مشتریان بالقوه و ارسال درخواست POST به وبهوکهای خارجی (صفبندیشده، شلیککن و فراموشکن).
انواع مرحله
| نوع | عملکرد |
|---|---|
message |
ارسال یک حباب گفتگو. از درونیابی {{var_name}} پشتیبانی میکند. مستقیماً به مرحلهی بعدی میرود. |
question |
ارسال یک حباب + توقف اجرا. پیام بعدی بازدیدکننده در var_name ضبط شده و اجرا از مرحلهی بعدی در نوبت بعدی از سر گرفته میشود. |
branch |
vars[var] را در برابر لیست مرتبی از موارد ارزیابی کرده و به اولین go_to شاخص مرحلهی تطابقیافته میپرد. عملگرهای مورد عبارتند از equals، contains، starts_with، is_empty، not_empty، و default (یک بازگشت که زمانی اجرا میشود که هیچ مورد دیگری تطابق نداشته باشد). دارای محافظ حلقه با محدودیت ۳۲ پرش در هر نوبت تا یک گراف ناقص نتواند موتور را قفل کند. |
tag_lead |
برچسبهای رشتهای را به ردیف مشتری بالقوهی گفتگو اضافه میکند (اگر بازدیدکننده هنوز فرم تعبیهشده را ارسال نکرده باشد، یک مشتری بالقوهی اولیه ایجاد میکند). برچسبها در fields.tags جمعشده و تکراریها حذف میشوند. کاربرد معمول: برچسبزنی یک بازدیدکننده بهعنوان pricing_intent پس از اینکه یک انشعاب آنها را در مسیر حرفهای قرار داد. |
webhook |
ارسال درخواست POST (یا GET) به یک آدرس خارجی با vars، conversation_id، workflow_id و هر extra_payload بهصورت شلیککن و فراموشکن. بهعنوان DispatchWebhookJob صفبندیشده ارسال میشود تا سطح گفتگوی بازدیدکننده هرگز منتظر یک یکپارچهسازی کند نماند. خطاها پس از ۳ تلاش مجدد در /admin/jobs/failed ثبت میشوند. |
escalate |
ارسال یک حباب خداحافظی + علامتگذاری اجرا بهعنوان ارجاعشده. گفتگو اکنون در صندوق ورودی برای اپراتور قرار دارد تا از طریق رابط کاربری تحویلگیری، آن را بر عهده بگیرد. |
حالتهای تطابق تریگر
| حالت | شرایط تطابق |
|---|---|
any (پیشفرض) |
حداقل یک کلمهی کلیدی بهعنوان زیررشتهای غیرحساس به بزرگی/کوچکی حروف در پیام بازدیدکننده ظاهر شود. "pricing" با "tell me about pricing please" تطابق دارد. |
all |
همهی کلمات کلیدی باید بهعنوان زیررشته ظاهر شوند. برای معیارهای ترکیبی مفید است — ["enterprise", "security"] با "tell me about pricing" اجرا نمیشود، اما با "enterprise security review" اجرا میشود. |
exact |
پیام کوچکشده و حذف فاصلهی اضافی برابر با یکی از کلمات کلیدی باشد. برای دستورات تککلمهای استفاده کنید ("cancel"، "help"، "support") که نباید با تطابق زیررشتهای اجرا شوند. |
مسیریابی انشعاب
آرایهی cases در یک مرحلهی branch به ترتیب پیمایش میشود. اولین موردی که match آن true ارزیابی شود برنده است و اجرا به go_to (یک شاخص مرحله) میپرد. match: default یک حالت خاص است که همیشه تطابق دارد و باید در انتها قرار گیرد — این حالت همهچیزگیری است که هیچیک از عملگرهای قبلی اجرا نشوند.
{
"type": "branch",
"var": "plan_interest",
"cases": [
{ "match": "equals", "value": "free", "go_to": 5 },
{ "match": "contains", "value": "pro", "go_to": 8 },
{ "match": "not_empty", "go_to": 12 },
{ "match": "default", "go_to": 15 }
]
}
یک جریان میتواند انشعابها را زنجیرهای کند — محافظ حلقه، اجرا را به ۳۲ پرش در هر نوبت محدود میکند تا دو انشعاب که بهطور تصادفی به یکدیگر اشاره میکنند نتوانند حلقهی بینهایت ایجاد کنند. وقتی محافظ فعال شود، اجرا با وضعیت failed علامتگذاری میشود و هر حبابی که قبل از حلقه صادر شده باشد همچنان برای بازدیدکننده ارسال میشود.
معناشناسی تریگر
محیط اجرا هر فرآیند خودکار فعالی را پیمایش میکند که فضای کاری آن با دستیار گفتگو تطابق داشته باشد و agent_id آن یا NULL باشد (کل فضای کاری) یا با دستیار گفتگو تطابق داشته باشد. در بین این ردیفها، اولین فرآیند خودکاری که کلمات کلیدی آن (طبق match_mode آن) تطابق داشته باشد برنده است. ترتیب در صفحهی مدیریت براساس updated_at نزولی است. حلقهی تطابق محیط اجرا خودش ORDER BY ندارد — ردیفها به ترتیب پیشفرض پایگاه داده برمیگردند (معمولاً ترتیب درج). اگر دو فرآیند خودکار میتوانند با یک ورودی تطابق داشته باشند، یکی از آنها را محدودتر کنید تا فقط یکی برنده شود، نه اینکه به تصادف ترتیب درج تکیه کنید.
ویرایش — بوم بصری (پیشفرض) و فرم خطی (جایگزین)
دو روش برای ویرایش فرآیند خودکار، که هر دو از یک ساختار JSON یکسان پشتیبانی میکنند:
-
بوم بصری در آدرس
/app/workflows/{id}/canvas— ویرایشگر پیشفرض. کلیک روی یک فرآیند خودکار در صفحهی فهرست یا ذخیرهی یک جریان تازهایجادشده شما را به اینجا میآورد. ویرایشگر React-Flow با یک گره به ازای هر مرحله، اتصالات قابلکشیدن بین دستهها، و پنل بازرسی در سمت انتها. گرههای انشعاب به ازای هر مورد یک دسته دارند (بهعلاوه یک دستهیdefaultاختیاری)؛ هر دسته را به مرحلهی بعدی متصل کنید. -
فرم خطی در آدرس
/app/workflows/{id}/edit— حالت جایگزین. یک پشته از کارتهای مرحله با فیلدهای مختص هر نوع. از دکمهی «ویرایش خطی» در صفحهی بوم به آن دسترسی پیدا کنید وقتی جریان بهقدری ساده است که یک لیست مسطح خوانایی بهتری نسبت به گراف دارد.
بوم، چیدمان بصری (موقعیتهای گره + اتصالات یال) را در definition.canvas ذخیره میکند، در کنار آرایهی definition.steps که در زمان اجرا مصرف میشود — بنابراین جریانهای ایجادشده در بوم با همان چیدمان در دفعهی بعد باز میشوند.
ذخیرهسازی از بوم، یک پیمایش توپولوژیک از گراف از گرهی تریگر اجرا کرده و آرایهی مراحل را به ترتیب BFS سریالسازی میکند. cases[*].go_to انشعابها از شاخصهای هدف یال پر میشوند، بنابراین ذخیرهسازی مجدد یک جریانی که فقط برای خواندن باز کردهاید، مراحل را بدون تغییر باقی میگذارد.
وضعیتها
- پیشنویس — هرگز تطابق داده نمیشود. در حین ویرایش از این استفاده کنید.
- فعال — در هر نوبت بازدیدکننده تطابق داده میشود.
- غیرفعال — برای سابقه نگهداری میشود اما هرگز تطابق داده نمیشود. برای جریانهای فصلی که بعداً دوباره فعال میکنید مفید است.
چشمانداز فاز ۳
ساختار ذخیرهسازی با نسخههای آینده سازگار باقی میماند. فاز ۳ احتمالاً موارد زیر را اضافه میکند:
- تست A/B — چندین نوع فرآیند خودکار یک تریگر مشترک دارند؛ محیط اجرا به ازای هر بازدیدکننده یکی را انتخاب کرده و ثبت میکند که کدامیک تبدیل کرده است.
- تحلیلهای آماری هر جریان — نرخ ریزش به ازای هر مرحله، توزیع شاخههای انشعاب، زمان تا تحویل به کارشناس.
- تریگرهای بخشبندی بازدیدکننده (بهعلاوهی کلمات کلیدی) — الگوی URL صفحه، بازدیدکنندهی بازگشتی در برابر جدید، موقعیت جغرافیایی.
محیطهای اجرای قدیمیتر که یک تعریف فاز ۳ را میخوانند، بهطور بیصدا از انواع مرحلهای که نمیشناسند عبور میکنند، بنابراین یک مدیر در آینده میتواند تعریفی را ذخیره کند که در یک استقرار قدیمیتر بهخوبی کاهش عملکرد داشته باشد.