ارسال پیام متنی
sendMessage با chat_id و text؛ پشتیبانی از parse_mode برای لینک، بولد و منشن. پایهایترین و پایدارترین endpoint روی همه پیامرسانها.
تیم محصول و عملیات میخواهد یک ردیف جدید در Google Sheets، یک فرم یا یک هشدار مانیتورینگ را به پیام ایتا، بله یا تلگرام تبدیل کند؛ ولی هر بار باید منتظر مهندس بماند. یونیوم همان قالب آشنای Telegram Bot API را روی HTTP میگذارد، تا یک HTTP Request در n8n یا Make با یک کلید محدود، ارسال و دریافت پیام را پوشش دهد.
پیامرسانهای ایرانی SDK رسمی برای n8n ندارند و قالب API هر کدام متفاوت است. نتیجه این میشود: اپراتور میخواهد متن یک یادآوری را عوض کند یا یک پلتفرم را اضافه کند، اما باید برای تیم فنی تیکت بزند و منتظر بماند. وقتی هم کد سفارشی نوشته میشود، خطا و تکرار رویداد بهسادگی نادیده گرفته میشود؛ یک وبهوک که دو بار تحویل داده شد، میتواند دو سفارش یا دو پیام کاربر بسازد.
یونیوم جای کد را پر نمیکند؛ آن را یکسان میکند. یک endpoint، یک هدر Authorization و یک قالب JSON برای همه پیامرسانها، تا بخش بزرگی از اتوماسیون بدون نوشتن بکاند قابل اجرا باشد و زمانی هم که حجم بالا رفت، مهاجرت به کد واقعی فقط تغییر کلاینت باشد، نه بازطراحی.
مسیر کامل، از یک ردیف جدید در شیت تا پیام تحویلشده روی پیامرسان، با ذکر نکات خطا و تکرار.
یک نود وبهوک یا تریگر Google Sheets در n8n/Make قرار دهید. برای رویدادهای ورودی پیامرسان، وبهوک یونیوم را به همان نود وصل کنید تا پیام جدید وارد گردشکار شود.
در نود Set یا Function، فیلدها را بسازید: chat_id، text و در صورت نیاز parse_mode. شناسه پیام ورودی را در یک کلید نگه دارید برای گام تکرارناپذیری.
POST به https://api.uniom.ir/bot/sendMessage بزنید. هدر Authorization: Bearer <api-key> و Content-Type: application/json. بدنه همان قالب آشنای Bot API است.
اگر یونیوم ۴xx یا ۵xx برگرداند (مثلاً INVALID_AUTH یا transport failed)، پیام را در یک شیت خطا بنویسید، نه اینکه گردشکار خاموش بماند. این کار بازبینی دستی را ممکن میکند.
message_id برگشتی از پاسخ موفق را در شیت یا دیتابیس خودتان ذخیره کنید؛ برای پیگیری تحویل، تفکیک کلیدها و رفع تداخل بعدی لازم است.
هر کار بالا با یک HTTP Request و بدون نوشتن بکاند، مادامی که محدودیت پلتفرم مقصد رعایت شود.
sendMessage با chat_id و text؛ پشتیبانی از parse_mode برای لینک، بولد و منشن. پایهایترین و پایدارترین endpoint روی همه پیامرسانها.
وبهوک یونیوم را به نود Webhook در n8n وصل کنید تا پیام کاربر وارد گردشکار شود؛ برای پاسخ خودکار یا ثبت تیکت پشتیبانی.
sendPhoto، sendDocument و sendVoice برای فاکتور، تصویر محصول و یادآوری صوتی. پشتیبانی از مدیا روی همه credentialها یکسان نیست؛ جدول پلتفرم را ببینید.
inline_keyboard و reply_markup برای منوی انتخاب سرویس یا تأیید سفارش؛ پاسخ callback_query به همان شکل قالب تلگرام بازمیگردد.
برای هر گردشکار یک کلید جدا با دسترسی فقطارسال بسازید؛ ابطال کلید یک اتوماسیون، بقیه را تحت تأثیر قرار نمیدهد.
هر درخواست با api_key_id و credential_id ثبت میشود؛ در داشبورد میتوانید ببینید کدام گردشکار، کدام پیام را فرستاده و چه خطایی گرفته است.
ابزار بدون کد بهسادگی خطا را پنهان میکند؛ یک نادیدهگرفتن کوچک میشود اسپم یا سفارش تکراری. این موارد را بهصورت آگاهانه در گردشکار طراحی کنید، نه بعد از حادثه.
تریگر Google Sheets به ازای هر ردیف جدید، یک پیام وضعیت سفارش یا خوشآمد به کاربر میفرستد؛ message_id در همان شیت ثبت میشود.
ارسال فرم وبسایت (مثلاً وبهوک از Nabfield یا فرم داخلی) به یونیوم؛ کلاینت پیام را روی بله یا ایتا میگیرد و پاسخ در شیت ذخیره میشود.
وبهوک Grafana/UptimeRobot را مستقیم به یونیوم وصل نکنید؛ از طریق درخواست HTTP یونیوم، هشدار را به کانال یا گروه تیم روی تلگرام/سروشپلاس بفرستید.
پیام دریافتی کاربر از وبهوک یونیوم در n8n گرفته میشود، در شیت پشتیبانی یا CRM درج میشود و تأیید رسید به کاربر برمیگردد.
وقتی حجم به هزاران پیام در ساعت میرسد، retry/backoff و صف واقعی لازم است؛ n8n با یک صف PostgreSQL یا Redis بهتر از حلقهی نود درمیآید، ولی بالاتر از آن باید به کد مهاجرت کنید.
اگر پاسخ به تاریخ، وضعیت کاربر یا محتوای پیام وابسته است و چندین شرط تودرتو لازم دارد، کد خواناتر و قابلتستتر از یک Flow عظیم نود است.
وقتی برخی پیامها باید پیش از ارسال توسط اپراتور تأیید شوند، یک صف پیشنویس در دیتابیس خودتان روشنتر از обход کار در ابزار بدون کد است.
در حجم عملیاتی، داشبورد نرخ موفقیت، تأخیر و خطا بر اساس لاگ یونیوم + متریکهای خودتان لازم است؛ آن زمان تاریخ انقضای کد رسیده.
خبر خوب: چون قالب درخواست همان Bot API است، مهاجرت از n8n به کد فقط ساختن یک HTTP client با همان base_url و همان Authorization است، نه بازطراحی API.
انتخاب بر اساس ویژگی فنی و مخاطب، نه فقط نام آشنا. این قابلیتها روی همه credentialها معنی یکسان ندارد؛ جدول هر پلتفرم را قبل از راهاندازی بخوانید.
یونیوم روی لبهی همین HTTP ساده نشسته است؛ بنابراین هر ابزاری که نود HTTP دارد، میتواند ارسال و دریافت پیام را از یونیوم بگیرد.
نود Webhook یونیوم را trigger کنید و پاسخ را با HTTP Request برگردانید؛ قالب پیام همان Bot API است.
سناریوی Make با ماژول HTTP: یک webhook ورودی برای پیامهای جدید و یک webhook خروجی برای پاسخ.
Zap از وبهوک یونیوم شروع میشود و به هر اپ متصل متصل میشود؛ ارسال پاسخ از مرحلهی Webhook دوم.
سادهترین حالت: ردیف جدید در شیت یک پیام میفرستد و پاسخ در ستون وضعیت به شیت برمیگردد.
کلید idempotency را با message_id بسازید تا تکرار وبهوک، پیام یا ردیف تکراری نسازد.
یک کلید توسعه با scope محدود بسازید، در Playground درخواست را تست کنید و بعد آن را به نود HTTP Request در n8n یا Make وصل کنید.