فاصله بین جایی که کار انجام میشود و جایی که تیم حرف میزند
ساعت دو بعدازظهر یک تسک در WKFGo تمام علامت میخورد. تا جلسه صبح فردا هیچکس در کانال #projects خبردار نمیشود، چون کسی در آن لحظه به بورد نگاه نمیکرده. از طرف دیگر، نیمی از «کارهای کوچک» که در رشتهٔ گفتگوی Slack قول داده میشوند هیچوقت وارد بورد نمیشوند — چون کسی باید دست از کار بکشد، تب جدید باز کند و فرم پر کند، پس نمیکند.
هر دو مشکل یک ریشه دارند: ابزار پروژه و ابزار چت دو جای جدا هستند و جابهجایی بین آنها اصطکاک دارد. یکپارچگیای که فقط اعلان میفرستد مشکل اول را حل میکند. یکپارچگیای که از داخل Slack هم میشود روی تسک کار کرد، هر دو را حل میکند.
یکپارچگی Slack در WKFGo دقیقاً چه میکند
یک اپ واقعی Slack است (bot token و signing secret، ساختهشده در api.slack.com/apps) که یکبار توسط ادمین سازمان وصل میشود، با ترافیک در دو جهت:
خروجی — رویداد بورد در کانال پست میشود. وقتی تسکی ساخته، بهروزرسانی یا حذف شود، WKFGo پیامی در کانال تنظیمشدهٔ سازمان پست میکند: آیکون متناسب با نوع رویداد، عنوان تسک با لینک به صفحهٔ /task-details/{id}، نام پروژه، و اینکه چه کسی تغییر را انجام داده. تحویل پیام روی صف async اجرا میشود — قطعی یا محدودیت نرخ Slack هرگز جلوی خود تغییر تسک را نمیگیرد؛ پست ناموفق فقط لاگ میشود، تغییر بورد هرحال انجام شده است.
ورودی — دستور اسلش /wkfgo. مستقیم در Slack تایپ میشود:
/wkfgo tasks— تسکهای باز شما، جدیدترین در بالا، هرکدام با لینک مستقیم به تسک/wkfgo create <عنوان>— تسکی در پروژهٔ پیشفرض سازمان میسازد (یا اولین پروژهٔ سازمان اگر پیشفرضی تنظیم نشده)/wkfgo search <متن>— تسکها را با تطبیق عنوان پیدا میکند/wkfgo help— همان فهرست دستورها، درون خود Slack
دستورهای اسلش کاربر Slack را با تطبیق ایمیل به حساب WKFGo نگاشت میکنند — به همین دلیل توکن بات علاوه بر chat:write و users:read به مجوز users:read.email هم نیاز دارد. اگر ایمیل پروفایل Slack کسی با حساب WKFGo او یکی نباشد، دستور با خطای شفاف و فقطقابلدیدنبرایخودش پاسخ میدهد — نه سکوت، نه اجرا بهجای شخص اشتباه.
چیزی که نیست
این یک همگامسازی دوطرفه نیست که با ویرایش پیام، تسک هم عوض شود، و سیستم کامنت مبتنی بر رشتهٔ گفتگو هم نیست — بحث و کامنت همچنان روی خود تسک در WKFGo میماند. آن را یک کانال اعلان بهاضافهٔ یک خط فرمان در نظر بگیرید، نه یک رابط دوم برای بورد. برای چت واقعی تیمی متصل به زمینهٔ پروژه، بخش جداگانهای در WKFGo وجود دارد (پنل چت با یکپارچگی Mattermost خودش) — اپ Slack مشخصاً برای دیدن رویداد و اقدام سریع در کانالی است که تیم تمام روز باز نگه میدارد.
راهاندازی
۱. یک اپ Slack در فضای کاری خود بسازید، مجوزهای بات chat:write، users:read و users:read.email را اضافه و نصب کنید — این کار توکن باتی با پیشوند xoxb- میدهد.
۲. در WKFGo، ادمین سازمان صفحهٔ یکپارچهسازیها → Slack را باز میکند، توکن بات و (برای کارکردن دستور اسلش) signing secret را میچسباند، و یک کانال پیشفرض تنظیم میکند — مثلاً #projects.
۳. اختیاری: یک پروژهٔ پیشفرض تنظیم کنید تا /wkfgo create بدون پرسیدن جایی برای فرود داشته باشد.
۴. قبل از تکیه کردن روی آن، پیام آزمایشی بفرستید — WKFGo یک پیام تأیید یکخطی در کانال تنظیمشده پست میکند تا مطمئن شوید توکن و کانال هر دو درستاند، قبل از اینکه تیم واقعاً به آن وابسته شود.
۵. آدرس درخواست دستور اسلش (نشاندادهشده در پنل یکپارچهسازی) را در تنظیمات اپ Slack خود روی endpoint واقعی /api/integrations/slack/command در WKFGo بگذارید تا دستورهای /wkfgo فعال شوند.
انتخاب رویدادهایی که پست میشوند
بهطور پیشفرض هر رویداد بورد در کانال پست میشود. برای تیم شلوغ این خیلی زود پرسروصدا میشود — یکپارچگی بهجای wildcard، فهرست رویداد مشخص هم میپذیرد، مثلاً کانالی که فقط task.created و task.deleted را ببیند در حالی که ویرایشهای روزمرهٔ وضعیت ساکت بمانند. اگر این تنظیم در هر دو جهت اشتباه شود، کانال چیزی میشود که مردم آن را بیصدا میکنند — که کل هدف را از بین میبرد؛ محدودتر از حس لازم شروع کنید و بعد از اثبات نسبت سیگنال به نویز، بازش کنید.
سوالات متداول
آیا این کار به پلن پولی Slack نیاز دارد؟ نه — توکن بات و دستور اسلش روی پلن رایگان Slack هم مثل هر پلن پولی کار میکند.
آیا پروژههای مختلف میتوانند در کانالهای مختلف پست کنند؟ هنوز نه — یک اتصال فضای کاری Slack در یک کانال پیشفرض بهازای هر سازمان پست میکند. اگر تیمهای شما به کانال جداگانه بهازای هر پروژه نیاز دارند، این یک محدودیت واقعی است که باید برایش برنامهریزی کرد، نه چیزی که با چند نصب بات دور زده شود.
اگر ایمیل Slack کسی با WKFGo یکی نباشد چه میشود؟ دستور اسلش با خطای فقطقابلدیدنبرایخودش به او میگوید، نه اینکه حدس بزند. راهحل: مطمئن شوید ایمیل پروفایل Slack با ایمیل کاربر WKFGo یکی است.
اتصال بهازای هر کاربر است یا هر سازمان؟
بهازای هر سازمان — یک ادمین یکبار وصل میکند و هر پروژهٔ آن سازمان میتواند بخشی از جریان رویداد باشد. اعضا برای دریافت اعلان یا استفاده از /wkfgo نیازی به تأیید جداگانه ندارند.
آمادهاید فاصلهٔ بین ابزارها را ببندید؟