There There با Jev تیکتها رو خودش پاس میده
خلاصهٔ کاملتر
تو این مقاله اومده که تیم Spatie تو هلپدسک خودشون There There از Jev استفاده میکنه، یعنی لایهای که ایمیل ورودی رو میخونه و به سؤالهایی که از قبل تعریف کردی جواب میده و برای هر جواب یه احتمال میذاره. قبلاً فقط برای تشخیص اسپم، بانس و پاسخ خودکار ازش کار میکشیدن؛ حالا دو کاربرد دیگه هم اضافه شده: شرط هوشمند برای ورکفلو و تعیین خودکار مسئول تیکت.
مشکل شرطهای قدیمی این بود که فقط موضوع، فرستنده یا متن پیام رو با یه رشته مقایسه میکردن. مشتری ممکنه بنویسه دو بار ازش پول کم شده، یا همون حرفو به زبون دیگه بزنه، پس لیست کلمههای کلیدی زود طولانی میشه. حالا توصیفی که نوشتی به یه سؤال Boolean برای Jev تبدیل میشه:
return new Boolean(
"The incoming message matches this workflow description: {$description}",
[
'true' => 'The incoming message fits the description.',
'false' => 'The incoming message does not fit the description.',
],
);این سؤال با سؤالهای اسپم و پاسخ خودکار تو همون یه درخواست کلاسیفیکیشن ورودی میره، جواب کنار پیام ذخیره میشه و ورکفلو موقع اجرا دوباره Jev رو صدا نمیزنه. یعنی اجرای ورکفلو یه درخواست تازه به Jev اضافه نمیکنه. تو ادیتور هم میتونی یه ایمیل نمونه یا یه تیکت موجود رو تست کنی و امتیازشو قبل از فعال کردن ورکفلو ببینی. فقط ایمیل ورودی چک میشه و Jev موضوع، فرستنده و متن پیام رو میگیره، نه کل تاریخچهٔ تیکت.
کاربرد دوم تعیین مسئوله. تو ورکفلو مشخص میکنی Jev از بین کیها میتونه انتخاب کنه و برای هرکی یه توضیح کوتاه مینویسی، مثلاً یکی مسائل فرانتاند رو دست میگیره، یکی سؤالهای مالی و یکی کارهای دیزاین. بعد یه سؤال Choice با همون لیست میره سمت Jev، به اضافهٔ گزینهٔ «None of these» برای وقتی هیچکی جور نیست. درخواست هم یه timeout ده ثانیهای داره.
به گفتهٔ نویسنده فقط وقتی تیکت اساین میشه که Jev یه گزینهٔ واضح داشته باشه، چون فرستادن تیکت مبهم پیش آدم اشتباه یه پاس دادن اضافه درست میکنه؛ اگه هیچکی واضح جور نباشه اکشن هیچ کاری نمیکنه و یه ورکفلو دیگه بعداً برش میداره. قبل از پرسیدن هم اعضای غیرفعال و کسایی که به کانال اون تیکت دسترسی ندارن از لیست حذف میشن. اساین کردن تیم و اساین کردن آدم دو اکشن جدا هستن، و اسپم و پاسخ خودکار قبل از هر دو کنار گذاشته میشن.
نکات کلیدی:
- شرط هوشمند یه سؤال Boolean به Jev میده و ورکفلو احتمال جواب رو از روی پیام ذخیرهشده میخونه
- سؤال شرط با سؤالهای اسپم و پاسخ خودکار تو یه درخواست کلاسیفیکیشن ورودی جمع میشه، پس ورکفلو دوباره Jev رو صدا نمیزنه
- Jev موقع شرط فقط موضوع، فرستنده و متن ایمیل ورودی رو میبینه، نه تاریخچهٔ تیکت
- تعیین مسئول با سؤال Choice و timeout(10) انجام میشه و گزینهٔ «None of these» هم داره
- اعضای غیرفعال و بدون دسترسی به کانال، قبل از پرسیدن از لیست کندیدها حذف میشن




