Slack کنیکٹر
ریئل ٹائم مارکیٹنگ نوٹیفکیشنز، گاہک ایونٹس پر ٹیم الرٹس، اور Slack تعاملات سے ٹرگر شدہ ورک فلو آٹومیشن کے لیے Tajo کے ذریعے اپنے Slack ورک اسپیس کو Brevo سے منسلک کریں۔
جائزہ
| خاصیت | قدر |
|---|---|
| پلیٹ فارم | Slack |
| زمرہ | کسٹم انٹیگریشن |
| سیٹ اپ کی پیچیدگی | آسان |
| آفیشل انٹیگریشن | ہاں |
| سنک شدہ ڈیٹا | صارفین، چینلز، پیغامات، ایونٹس |
| API بنیادی URL | https://slack.com/api |
خصوصیات
- مارکیٹنگ الرٹس - مہم ایونٹس، نئے سبسکرائبرز، اور آمدنی کے سنگ میل کے لیے ریئل ٹائم نوٹیفکیشنز بھیجیں
- گاہک ایونٹ نوٹیفکیشنز - Brevo سے اعلی قدر والے گاہک کے اقدامات پر ٹیموں کو الرٹ کریں
- ورک فلو ٹرگرز - Brevo آٹومیشنز کو ٹرگر کرنے کے لیے Slack تعاملات (بٹن کلکس، فارم سبمیشنز) استعمال کریں
- چینل پر مبنی روٹنگ - ایونٹ کی قسم یا گاہک سیگمنٹ کی بنیاد پر مخصوص چینلز پر نوٹیفکیشنز روٹ کریں
- صارف سنک - اندرونی مواصلات کے لیے Slack ورک اسپیس صارفین کو Brevo رابطوں پر میپ کریں
- انٹرایکٹو پیغامات - ٹیم ورک فلوز کے لیے بٹنز اور ایکشنز کے ساتھ بھرپور پیغامات بھیجیں
- شیڈولڈ پیغامات - روزانہ/ہفتہ وار مارکیٹنگ خلاصوں کے لیے نوٹیفکیشنز شیڈول کریں
- تھریڈ سپورٹ - منظم مواصلات کے لیے متعلقہ نوٹیفکیشنز کو تھریڈز میں گروپ کریں
شرائط
شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:
- ایڈمن رسائی کے ساتھ Slack ورک اسپیس
- api.slack.com/apps پر بنائی گئی Slack ایپ
- مطلوبہ اسکوپس کے ساتھ بوٹ ٹوکن
- API رسائی کے ساتھ Brevo اکاؤنٹ
- Tajo اکاؤنٹ
تصدیق
بوٹ ٹوکن (تجویز کردہ)
اپنے ورک اسپیس میں Slack ایپ انسٹال کریں اور API رسائی کے لیے بوٹ ٹوکن استعمال کریں۔
- api.slack.com/apps پر ایپ بنائیں
- “OAuth & Permissions” کے تحت مطلوبہ OAuth اسکوپس شامل کریں
- ایپ کو ورک اسپیس میں انسٹال کریں
- Bot User OAuth Token کاپی کریں (
xoxb-...)
curl -X POST "https://slack.com/api/chat.postMessage" \ -H "Authorization: Bearer xoxb-YOUR-BOT-TOKEN" \ -H "Content-Type: application/json" \ -d '{"channel": "C01234567", "text": "Hello from Tajo!"}'OAuth 2.0
اپنے Slack انٹیگریشن کو متعدد ورک اسپیسز میں تقسیم کرنے کے لیے:
# Authorization URLhttps://slack.com/oauth/v2/authorize? client_id={client_id}& scope=chat:write,channels:read,users:read& redirect_uri={redirect_uri}
# Token exchangecurl -X POST "https://slack.com/api/oauth.v2.access" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"مطلوبہ بوٹ اسکوپس
chat:write # Send messageschannels:read # List channelschannels:history # Read channel messagesusers:read # List workspace usersusers:read.email # Read user email addressesreactions:write # Add reactions to messagesfiles:write # Upload filesصارف ای میل رسائی
Slack صارفین کو Brevo رابطوں سے ملانے کے لیے users:read.email اسکوپ درکار ہے۔ اس کے بغیر، صارف میپنگ ڈسپلے ناموں تک محدود ہوگی۔
تشکیل
بنیادی سیٹ اپ
connectors: slack: enabled: true bot_token: "${SLACK_BOT_TOKEN}" signing_secret: "${SLACK_SIGNING_SECRET}"
# Notification channels channels: marketing: "C01234567" sales: "C01234568" support: "C01234569" alerts: "C01234570"
# Event routing notifications: new_subscriber: channel: marketing template: subscriber_alert high_value_order: channel: sales template: order_alert support_ticket: channel: support template: ticket_alertفیلڈ میپنگ
Slack صارف ڈیٹا کو Brevo رابطہ خصوصیات پر میپ کریں:
طے شدہ میپنگز
| Parameter | Type | Description |
|---|---|---|
profile.email required | string | صارف ای میل (Brevo میچنگ کے لیے منفرد شناخت کنندہ) |
real_name optional | string | مکمل نام، FIRSTNAME/LASTNAME میں تقسیم |
profile.phone optional | string | SMS خصوصیت پر میپ ہوتا ہے |
profile.title optional | string | ملازمت کا عنوان |
tz optional | string | صارف ٹائم زون |
is_admin optional | boolean | ورک اسپیس ایڈمن کی حیثیت |
team_id optional | string | ورک اسپیس ٹیم ID |
status_text optional | string | صارف کسٹم اسٹیٹس |
API طریقے
پیغام رسانی
| طریقہ | اینڈ پوائنٹ | تفصیل |
|---|---|---|
POST | chat.postMessage | چینل پر پیغام بھیجیں |
POST | chat.update | موجودہ پیغام اپ ڈیٹ کریں |
POST | chat.delete | پیغام حذف کریں |
POST | chat.scheduleMessage | پیغام شیڈول کریں |
POST | chat.postEphemeral | صارف کو عارضی پیغام بھیجیں |
چینلز
| طریقہ | اینڈ پوائنٹ | تفصیل |
|---|---|---|
GET | conversations.list | چینلز کی فہرست |
GET | conversations.info | چینل کی معلومات حاصل کریں |
GET | conversations.members | چینل ممبران کی فہرست |
GET | conversations.history | چینل پیغامات حاصل کریں |
صارفین
| طریقہ | اینڈ پوائنٹ | تفصیل |
|---|---|---|
GET | users.list | ورک اسپیس صارفین کی فہرست |
GET | users.info | صارف کی معلومات حاصل کریں |
GET | users.lookupByEmail | ای میل سے صارف تلاش کریں |
GET | users.conversations | صارف چینلز کی فہرست |
تعاملات
| طریقہ | اینڈ پوائنٹ | تفصیل |
|---|---|---|
POST | views.open | موڈل ویو کھولیں |
POST | views.update | موڈل ویو اپ ڈیٹ کریں |
POST | reactions.add | ایموجی ری ایکشن شامل کریں |
ایونٹس
Brevo سے Slack نوٹیفکیشنز
| ایونٹ | ٹرگر | Slack ایکشن |
|---|---|---|
new_subscriber | Brevo میں رابطہ بنایا گیا | #marketing پر پوسٹ کریں |
campaign_sent | ای میل مہم بھیجی گئی | #marketing میں خلاصہ پوسٹ کریں |
order_placed | اعلی قدر کا آرڈر دریافت ہوا | تفصیلات کے ساتھ #sales پر پوسٹ کریں |
cart_abandoned | کارٹ 30 منٹ کے لیے چھوڑا گیا | فالو اپ کے لیے #sales پر پوسٹ کریں |
ticket_created | سپورٹ ٹکٹ کھولا گیا | #support پر پوسٹ کریں |
unsubscribed | رابطے نے ان سبسکرائب کیا | #marketing پر الرٹ پوسٹ کریں |
Slack سے Brevo ٹرگرز
| Slack ایونٹ | ٹرگر | Brevo ایکشن |
|---|---|---|
message_action | کسٹم پیغام شارٹ کٹ | فہرست میں رابطہ شامل کریں یا آٹومیشن ٹرگر کریں |
block_actions | پیغام میں بٹن کلک | رابطہ خصوصیت اپ ڈیٹ کریں یا ای میل بھیجیں |
view_submission | موڈل فارم سبمٹ | رابطہ بنائیں یا ورک فلو ٹرگر کریں |
کوڈ کی مثالیں
کنیکٹر کو انیشیلائز کریں
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Slackawait tajo.connectors.connect('slack', { botToken: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET});مارکیٹنگ نوٹیفکیشنز بھیجیں
// Send a notification when a high-value order is placedawait tajo.slack.notify({ channel: 'sales', event: 'order_placed', data: { orderValue: '$1,250.00', products: ['Premium Widget', 'Pro Service'], isFirstOrder: true }, template: { blocks: [ { type: 'header', text: { type: 'plain_text', text: 'New High-Value Order' } }, { type: 'section', fields: [ { type: 'mrkdwn', text: '*Amount:*\n$1,250.00' } ] }, { type: 'actions', elements: [ { type: 'button', text: { type: 'plain_text', text: 'View in Brevo' }, url: 'https://app.brevo.com/contacts' } ] } ] }});Slack تعاملات کو سنبھالیں
import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => { // Verify Slack request signature const timestamp = req.headers['x-slack-request-timestamp']; const signature = req.headers['x-slack-signature']; const sigBasestring = `v0:${timestamp}:${req.rawBody}`; const mySignature = 'v0=' + crypto .createHmac('sha256', process.env.SLACK_SIGNING_SECRET) .update(sigBasestring) .digest('hex');
if (signature !== mySignature) { return res.status(401).send('Unauthorized'); }
const payload = JSON.parse(req.body.payload);
// Handle button actions if (payload.type === 'block_actions') { await tajo.connectors.handleWebhook('slack', { type: 'interaction', action: payload.actions[0].action_id, userId: payload.user.id, payload }); }
res.status(200).send();});شرح کی حدود
Slack API شرح کی حدود ایک درجہ بندی نظام استعمال کرتی ہیں:
| ٹیئر | حد | عام طریقے |
|---|---|---|
| Tier 1 | 1 درخواست/منٹ | chat.delete, conversations.kick |
| Tier 2 | 20 درخواستیں/منٹ | conversations.history, users.info |
| Tier 3 | 50 درخواستیں/منٹ | conversations.list, users.list |
| Tier 4 | 100 درخواستیں/منٹ | chat.postMessage |
| خصوصی | مختلف | chat.postMessage ایک ہی چینل پر: 1/سیکنڈ |
اضافی حدود:
- Web API: مختصر مدتی تھروٹل کے ساتھ برسٹ حد
- Events API: 3 کوششوں تک ڈیلیوری ری ٹرائی
- Incoming Webhooks: 1 پیغام/سیکنڈ فی webhook URL
- Block Kit: زیادہ سے زیادہ 50 بلاکس فی پیغام
چینل پوسٹنگ کی شرح
ایک ہی چینل پر پوسٹ کرنا تقریباً 1 پیغام فی سیکنڈ تک محدود ہے۔ شرح کی حد سے بچنے کے لیے بیچ نوٹیفکیشنز یا تھریڈز استعمال کریں۔
ٹربل شوٹنگ
عام مسائل
| مسئلہ | وجہ | حل |
|---|---|---|
not_authed | غلط بوٹ ٹوکن | ایپ کو دوبارہ انسٹال کریں اور نیا بوٹ ٹوکن کاپی کریں |
channel_not_found | بوٹ چینل میں نہیں ہے | بوٹ کو ہدف چینل میں مدعو کریں |
missing_scope | مطلوبہ اسکوپ نہیں دیا گیا | اسکوپ شامل کریں اور ایپ کو دوبارہ انسٹال کریں |
| ایونٹ موصول نہیں ہوا | ایونٹ سبسکرپشن سیٹ نہیں | Event Subscriptions URL ترتیب دیں |
| تعامل ٹائم آؤٹ | جواب >3 سیکنڈ | فوراً 200 کے ساتھ جواب دیں، async پروسیس کریں |
ڈیبگ موڈ
تفصیلی لاگنگ فعال کریں:
connectors: slack: debug: true log_level: verbose log_events: trueکنکشن ٹیسٹ کریں
tajo connectors test slack# ✓ Bot token valid# ✓ Workspace accessible# ✓ Channels readable# ✓ Message posting enabled# ✓ Event subscriptions activeبہترین طرز عمل
- Block Kit استعمال کریں - Slack کے Block Kit فریم ورک کے ساتھ بھرپور، انٹرایکٹو پیغامات بنائیں
- جلدی جواب دیں - 3 سیکنڈ کے اندر تعاملات کو تسلیم کریں، asynchronously پروسیس کریں
- متعلقہ پیغامات کو تھریڈ کریں - شور کم کرنے کے لیے متعلقہ نوٹیفکیشنز کو تھریڈز میں گروپ کریں
- چینل کے ذریعے روٹ کریں - مختلف ایونٹ کی اقسام کو مناسب ٹیم چینلز پر بھیجیں
- ایکشن بٹنز شامل کریں - گاہک ڈیٹا تک فوری رسائی کے لیے “View in Brevo” بٹنز شامل کریں
- انفرلنگ نافذ کریں - Slack میں شیئر کیے گئے Brevo لنکس کے لیے بھرپور پیش نظارہ دکھائیں
سیکیورٹی
- بوٹ ٹوکن - گرانولر اجازتوں کے ساتھ OAuth اسکوپڈ ایکسیس ٹوکن
- درخواست دستخط - آنے والی درخواستوں کے لیے HMAC SHA-256 دستخط کی توثیق
- OAuth 2.0 - ملٹی ورک اسپیس تقسیم کے لیے صنعتی معیار کی اجازت
- TLS انکرپشن - تمام API مواصلات HTTPS کے ذریعے انکرپٹڈ
- ٹوکن روٹیشن - بہتر سیکیورٹی کے لیے خودکار ٹوکن روٹیشن