وقتی چتبات کلینیک زیبایی، خودش نیاز به جوانسازی داشت!
یه روز عصر، از اون عصرهایی که آدم هنوز چای دومش رو نخورده ولی دنیا تصمیم گرفته چندتا کار جدید هم بندازه روی سرش، تلفنم زنگ خورد. ☕📞
شماره رو نمیشناختم. جواب دادم. اون طرف خط، صاحب یه کلینیک زیبایی بود؛ کلینیکی که خدماتی مثل کاشت مو و ابرو، لیزر موهای زائد، لیپوساکشن، بوتاکس، جوانسازی پوست و کلی سرویس دیگه ارائه میداد. 💇♀️✨
گفت:
«شماره شما رو یکی از دوستان مشترکمون داده. گفتن توی اتوماسیون و هوش مصنوعی میتونید کمک کنید. ما یه چتبات داریم، ولی راستش هم هزینههاش عجیب بالا رفته، هم بعضی وقتها کلاً جواب مشتری رو نمیده.»
چند روز بعد نشستیم سیستم رو بررسی کردیم. اتوماسیون قبلی رو یه شرکت دیگه با n8n پیاده کرده بود. از بیرون که نگاه میکردی، همهچیز شیک و مرتب به نظر میرسید؛ کاربر پیام میداد، AI Agent فعال میشد، به OpenAI API وصل میشد و جواب تخصصی درباره خدمات زیبایی میداد. 🤖
اما وقتی رفتیم داخل جزئیات، کمکم معلوم شد قضیه از اون چیزاست که ظاهرش اتو کشیدهست، ولی پشت صحنهاش شلوغتر از پذیرش کلینیک توی روز تخفیف لیزره. 😄
اولین چیزی که توی چشم میزد، Memory بود. کارفرما قبلاً اصرار کرده بود تا ۲۰ مکالمه قبلی هر کاربر نگه داشته بشه و هر بار دوباره برای مدل ارسال بشه. خب از نظر ظاهری، ایده بدی نیست؛ بالاخره آدم دوست داره ربات یادش بمونه کاربر قبلاً چی گفته. اما از نظر فنی، این یعنی هر درخواست جدید با یه چمدون بزرگ از حرفهای قبلی راهی مدل میشه. 🧳
اینجا چند تا نکته مهندسی مهم داریم:
-
در مدلهای زبانی، هزینه و زمان پاسخگویی فقط به سؤال آخر کاربر مربوط نیست. هر چیزی که به مدل میفرستیم، از System Prompt گرفته تا تاریخچه مکالمه و متن سؤال جدید، همگی ورودی حساب میشن و توکن مصرف میکنن. وقتی ۲۰ مکالمه قبلی، اون هم بدون خلاصهسازی و بدون فیلتر، هر بار ارسال بشه، عملاً داریم برای اطلاعات تکراری هم پول میدیم. یعنی مدل هنوز جواب نداده، فاکتور داره گرم میکنه! 💸🔥
-
مشکل دوم System Prompt بود. برای اینکه چتبات تخصصی و حرفهای جواب بده، یه پرامپت خیلی مفصل نوشته شده بود. پر از توضیح درباره خدمات، لحن پاسخ، قواعد مشاوره، محدودیتهای پزشکی، نحوه برخورد با مشتری و کلی نکته دیگه. این هم از نظر ایده قابل درکه، ولی وقتی کنار Memory سنگین قرار میگیره، درخواستها حسابی حجیم میشن. 📄📄📄
-
از اون طرف، کارفرما اصرار داشت حتماً از یه مدل خیلی قوی استفاده بشه و جوابها هم بلند، کامل و حرفهای باشن (پیاده کننده سیستم از gpt ۵.۵ استفاده کرده بود). برای همین خروجی روی حدود ۱۵۰۰ توکن تنظیم شده بود. یعنی مدل هم ورودی سنگین میگرفت، هم باید خروجی مفصل تولید میکرد. خلاصه مدل بیچاره هر بار انگار باید پایاننامه زیباییشناسی تحویل میداد. 😄🎓
نتیجه چی شد؟
هزینه بالا، تأخیر زیاد، و بعضی وقتها هم Timeout. ⏳
Timeout یعنی درخواست به API ارسال میشه، ولی پاسخ در زمان قابل قبول برنمیگرده. اما از دید مشتری اسمش Timeout نیست؛ مشتری خیلی ساده برداشت میکنه:
«من پیام دادم، کلینیک جوابم رو نداد.» 😐
و این دقیقاً همونجاست که تجربه مشتری آسیب میبینه.
مشکل جدیتر این بود که Error Handling هم درست پیاده نشده بود. یعنی اگر OpenAI API خطا میداد، اگر Timeout میشد، اگر پاسخ ناقص میرسید، یا اگر ارتباط لحظهای قطع میشد، هیچ سناریوی جایگزینی وجود نداشت. نه Retry هوشمند، نه پیام عذرخواهی، نه ارجاع به اپراتور، نه ثبت خطا برای بررسی بعدی. 🚨
در واقع سیستم قبلی وقتی همهچیز خوب پیش میرفت، جواب میداد؛ ولی به محض اینکه مسیر کمی دستانداز پیدا میکرد، کاربر وسط گفتگو تنها میموند. یه جورایی مثل آسانسوری بود که فقط وقتی برق هست کار میکنه؛ خب عزیز من، هنر اصلی وقتیه که برق رفت هم کسی گیر نکنه! 😄
اینجا به صاحب کلینیک گفتیم:
«مشکل اصلی این نیست که چتبات هوشمند نیست. مشکل اینه که مثل یه فروشنده حرفهای طراحی نشده. یه فروشنده خوب فقط بلد نیست جواب بده؛
بلد هم هست کی کوتاه جواب بده،
کی سؤال بپرسه،
کی مشتری رو به رزرو وقت برسونه،
کی اپراتور انسانی رو وارد کنه،
و اگه مشکلی پیش اومد، مشتری رو بیجواب نذاره.» 🧠📈
بعد رفتیم سراغ بازطراحی حرفهای اتوماسیون.
۱) اولین تغییر، مدیریت Memory بود. به جای اینکه ۲۰ مکالمه قبلی خام و کامل هر بار ارسال بشه، حافظه رو چندلایه کردیم. پیامهای اخیر کاربر فقط در حد چند مورد آخر نگه داشته شد، اون هم برای حفظ جریان مکالمه. اطلاعات مهم مثل نام، خدمت موردنظر، شهر، سن تقریبی، نگرانی اصلی، سابقه مراجعه، بودجه حدودی یا تمایل به رزرو، به شکل خلاصه و ساختاریافته ذخیره شد. 🗂️
مثلاً به جای اینکه کل ۲۰ پیام قبلی ارسال بشه، سیستم فقط این رو به مدل میده:
«کاربر خانم ۳۴ ساله است، درباره لیزر موهای زائد سؤال دارد، نگران درد و تعداد جلسات است، قبلاً درباره قیمت پرسیده و هنوز نوبت رزرو نکرده.»
هم مدل زمینه مکالمه رو میفهمه، هم لازم نیست هر بار یک طومار بلند براش بفرستیم. مدل هم نفس راحتی میکشه، ما هم فاکتور OpenAI رو با ترس و لرز باز نمیکنیم. 😅💸
از نظر فنی، Memory از حالت خام به حالت خلاصهشده و هدفمند تبدیل شد. یعنی به جای Conversation Buffer سنگین، از Summary Memory و Profile Memory استفاده شد. این کار هم مصرف توکن ورودی رو پایین آورد، هم سرعت پاسخگویی رو بهتر کرد، هم کیفیت پاسخها حفظ شد. ⚙️
۲) تغییر دوم، بازنویسی System Prompt بود. پرامپت قبلی زیاد توضیح داده بود، اما بهینه نبود. ما اون رو تبدیل کردیم به یک پرامپت فشردهتر، دقیقتر و مرحلهایتر. به جای اینکه همه قوانین همیشه به مدل تزریق بشن، بخشهایی از دانش و دستورالعملها فقط وقتی وارد مکالمه میشن که واقعاً لازم باشن. 🎯
مثلاً اگر کاربر درباره بوتاکس میپرسه، لازم نیست اطلاعات کامل کاشت مو، لیپوساکشن و لیزر هم در همان درخواست به مدل داده بشه. ربات که قرار نیست هر بار کل بروشور کلینیک رو از حفظ بخونه! 😄
پس سیستم به جای یک پرامپت سنگین ثابت، از Context هوشمند استفاده کرد؛ یعنی بسته به نیت کاربر، فقط اطلاعات مرتبط وارد پاسخسازی میشه.
۳) تغییر سوم، استفاده هوشمندانه از مدلها بود.
لازم نبود همه پیامها با قویترین مدل پاسخ داده بشن. خیلی از پیامهای مشتریها سادهان:
«قیمت لیزر چنده؟»
«آدرس کجاست؟»
«چند جلسه لازمه؟»
«برای کاشت ابرو مشاوره دارید؟»
برای اینها میشه از مدل سبکتر، سریعتر و ارزانتر استفاده کرد. اما برای موارد حساستر، مثل توضیح تخصصی درباره تفاوت روشها، نگرانیهای پزشکی، یا تصمیمسازی برای خدمات گرانتر، مدل قویتر وارد میشه. 🤖⚖️
پس یک لایه Router طراحی شد. این Router اول پیام کاربر رو دستهبندی میکنه: سؤال ساده، سؤال تخصصی، اعتراض، قصد رزرو، نیاز به اپراتور، یا پیگیری قبلی. بعد بر اساس نوع پیام، مدل مناسب انتخاب میشه.
نکته مهندسی اینجاست که همیشه استفاده از قویترین مدل بهترین تصمیم نیست. بهترین طراحی یعنی مدل مناسب برای کار مناسب. مثل اینه که برای رفتن تا سر کوچه، لودر روشن نکنیم! 😄
۴) تغییر چهارم، کنترل طول پاسخ بود. جوابهای قبلی خیلی کامل و طولانی بودن، اما همیشه طولانی بودن یعنی بهتر بودن؟ نه الزاماً. مشتری توی واتساپ یا اینستاگرام معمولاً دنبال پاسخ قابل فهم و سریع میگرده، نه مقاله علمی با پیوست و منابع. 📚
پس خروجیها رو مرحلهای کردیم. پاسخ اول کوتاهتر، گرمتر و فروشمحورتر شد. اگر کاربر جزئیات بیشتر خواست، مرحله بعد توضیح کاملتر داده میشه.
مثلاً برای لیزر، پاسخ اولیه شامل توضیح ساده، تعداد جلسات حدودی، مزیت کلینیک، و دعوت به مشاوره یا رزرو شد. نه اینکه از همان اول ۱۵۰۰ توکن متن طولانی تحویل کاربر بدیم و طرف وسط پیام یادش بره اصلاً چی پرسیده بود. 😄
این تغییر خیلی مهم بود، چون هم هزینه خروجی رو کم کرد، هم احتمال ادامه مکالمه رو بالا برد. در فروش، هدف همیشه دادن تمام اطلاعات نیست؛ هدف اینه که مشتری یک قدم جلوتر بیاد. 👣
۵) تغییر پنجم، Error Handling حرفهای بود. این بخش واقعاً حیاتی بود. در نسخه جدید، اگر API Timeout بده یا خطای موقت رخ بده، سیستم بیصدا شکست نمیخوره. اول یک Retry کنترلشده انجام میشه. اگر باز هم جواب نگرفت، پیام محترمانه و انسانی برای کاربر ارسال میشه:
«عزیزم الان سیستم پاسخگویی چند لحظه کند شده، پیام شما ثبت شد. تا چند دقیقه دیگه همکارمون راهنماییتون میکنه.» 🙏
همزمان خطا در لاگ ثبت میشه، پیام کاربر به صف پیگیری میره، و در صورت نیاز اپراتور انسانی نوتیفیکیشن میگیره. یعنی حتی وقتی هوش مصنوعی جواب نده، فرایند فروش قطع نمیشه. 🔁📩
از نظر فنی، این یعنی اضافه شدن Retry Policy، Timeout Control، Fallback Message، Queue برای پیگیری، و Alert برای اپراتور. اینها شاید از بیرون دیده نشن، ولی دقیقاً همون چیزهایی هستن که یک اتوماسیون معمولی رو از یک سیستم قابل اعتماد جدا میکنن. 🛠️
۶) تغییر ششم، محدودیتگذاری منطقی روی مکالمه بود. قبلاً کاربر میتونست بینهایت سؤال بپرسه و سیستم هم هر بار با همان مدل قوی و خروجی بلند جواب بده. یعنی هزینه باز، بدون سقف. چیزی شبیه شیر آب باز، ولی به جای آب، توکن میرفت! 😅🚰
در نسخه جدید، مکالمهها امتیازدهی شدن. اگر کاربر واقعاً قصد خرید یا رزرو داشت، سیستم بیشتر همراهی میکرد. اما اگر مکالمه خیلی پراکنده، تکراری یا کمارزش بود، پاسخها کوتاهتر و هدایتشدهتر میشدن.
مثلاً سیستم بعد از چند سؤال، خیلی طبیعی مکالمه رو به سمت اقدام بعدی میبرد:
«برای اینکه دقیقتر راهنماییتون کنیم، دوست دارید یه مشاوره کوتاه با کارشناس براتون هماهنگ کنم؟» 📅
این باعث شد چتبات فقط پاسخگو نباشه؛ تبدیل بشه به یک دستیار جذب مشتری.
بعد از این تغییرات، اتوماسیون جدید عملاً سه هدف رو همزمان پوشش داد:
✅ کاهش هزینه
✅ افزایش پایداری
✅ افزایش درآمد
هزینهها پایین اومد چون Memory خام حذف شد، System Prompt سبکتر شد، مدلها هوشمندانه انتخاب شدن و خروجیها بیدلیل طولانی نبودن. پایداری بهتر شد چون Timeout و خطاها مدیریت شدن و کاربر دیگه بیجواب نمیموند. درآمد هم بالا رفت چون مکالمهها هدفمندتر شدن و ربات مشتری رو به سمت مشاوره، رزرو و ارتباط با اپراتور هدایت میکرد. 📊
به صاحب کلینیک گفتیم:
«ما فقط هزینه OpenAI رو کم نکردیم. ما کاری کردیم هر پیام مشتری یا جواب درست بگیره، یا وارد مسیر پیگیری بشه، یا به رزرو نزدیکتر بشه. این یعنی اتوماسیون از حالت هزینهای تبدیل میشه به ابزار فروش.» 💼
در نسخه جدید، گزارشگیری هم اضافه شد. مشخص شد چند نفر درباره کاشت مو سؤال کردن، چند نفر لیزر میخواستن، چند نفر قیمت پرسیدن، چند نفر به اپراتور وصل شدن، چند مکالمه به رزرو رسید، و کجاها مشتری ریزش کرده. 📈
این دادهها برای مدیریت کلینیک خیلی ارزشمند بود، چون دیگر تصمیمها حدسی نبود. مثلاً اگر میدیدیم سؤال درباره «قیمت لیزر» زیاد است ولی رزرو کم اتفاق میافتد، متن پاسخ، پیشنهاد تخفیف، یا مسیر دعوت به مشاوره اصلاح میشد. اگر میدیدیم درباره کاشت ابرو مشتری زیاد سؤال میپرسد اما بعد از شنیدن شرایط منصرف میشود، میشد یک محتوای بهتر، پیام اعتمادسازتر، یا پیشنهاد مشاوره تصویری طراحی کرد. 🎯
کمکم چتبات از یک سیستم پاسخگویی ساده تبدیل شد به یک موتور جذب لید. یعنی فقط نمیگفت «بوتاکس چیست؟» یا «لیزر چند جلسه است؟»؛ بلکه میفهمید مشتری در چه مرحلهایه، چه نگرانیای داره، چقدر آماده تصمیمگیریه، و بهترین قدم بعدی برای نزدیک کردنش به خرید چیه. 🧲
اینجا بود که صاحب کلینیک هم متوجه شد مسئله فقط تکنولوژی نیست. هوش مصنوعی وقتی ارزش واقعی ایجاد میکنه که با منطق کسبوکار، فروش، تجربه مشتری و مهندسی درست ترکیب بشه. 🤝
در نهایت، سیستم جدید چند تا ویژگی کلیدی پیدا کرد:
✅ Memory سبک و هوشمند، به جای ارسال ۲۰ مکالمه خام و پرهزینه
✅ انتخاب مدل بر اساس نوع سؤال، به جای استفاده دائمی از مدل گران
✅ پاسخهای مرحلهای و کاربردی، به جای متنهای خیلی بلند و فرسایشی
✅ مدیریت Timeout و خطا، به جای رها شدن کاربر
✅ ارجاع هوشمند به اپراتور، برای موارد حساس یا مشتریهای آماده خرید
✅ گزارشگیری از مکالمات، برای بهبود فروش و کمپینهای کلینیک
✅ کنترل هزینه بر اساس ارزش هر مکالمه، نه پاسخگویی بینهایت و بیهدف
آخر کار، چیزی که به کلینیک تحویل داده شد فقط یک n8n Workflow اصلاحشده نبود؛ یک سیستم پاسخگویی، فروش و پیگیری مشتری بود. سیستمی که هم خرجش منطقیتر شده بود، هم سرعتش بهتر شده بود، هم اگر خطایی پیش میاومد، مشتری رو تنها نمیذاشت. 🚀
و شاید مهمترین نتیجه همین بود:
قبلاً هر پیام مشتری میتونست تبدیل بشه به هزینه. 💸
بعد از اصلاح، هر پیام مشتری تبدیل شد به یک فرصت برای جذب، اعتمادسازی و فروش. ✨