עיון בתמיכה ובעזרה

תיעוד למפתחים

צד המשתמש

מתכונים מעשיים לחיבור ה־Webhook לכלים שכבר בשימוש. Zapier, n8n, Make.com ו־CRM/ERP ישראליים (Powerlink, Priority, Salesforce, Monday.com, HubSpot).

תבנית: Webhook → כלי אינטגרציה → היעד שלכם

רוב האינטגרציות עוקבות אחרי אותה תבנית:

  1. aicall.co.il שולח POST של מטען השיחה לכתובת URL.
  2. אותה כתובת שייכת לכלי אינטגרציה (Zapier, n8n, Make.com) שמפענח את המטען.
  3. כלי האינטגרציה דוחף את הנתונים ל־CRM, ERP, גיליון אלקטרוני או דוא״ל.

למעשה מחברים שתי מערכות עם שכבת no-code באמצע — ללא דרישה ל־deploy של backend.

Zapier — טריגר "Webhooks by Zapier"

Zapier הוא פלטפורמת האינטגרציה הנפוצה ביותר בעסקים ישראליים. הגדרה:

  1. ב־Zapier — Zap חדש. בחירת Webhooks by Zapier כטריגר, ואז Catch Hook.
  2. Zapier נותן URL ייחודי כמו https://hooks.zapier.com/hooks/catch/.... להעתיק.
  3. בדשבורד aicall.co.il מפתחים → Webhooks — להדביק את ה־URL בשדה ה־URL של הסוכן. להפעיל.
  4. לבצע שיחת בדיקה אמיתית כדי ש־Zapier יקלוט מטען לדוגמה.
  5. להוסיף שלב יעד — Google Sheets, Gmail, HubSpot, Salesforce וכו'.

לאימות HMAC — כדאי להשתמש בשלב Code by Zapier עם קטע ה־Node.js מתוך webhooks-system-side.

n8n — אוטומציה no-code self-hosted

n8n היא חלופה בקוד פתוח. נפוצה בצוותי תפעול ישראליים שרוצים שליטה על איפה הנתונים זורמים.

  1. workflow חדש. הוספת node Webhook.
  2. HTTP Method = POST. להעתיק את ה־production URL.
  3. להדביק ב־aicall.co.il מפתחים → Webhooks.
  4. להוסיף node Code ולהדביק את קטע אימות ה־HMAC.
  5. להוסיף nodes נוספים — HTTP Request ל־CRM, INSERT ל־Postgres, שליחת דוא״ל וכו'.

n8n מטפל ב־RTL עברית טוב מהקופסה; תמלילי שיחות מוצגים נכון ב־UI.

Make.com (לשעבר Integromat)

Make.com יושבת בין Zapier (פשוט) ל־n8n (טכני). לאוטומציות מורכבות עם הסתעפות מותנית — לרוב ההתאמה הנקייה ביותר.

  1. סצנה חדשה → Webhooks → Custom webhook → Add. להעתיק URL.
  2. להדביק כ־webhook URL של סוכן ב־aicall.co.il.
  3. שיחת בדיקה; Make.com מזהה אוטומטית את ה־schema של המטען.
  4. שרשור מודולים — Iterator → Aggregator → היעד שלכם.

רוב ה־CRM הישראליים מקבלים Webhook דרך גשר Zapier או n8n. אינטגרציות ישירות:

  • Powerlink CRM — REST API תומך ב־insert / update של רשומות לפי API key. שימוש בפעולת Powerlink של Zapier (כשזמינה) או HTTP request עם המפתח בכותרת.
  • Priority ERP — פתיחת System Constants → Web SDK, יצירת token, ושליחת PUT של נתוני השיחה לטבלת היישות הרלוונטית דרך REST של Priority.
  • Salesforce — האינטגרציה של Zapier היא הכי מלוטשת. מיפוי שיחה → ליד, תמליל → activity note.
  • Monday.com — טריגר Webhook ישיר ב־UI; הדבקת ה־URL שלנו.
  • HubSpot — Workflows יכולים להאזין ל־webhook URL מותאם.

ERP ומערכות back-office ישראליות

ל־Priority, SAP B1, חשבשבת ורווחית — התבנית הבטוחה ביותר היא לגשר דרך n8n (self-hosted) או שרת קטן שאתם שולטים בו. ERP בדרך כלל לא אוהבים שכלי SaaS צרכני כמו Zapier נוגעים בנתונים פיננסיים.

  • n8n על VPS שלכם → מקבל את ה־Webhook שלנו → קורא ל־REST/SOAP של ה־ERP עם האישורים הקיימים שלכם.
  • חתימת ה־HMAC מספקת הוכחה שהבקשה הגיעה מאיתנו.

בדיקת האינטגרציה

לפני שמכוונים ל־production:

  1. שימוש ב־/api/developers/webhook-example כמטען לדוגמה — POST ידני לכלי האינטגרציה.
  2. שיחת בדיקה אמיתית למספר של סוכן. צפייה ביומן השליחות בדשבורד.
  3. שליחה חוזרת של כל שליחה שכשלה מהדשבורד עד שה־receiver מחזיר 2xx נקי.

העברת אירועי webhook ל-CRM שלך

מעביר מינימלי — מקבל את האירוע המאומת, מנרמל את המטען ושולח ל-CRM. אותו עקרון עובד מול HubSpot, Salesforce, Powerlink, Priority.
import os
import httpx

CRM_URL = os.environ["CRM_WEBHOOK_URL"]
CRM_TOKEN = os.environ["CRM_API_TOKEN"]


def forward_to_crm(event: dict) -> None:
    if event.get("event") != "agent.conversation.completed":
        return  # Only push completed calls into the CRM.

    conv = event["conversation"]
    payload = {
        "external_id": conv["id"],
        "caller_phone": conv.get("from_number"),
        "duration_seconds": conv.get("duration_seconds"),
        "transcript_url": conv.get("transcript_url"),
        "cost_usd": conv.get("billed_usd"),
        "agent": conv.get("agent_name"),
    }

    response = httpx.post(
        CRM_URL,
        json=payload,
        headers={"Authorization": f"Bearer {CRM_TOKEN}"},
        timeout=10,
    )
    response.raise_for_status()

שאלות נוספות?

נשמח לעזור — ניתן לפנות בדוא״ל לכל שאלת אונבורדינג או אינטגרציה.