إيرادات Stripe اليومية في Slack
كل صباح، شاهد إيرادات الأمس وعدد المدفوعات في Slack.
كيف تعمل
المشغّل: جدول زمني — كل يوم الساعة 8:00
- اجلب أحدث المدفوعات من Stripe.
- احتفظ بالمدفوعات الناجحة في آخر 24 ساعة واجمعها.
- أرسل الإجمالي والعدد إلى #revenue في Slack.
المخطط
مشغّل تطبيق كود
الكود
كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.
// Adds up successful charges from the last 24 hours.
const DAY = 24 * 60 * 60;
const since = Math.floor(Date.now() / 1000) - DAY;
const charges = $input.all()
.map((item) => item.json)
.filter((c) => c.status === "succeeded" && c.paid && c.created >= since);
const byCurrency = {};
for (const c of charges) {
const cur = c.currency.toUpperCase();
byCurrency[cur] = (byCurrency[cur] || 0) + c.amount / 100;
}
const totals = Object.entries(byCurrency)
.map(([cur, sum]) => `${sum.toFixed(2)} ${cur}`)
.join(" + ") || "0";
return [{ json: { text: `💰 Last 24h: ${totals} from ${charges.length} payment(s)` } }];ابنِها بأداتك
اختر أداتك — نفس الأتمتة، خطوة بخطوة.
انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_.
عرض الكود (130 سطر)
{
"name": "إيرادات Stripe اليومية في Slack (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## إيرادات Stripe اليومية في Slack\nكل صباح، شاهد إيرادات الأمس وعدد المدفوعات في Slack.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
"height": 260,
"width": 340
},
"id": "458223d5-1673-42cd-a93b-ba83e3101aa1",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"id": "458223d5-1673-42cd-a93b-ba83e3101aa1",
"name": "Every day 8:00",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"resource": "charge",
"operation": "getAll",
"limit": 100
},
"id": "458223d5-1673-42cd-a93b-ba83e3101aa1",
"name": "Get recent charges",
"type": "n8n-nodes-base.stripe",
"typeVersion": 1,
"position": [
300,
0
]
},
{
"parameters": {
"jsCode": "// Adds up successful charges from the last 24 hours.\nconst DAY = 24 * 60 * 60;\nconst since = Math.floor(Date.now() / 1000) - DAY;\n\nconst charges = $input.all()\n .map((item) => item.json)\n .filter((c) => c.status === \"succeeded\" && c.paid && c.created >= since);\n\nconst byCurrency = {};\nfor (const c of charges) {\n const cur = c.currency.toUpperCase();\n byCurrency[cur] = (byCurrency[cur] || 0) + c.amount / 100;\n}\n\nconst totals = Object.entries(byCurrency)\n .map(([cur, sum]) => `${sum.toFixed(2)} ${cur}`)\n .join(\" + \") || \"0\";\n\nreturn [{ json: { text: `💰 Last 24h: ${totals} from ${charges.length} payment(s)` } }];"
},
"id": "458223d5-1673-42cd-a93b-ba83e3101aa1",
"name": "Add up revenue",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
600,
0
]
},
{
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"value": "#revenue",
"mode": "name"
},
"text": "={{ $json.text }}",
"otherOptions": {}
},
"id": "458223d5-1673-42cd-a93b-ba83e3101aa1",
"name": "Post to #revenue",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
900,
0
]
}
],
"connections": {
"Every day 8:00": {
"main": [
[
{
"node": "Get recent charges",
"type": "main",
"index": 0
}
]
]
},
"Get recent charges": {
"main": [
[
{
"node": "Add up revenue",
"type": "main",
"index": 0
}
]
]
},
"Add up revenue": {
"main": [
[
{
"node": "Post to #revenue",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}في Make، أنشئ سيناريو جديدًا وأضف هذه الوحدات بالترتيب:
- Schedule the scenario: Every day 8:00
- Stripe › List Charges
- Tools › Set variable / Iterator + Array aggregator (same logic as the Code step)
- Slack › Create a Message
- كل تشغيل لوحدة يستهلك عمليات (operations) في Make — والباقة المجانية تتضمن حصة شهرية.
- دوال Make المدمجة (map و sum و formatDate…) تغني عن معظم خطوات Code؛ وللمنطق المعقد استخدم وحدة كود.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
في Zapier، أنشئ Zap جديدًا وأضف هذه الخطوات بالترتيب:
- Schedule by Zapier — Every day 8:00
- Code by Zapier — list charges via the Stripe API
- Code by Zapier — Run JavaScript (paste the code from the Code section)
- Slack — Send Channel Message
- الـ Zaps التي فيها أكثر من خطوتين تحتاج باقة Zapier مدفوعة.
- الـ Webhooks والفلاتر/المسارات و Code by Zapier ميزات مدفوعة في بعض باقات Zapier.
- Code by Zapier يشغّل JavaScript: أعد استخدام الكود بالأعلى، مع قراءة المدخلات من inputData بدلًا من $json.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
نصائح
- الاستردادات لا تُخصم — أضفها في خطوة Code إذا أردت صافي الإيرادات.
أتمتات مشابهة
المالية والإدارةسهل
تنبيه فوري عند فشل دفعة في Stripe
اعرف بالمدفوعات الفاشلة فورًا وسجّلها للمتابعة.
Stripe → Slack → Google Sheets2 س/شهر
المالية والإدارةسهل
الفواتير المدفوعة في جدول المحاسبة
كل فاتورة مدفوعة في Stripe تُسجَّل تلقائيًا، جاهزة لمحاسبك.
Stripe → Google Sheets5 س/شهر
المالية والإدارةمتوسط
تقرير الإيرادات الشهري بالبريد
في أول كل شهر، تصلك إيرادات Stripe للشهر الماضي مقارنة بالشهر الذي قبله.
Stripe → Gmail2 س/شهر