رسائل البنك والمحفظة ← متابعة الفلوس
حوّل رسائل البنك والبطاقة والمحفظة إلى webhook؛ فيسجل الذكاء الاصطناعي كل مصروف ودخل في جدول.
كيف تعمل
المشغّل: Webhook — رسالة SMS محوّلة من هاتفك
- تطبيق تحويل الرسائل على هاتفك يرسل رسائل البنك والمحفظة إلى الـ webhook.
- يقرأ الذكاء الاصطناعي الرسالة: دخل أم مصروف، والمبلغ، والعملة، والتاجر، والتاريخ.
- رموز OTP والإعلانات ورسائل الرصيد تُتجاهل؛ والمعاملات تُضاف إلى جدول Money.
المخطط
مشغّل تطبيق منطق كود ذكاء اصطناعي
الكود
كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.
// Mode: Run Once for Each Item
// The AI was asked for JSON like:
// {"is_transaction": true, "type": "debit", "amount": 450, "currency": "EGP", "merchant": "Carrefour", "date": "2026-10-19"}
const match = $json.text.match(/\{[\s\S]*\}/);
const t = match ? JSON.parse(match[0]) : {};
const sms = $("Bank SMS").item.json.body || {};
return {
json: {
is_transaction: t.is_transaction === true && Number(t.amount) > 0,
date: t.date || new Date().toISOString().slice(0, 10),
type: t.type === "credit" ? "income" : "expense",
amount: Number(t.amount) || 0,
currency: t.currency || "EGP",
merchant: t.merchant || "",
sender: sms.from || "",
},
};ابنِها بأداتك
اختر أداتك — نفس الأتمتة، خطوة بخطوة.
انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_. خطوات الذكاء الاصطناعي تستخدم نموذج Claude، ويمكنك استبداله بـ OpenAI أو Gemini أو Ollama.
عرض الكود (208 سطر)
{
"name": "رسائل البنك والمحفظة ← متابعة الفلوس (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## رسائل البنك والمحفظة ← متابعة الفلوس\nحوّل رسائل البنك والبطاقة والمحفظة إلى webhook؛ فيسجل الذكاء الاصطناعي كل مصروف ودخل في جدول.\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": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"httpMethod": "POST",
"path": "bank-sms",
"options": {}
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Bank SMS",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
0
],
"webhookId": "2de5ab85-b2af-45d3-a2c6-711a884b6523"
},
{
"parameters": {
"promptType": "define",
"text": "=This is a bank, card or wallet SMS (often Arabic or English). Reply ONLY with JSON: {\"is_transaction\": true|false, \"type\": \"debit\"|\"credit\", \"amount\": number, \"currency\": \"EGP\", \"merchant\": \"...\", \"date\": \"YYYY-MM-DD\"}. OTP codes, ads and balance-only messages are not transactions.\n\nSMS: {{ $json.body.text }}"
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Read the SMS",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
300,
0
]
},
{
"parameters": {
"model": {
"__rl": true,
"value": "claude-sonnet-5",
"mode": "list"
},
"options": {}
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Claude model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
300,
220
]
},
{
"parameters": {
"jsCode": "// Mode: Run Once for Each Item\n// The AI was asked for JSON like:\n// {\"is_transaction\": true, \"type\": \"debit\", \"amount\": 450, \"currency\": \"EGP\", \"merchant\": \"Carrefour\", \"date\": \"2026-10-19\"}\nconst match = $json.text.match(/\\{[\\s\\S]*\\}/);\nconst t = match ? JSON.parse(match[0]) : {};\nconst sms = $(\"Bank SMS\").item.json.body || {};\n\nreturn {\n json: {\n is_transaction: t.is_transaction === true && Number(t.amount) > 0,\n date: t.date || new Date().toISOString().slice(0, 10),\n type: t.type === \"credit\" ? \"income\" : \"expense\",\n amount: Number(t.amount) || 0,\n currency: t.currency || \"EGP\",\n merchant: t.merchant || \"\",\n sender: sms.from || \"\",\n },\n};",
"mode": "runOnceForEachItem"
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Read transaction",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
600,
0
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "c1",
"leftValue": "={{ $json.is_transaction }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Is a transaction?",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
900,
0
]
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Money",
"mode": "name"
},
"columns": {
"mappingMode": "autoMapInputData",
"value": {}
},
"options": {}
},
"id": "2de5ab85-b2af-45d3-a2c6-711a884b6523",
"name": "Add to Money sheet",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
1200,
0
]
}
],
"connections": {
"Bank SMS": {
"main": [
[
{
"node": "Read the SMS",
"type": "main",
"index": 0
}
]
]
},
"Read the SMS": {
"main": [
[
{
"node": "Read transaction",
"type": "main",
"index": 0
}
]
]
},
"Read transaction": {
"main": [
[
{
"node": "Is a transaction?",
"type": "main",
"index": 0
}
]
]
},
"Is a transaction?": {
"main": [
[
{
"node": "Add to Money sheet",
"type": "main",
"index": 0
}
]
]
},
"Claude model": {
"ai_languageModel": [
[
{
"node": "Read the SMS",
"type": "ai_languageModel",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}في Make، أنشئ سيناريو جديدًا وأضف هذه الوحدات بالترتيب:
- Webhooks › Custom webhook
- Anthropic Claude › Create a Prompt (or OpenAI › Create a Completion)
- Tools › Set variable / Iterator + Array aggregator (same logic as the Code step)
- Filter on the next route: “Is a transaction?”
- إذا نعمGoogle Sheets › Add a Row
- كل تشغيل لوحدة يستهلك عمليات (operations) في Make — والباقة المجانية تتضمن حصة شهرية.
- دوال Make المدمجة (map و sum و formatDate…) تغني عن معظم خطوات Code؛ وللمنطق المعقد استخدم وحدة كود.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
في Zapier، أنشئ Zap جديدًا وأضف هذه الخطوات بالترتيب:
- Webhooks by Zapier — Catch Hook
- Anthropic (Claude) — Send Message (or ChatGPT — Conversation)
- Code by Zapier — Run JavaScript (paste the code from the Code section)
- Filter by Zapier: “Is a transaction?”
- إذا نعمGoogle Sheets — Create Spreadsheet Row
- الـ Zaps التي فيها أكثر من خطوتين تحتاج باقة Zapier مدفوعة.
- الـ Webhooks والفلاتر/المسارات و Code by Zapier ميزات مدفوعة في بعض باقات Zapier.
- Code by Zapier يشغّل JavaScript: أعد استخدام الكود بالأعلى، مع قراءة المدخلات من inputData بدلًا من $json.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
نصائح
- استخدم تطبيق تحويل يفلتر حسب المرسل (اسم بنكك) — ولا تحوّل رموز OTP إلى أي مكان أبدًا.
- أرسل فقط إلى رابط webhook خاص بك.
أتمتات مشابهة
المالية والإدارةمتوسط
الذكاء الاصطناعي يقرأ إيصالات البريد إلى جدول المصروفات
الذكاء الاصطناعي يستخرج البائع والمبلغ والعملة والتاريخ من رسائل الإيصالات ويسجلها.
Gmail → AI model → Google Sheets5 س/شهر
المالية والإدارةسهل
تنبيه فوري عند فشل دفعة في Stripe
اعرف بالمدفوعات الفاشلة فورًا وسجّلها للمتابعة.
Stripe → Slack → Google Sheets2 س/شهر
المالية والإدارةسهل
الفواتير المدفوعة في جدول المحاسبة
كل فاتورة مدفوعة في Stripe تُسجَّل تلقائيًا، جاهزة لمحاسبك.
Stripe → Google Sheets5 س/شهر