وكيل ذكي لتسجيل الفعاليات على واتساب

يجيب عن أسئلة فعالياتك وبرنامجها ومتحدثيها على واتساب، ويسجّل الحضور.

وكيل ذكيمتقدم توفّر ~12 ساعة شهريًا وكلاء الذكاء الاصطناعيبواسطة فريق Flowngn

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: واتساب — شخص يرسل رسالة
  1. يسأل أحدهم عن فعالية.
  2. يجيب الوكيل من جدول Events: المواعيد والمكان والبرنامج والسعر والمقاعد المتبقية.
  3. يسجّله بالاسم والبريد.
  4. يرسل رابط الدفع للفعاليات المدفوعة وينبّه فريقك.

ماذا يستطيع أن يفعل

على عكس الأتمتة الثابتة، يقرر الوكيل أي أدواته يستخدم وبأي ترتيب — ويتذكر المحادثة.

  • يجيب عن المواعيد والأماكن والبرنامج والمتحدثين
  • يسجّل الحضور
  • يعرض قائمة الانتظار عند امتلاء الفعالية

التعليمات (System prompt)

التعليمات التي تشكّل سلوك الوكيل. موجودة بالفعل داخل قالب n8n — انسخها إلى Make أو Zapier، وعدّل أجزاء YOUR_….

التعليمات (System prompt)
You are the WhatsApp registration assistant for YOUR_ORGANISATION's events. Reply in the customer's language and dialect (Egyptian Arabic, Gulf Arabic, Modern Standard Arabic or English). Be warm and brief.

Today is {{ $now.toFormat('cccc d LLLL yyyy') }}.

Tools:
- "Events": upcoming events (event, date, time, venue or online link, price, seats_left, agenda, speakers).
- "Register attendee": registers someone. Use only after they confirm the event, their full name, and email.
- "Notify team": alerts the organisers about registrations, group bookings, sponsorship or speaking requests, and questions you can't answer.

Rules:
- Only register for events with seats_left above 0; otherwise offer the waiting list through "Notify team".
- Never invent speakers, agenda items, prices or discounts.
- For paid events, share the payment link YOUR_PAYMENT_LINK after registering and say the seat is confirmed once paid.

قواعد الأمان

مدمجة في التعليمات والأدوات:

  • لا يخترع متحدثين أو أسعارًا أو خصومات
  • يسجّل فقط في الفعاليات التي بها مقاعد

يستخدم مفتاح الذكاء الاصطناعي الخاص بك (Claude أو OpenAI أو غيرهما). التكلفة تعتمد على النموذج وطول المحادثة — والنموذج الصغير السريع يجعل معظم المحادثات بجزء من السنت.

المخطط

WIncoming messageWhatsApp Trigger{ }Get questionCodeEvents agentAI AgentClaude modelAnthropic Chat Mo…◷MemorySimple MemoryGEventsGoogle Sheets ToolGRegister atten…Google Sheets ToolTNotify teamTelegram ToolWReply on WhatsAppWhatsApp Business Cloud
مشغّل تطبيق كود ذكاء اصطناعي أداة للوكيل

الكود

كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.

Get question · عقدة Code
// Keeps only text messages and pulls out who sent it and what they asked.
const msg = $input.first().json.messages?.[0];
if (!msg || msg.type !== "text") return [];

return [{ json: { from: msg.from, question: msg.text.body } }];

ابنِها بأداتك

اختر أداتك — نفس الأتمتة، خطوة بخطوة.

انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_. خطوات الذكاء الاصطناعي تستخدم نموذج Claude، ويمكنك استبداله بـ OpenAI أو Gemini أو Ollama.

ملف Workflow JSON
عرض الكود (295 سطر)
{
  "name": "وكيل ذكي لتسجيل الفعاليات على واتساب (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## وكيل ذكي لتسجيل الفعاليات على واتساب\nيجيب عن أسئلة فعالياتك وبرنامجها ومتحدثيها على واتساب، ويسجّل الحضور.\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": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "updates": [
          "messages"
        ]
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Incoming message",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "webhookId": "22e073b5-5396-44a5-a7e7-c44fe2954dfb"
    },
    {
      "parameters": {
        "jsCode": "// Keeps only text messages and pulls out who sent it and what they asked.\nconst msg = $input.first().json.messages?.[0];\nif (!msg || msg.type !== \"text\") return [];\n\nreturn [{ json: { from: msg.from, question: msg.text.body } }];"
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Get question",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.question }}",
        "options": {
          "systemMessage": "=You are the WhatsApp registration assistant for YOUR_ORGANISATION's events. Reply in the customer's language and dialect (Egyptian Arabic, Gulf Arabic, Modern Standard Arabic or English). Be warm and brief.\n\nToday is {{ $now.toFormat('cccc d LLLL yyyy') }}.\n\nTools:\n- \"Events\": upcoming events (event, date, time, venue or online link, price, seats_left, agenda, speakers).\n- \"Register attendee\": registers someone. Use only after they confirm the event, their full name, and email.\n- \"Notify team\": alerts the organisers about registrations, group bookings, sponsorship or speaking requests, and questions you can't answer.\n\nRules:\n- Only register for events with seats_left above 0; otherwise offer the waiting list through \"Notify team\".\n- Never invent speakers, agenda items, prices or discounts.\n- For paid events, share the payment link YOUR_PAYMENT_LINK after registering and say the seat is confirmed once paid."
        }
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Events agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-sonnet-5",
          "mode": "list"
        },
        "options": {}
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Claude model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        260,
        220
      ]
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Get question').item.json.from }}",
        "contextWindowLength": 10
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        430,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Returns upcoming events: date, time, venue, price, seats_left, agenda, speakers.",
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Events",
          "mode": "name"
        },
        "options": {}
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Events",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        600,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Registers an attendee for an event.",
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Registrations",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "date": "={{ $now.toISO() }}",
            "phone": "={{ $('Get question').item.json.from }}",
            "event": "={{ $fromAI('event', \"Event name\", 'string') }}",
            "name": "={{ $fromAI('name', \"Attendee's full name\", 'string') }}",
            "email": "={{ $fromAI('email', \"Attendee's email\", 'string') }}",
            "status": "registered"
          }
        },
        "options": {}
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Register attendee",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        770,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Alerts the organisers about registrations, group bookings and questions you can't answer.",
        "chatId": "YOUR_TEAM_CHAT_ID",
        "text": "={{ $fromAI('message', \"What the team needs to know, including the customer's phone\", 'string') }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Notify team",
      "type": "n8n-nodes-base.telegramTool",
      "typeVersion": 1.2,
      "position": [
        940,
        220
      ]
    },
    {
      "parameters": {
        "operation": "send",
        "phoneNumberId": "YOUR_PHONE_NUMBER_ID",
        "recipientPhoneNumber": "={{ $('Get question').item.json.from }}",
        "textBody": "={{ $json.output }}"
      },
      "id": "22e073b5-5396-44a5-a7e7-c44fe2954dfb",
      "name": "Reply on WhatsApp",
      "type": "n8n-nodes-base.whatsApp",
      "typeVersion": 1,
      "position": [
        900,
        0
      ]
    }
  ],
  "connections": {
    "Incoming message": {
      "main": [
        [
          {
            "node": "Get question",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get question": {
      "main": [
        [
          {
            "node": "Events agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Events agent": {
      "main": [
        [
          {
            "node": "Reply on WhatsApp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude model": {
      "ai_languageModel": [
        [
          {
            "node": "Events agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "Events agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Events": {
      "ai_tool": [
        [
          {
            "node": "Events agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Register attendee": {
      "ai_tool": [
        [
          {
            "node": "Events agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Notify team": {
      "ai_tool": [
        [
          {
            "node": "Events agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

← افتحها في ساحة التجربة لتعديلها

نصائح

  • قلّل seats_left مع كل دفع حتى لا يتجاوز الوكيل السعة.

أتمتات مشابهة