אינטגרציות VoiceBox: מה מתחבר היום, ומה עדיין לא
הדף הזה קיים כדי שתדעו לפני הפגישה ולא אחריה. כל מסלול קליטה מופיע כאן עם המצב האמיתי שלו - נתמך ומאומת, מותנה, או לא נתמך היום - ועם מה שנדרש מהמערכת שלכם כדי להשתמש בו.
אנחנו לא מחליפים את המרכזייה, וגם לא מתחזים ליכולות שאין לנו. מה שלא כתוב כאן - לא קיים.
- מסלולים נתמכים
- 4
- מותנים
- 2
- לא נתמכים היום
- 3
- אימות אחרון
- 28.7.2026
בודק ההתאמה
שש שאלות על מה שהמערכת שלכם יודעת לעשות, ותשובה שאומרת לאיזה מסלול היא מתאימה - או שאין כזה. הכל מחושב בדפדפן: התשובות אינן נשלחות אלינו, אינן נשמרות, ואיננו סורקים או מתחברים לשום מערכת שלכם. התוצאה מופיעה לפני שמבקשים מכם פרט כלשהו, כי היא כל מה שהכלי הזה נועד לתת.
שלושה מצבים, בלי אמצע מטושטש
רוב עמודי האינטגרציה בשוק מציגים שני מצבים: יש לוגו, או שאין לוגו. זה נוח למי שכותב ויקר למי שקורא, כי המרחק בין "קיים מיפוי שדות בקוד" לבין "עובד אצלכם בייצור" הוא בדיוק המרחק שמפיל פרויקטים. לכן כאן שלושה מצבים:
- נתמך ומאומת - נקודת קצה או תוכנה שקיימות בקוד, מכוסות בבדיקות אוטומטיות, ואנחנו מציינים ליד כל אחת איפה הבדיקות יושבות. זה מה שאפשר לבנות עליו היום.
- מותנה - המסלול קיים, אבל הוא תלוי במשהו שאינו בשליטתנו: יכולת של המרכזייה, רכיב שאתם מפעילים, או בדיקה משותפת שטרם נעשתה. אלה לא "כמעט נתמך", אלה "נתמך בתנאי ש...", והתנאי כתוב.
- לא נתמך היום - לא בנוי. לא "בקרוב", לא "במפת הדרכים". אם המסלול שלכם כאן, עדיף לדעת עכשיו.
מטריצת המסלולים
תשע שורות, לפי מה שהמערכת שלכם צריכה לדעת לעשות - לא לפי שם הספק. שם הספק כמעט אף פעם אינו הגורם הקובע: שתי התקנות של אותה מרכזייה יכולות להיות בשני מסלולים שונים לגמרי.
| מסלול | מצב | מה נדרש מהמערכת שלכם | מאמץ הקמה | אימות אחרון |
|---|---|---|---|---|
| Webhook JSON חתום | נתמך ומאומת | המערכת שולחת POST לכתובת חיצונית, וניתן לחשב עליו חתימת HMAC-SHA256 | עבודת פיתוח קצרה בצד שלכם | 28 ביולי 2026 |
| העלאת קובץ חתומה (multipart) | נתמך ומאומת | גישה לקובץ ההקלטה, ויכולת לשלוח בקשה חתומה אחת לכל שיחה | עבודת פיתוח קצרה בצד שלכם | 28 ביולי 2026 |
| משיכת ההקלטה מכתובת שנשלחה (recording_url) | נתמך ומאומת | כתובת HTTPS להקלטה שנגישה מהאינטרנט, שנשלחת בתוך ה-Webhook | הגדרה בצד המרכזייה, ללא פיתוח נוסף | 28 ביולי 2026 |
| סוכן תיקייה מקומי | נתמך ומאומת | ההקלטות נשמרות כקבצים בתיקייה, ואפשר להריץ Node על מכונה שקוראת אותה | התקנה חד-פעמית ברשת שלכם | 28 ביולי 2026 |
| מיפוי שדות לספק (Voicenter, 3CX, Twilio, Asterisk CDR) | מותנה | הספק שולח אלינו Webhook חתום; המיפוי קיים בקוד אך לא אומת מקצה לקצה | תלוי בספק, ובבדיקה משותפת | לא אומת מקצה לקצה |
| מרכזייה שאינה יודעת לחתום | מותנה | רכיב ביניים שאתם מפעילים, שמקבל את האירוע, חותם ומעביר | פיתוח קטן בצד שלכם | תלוי ברכיב שלכם |
| משיכה מדלי S3 | לא נתמך היום | — | — | לא קיים בקוד |
| משיכה מ-SFTP | לא נתמך היום | — | — | לא קיים בקוד |
| העלאה ידנית ממסך בקונסולה | לא נתמך היום | — | — | אין מסך העלאה |
המסלולים הנתמכים, לעומק
לכל מסלול: מה הוא עושה, אילו שדות נדרשים, איך האודיו מגיע, מה המגבלות שכדאי להכיר לפני ההקמה, ואיפה נמצאות הבדיקות האוטומטיות שמכסות אותו.
Webhook JSON חתום
המרכזייה או ה-CRM שולחים לנו רשומת שיחה בסיום כל שיחה, לכתובת POST /api/ingest/<connectorId>. הבקשה נחתמת ב-HMAC-SHA256 על גוף הבקשה המדויק, ונבדקת מול חלון של חמש דקות.
- שדות נדרשים
- מזהה שיחה יציב, זמן תחילת שיחה שניתן לפענוח, ומספר הצרכן. כיוון, משך, שלוחת הנציג, שם הנציג וכתובת ההקלטה הם רשות. לכל שדה יש רשימת שמות מקובלים, כך שברוב המקרים אין צורך לשנות שמות בצד שלכם.
- מסלול האודיו
- לא נכלל בבקשה. מגיע אחר כך, דרך recording_url או דרך העלאת קובץ נפרדת.
- מגבלות ידועות
- גוף הבקשה מוגבל ל-256KiB, ונספר על הזרם עצמו ולא לפי מה שהוצהר
- שיחה חדשה מוחזרת ב-201, שידור חוזר של אותו מזהה ב-200 ובלי יצירת שיחה שנייה
- שעון שסוטה ביותר מחמש דקות נדחה בדיוק כמו מפתח שגוי
- רשומת שיחה בלי מסלול אודיו נשארת שיחה בלי הקלטה - זה נראה כמו הצלחה עד שמישהו מבקש את השיחה
- בדיקות אוטומטיות
packages/services/src/__tests__/webhooks.test.ts
העלאת קובץ חתומה
מטא-דאטה וקובץ האודיו בבקשת multipart אחת, לכתובת POST /api/ingest/<connectorId>/upload. זה המסלול לכל מצב שבו יש גישה לקובץ אבל אין כתובת שנגישה מהאינטרנט - וזה בדיוק מה שסוכן התיקייה עושה מתחת למכסה המנוע.
- שדות נדרשים
- בשדה meta: externalId, startedAt ו-counterparty הם חובה. agentRef, direction ו-durationSeconds רשות.
- מסלול האודיו
- הקובץ עצמו, בתוך אותה בקשה.
- מגבלות ידועות
- החתימה מכסה את שדה meta בלבד, ולא את בייטים של האודיו
- עד 200MiB לכלל הבקשה, כולל המטא-דאטה וגבולות ה-multipart; אין הרכבה מחלקים
- התשובה היא 201 תמיד, גם כששיחה עם אותו מזהה כבר נקלטה - אין דרך להסיק מקוד התשובה אם זו הפעם הראשונה
- קובץ שאינו אודיו מזוהה, או WAV מסוג PCM שקט לחלוטין, נשמר אך מסומן בבידוד ומדווח בתשובה
- בדיקות אוטומטיות
packages/services/src/__tests__/webhooks.test.ts
משיכת ההקלטה מכתובת שנשלחה
כששולחים recording_url בתוך ה-Webhook, תהליך רקע מוריד את הקובץ מהכתובת הזו ומצרף אותו לשיחה. הוא רץ אחת לחמש דקות, מטפל בשיחות הישנות ביותר קודם, ומדלג על שיחות שכבר נכשלו לצמיתות כדי שלא יחסמו את התור.
- שדות נדרשים
- אותם שדות של ה-Webhook, בתוספת כתובת ההקלטה.
- מסלול האודיו
- נמשך על ידינו מהכתובת שנשלחה, בשלב נפרד מקליטת השיחה.
- מגבלות ידועות
- HTTP או HTTPS בלבד; כתובת שמפנה לרשת פנימית או לכתובת מקומית נחסמת בכוונה
- עד 200MiB לקובץ, עם מגבלת זמן של דקה להורדה
- אימות מול המרכזייה (Basic, Bearer, כותרת או פרמטר בכתובת) מוגדר על מקור הקליטה על ידינו, ואין לו מסך בקונסולה
- כתובת שפגה לפני שהספקנו להוריד היא הקלטה שלא תגיע; במרכזייה שמוחקת מהר, עדיף מסלול העלאה
- בדיקות אוטומטיות
apps/worker/src/__tests__/jobs.test.ts · packages/telephony/src/__tests__/telephony.test.ts
סוכן תיקייה מקומי
תהליך קטן שרץ אצלכם, עוקב אחרי תיקיית ההקלטות, מחכה שהקובץ יפסיק לגדול, קורא את פרטי השיחה משם הקובץ ומעלה אותו בבקשה חתומה. התעבורה יוצאת מכם אלינו בלבד; אין צורך לפתוח דבר לאינטרנט. לפני כל העלאה מחושב SHA-256, כך שאותו אודיו בשני שמות אינו הופך לשתי שיחות - מה שהופך את הסוכן גם לכלי ההעברה של ארכיון ישן.
- שדות נדרשים
- נגזרים משם הקובץ: מזהה, מספר הצד השני, מועד השיחה, ולעיתים שלוחת הנציג והכיוון. אזור הזמן שבו נקראת חותמת הזמן מוגדר בהגדרות ונשמר עם השיחה; מועד שנגזר מתאריך הקובץ מסומן ככזה, או נדחה בהגדרה המחמירה.
- מסלול האודיו
- הקובץ מהתיקייה, בבקשת ההעלאה החתומה.
- מגבלות ידועות
- שם קובץ שאינו תואם אף תבנית מדווח ואינו נשלח - הסוכן אינו מנחש שיוך
- ברירת המחדל סורקת שבעה ימים אחורה לפי תאריך הקובץ, ולכן ארכיון ישן אינו עולה מעצמו - נדרשת הרצה מכוונת עם חלון פתוח
- נדרשת סביבת Node 20 ומעלה על מכונה ברשת; אין כרגע חבילת התקנה חתומה ל-Windows
- הסוכן אינו מוחק ואינו משנה את הקבצים בתיקייה
- בדיקות אוטומטיות
tools/agent/src/__tests__/agent.test.ts, והרצה מלאה מול תיקייה סינתטית
מה שאינו נתמך היום
השורות האלה קיימות כאן בכוונה. חלקן מופיעות כאפשרות בממשקים פנימיים או בשיחות מכירה בשוק, והדרך היחידה שלא לבזבז לכם שבועיים היא לכתוב במפורש מה לא בנוי, ומה עושים במקום.
משיכה מדלי S3
קיים ערך בשם s3Pull בבסיס הנתונים, והוא ממופה למפענח ה-Webhook הכללי. אין בקוד תהליך שמתחבר לדלי, מציג רשימה של קבצים או מוריד מהם.
מה עושים במקום: התהליך שכותב לדלי יכול לשלוח לנו במקביל בקשה חתומה, או להעלות את הקובץ ישירות. אם הדלי חשוף בכתובת HTTPS, אפשר לשלוח את הכתובת בשדה recording_url.
משיכה מ-SFTP
אותו מצב בדיוק: ערך בשם sftpPull שממופה למפענח הכללי, בלי שום לקוח SFTP בקוד.
מה עושים במקום: סוכן התיקייה קורא כל תיקייה מקומית או שיתוף רשת, כולל תיקייה שאליה המרכזייה כותבת דרך SFTP בצד שלכם.
העלאה ידנית ממסך בקונסולה
אין בקונסולה מסך שמעלה קובץ אודיו. ההעלאה היחידה שקיימת היא בקשת multipart חתומה לנקודת הקצה.
מה עושים במקום: העלאה בקוד מול נקודת הקצה, או סוכן התיקייה עבור מי שלא רוצה לכתוב קוד.
משיכה יזומה מ-API של ספק טלפוניה
מבנה של מחבר מושך מוגדר בטיפוסים, אך אין לו מימוש. כל הקליטה היום מתחילה בכך שמשהו בצד שלכם יוזם.
מה עושים במקום: Webhook מהספק אלינו, או סוכן התיקייה על העותק שנשמר אצלכם.
מיפוי שדות לספקים, ומה הוא לא
בקוד קיימות רשימות של שמות שדות עבור Voicenter, 3CX, Twilio ועבור רשומות CDR בסגנון Asterisk, לצד המיפוי הכללי. תפקידן אחד: לדעת שאותו פרט - מזהה השיחה, מועד ההתחלה, מספר הצד השני - נקרא אצל כל ספק בשם אחר. זה חוסך עבודת מיפוי בצד שלכם, ולא יותר מזה.
אף אחד מהמיפויים האלה לא אומת אצלנו מקצה לקצה מול חשבון אמיתי, ואין לנו שותפות, הסמכה או אישור של אף ספק. לכן אין כאן לוגואים ואין דף לכל ספק: לוגו הוא רמז לשיתוף פעולה שאינו קיים. המצב המדויק הוא "קיים מיפוי שדות, טרם אומת מקצה לקצה", וההוכחה היחידה שמשנה היא שיחת בדיקה אחת מהחשבון שלכם שנקלטה אצלנו במלואה. ברגע שספק ייבדק כך, השורה כאן תשתנה ותקבל תאריך.
מה נדרש כדי שמסלול ייחשב "נתמך"
- נקודת קצה או תוכנה שקיימות בקוד ורצות בייצור, ולא ענף פיתוח או תכנון.
- בדיקות אוטומטיות שמכסות את המסלול, עם הפניה לקובץ הבדיקות כאן בדף.
- מגבלות ידועות שכתובות במפורש - גדלים, פורמטים, כשלים - כדי שאיש IT יוכל להעריך את המסלול לפני שהוא מתחייב אליו.
- כתובת אחת לפניות טכניות בכל מסלול: hello@voicebox.co.il. אין כאן שמות של אנשים שאי אפשר לאמת מבחוץ, אבל יש ערוץ אחד שמישהו אחראי לענות בו.
- תאריך אימות אחרון בשורה עצמה. תיעוד בלי תאריך מתיישן בשקט, ומסלול שנבדק לפני שנה אינו מסלול שנבדק.
איך מתחילים בפועל
- להריץ את בודק ההתאמה ולסמן את המסלול המתאים.
- לקרוא את התיעוד של אותו מסלול: Webhook והעלאת קובץ או סוכן התיקייה.
- לבקש מאיתנו מקור קליטה ייעודי לבדיקות. פתיחת חשבון אינה יוצרת מקורות קליטה - אנחנו מקצים אותם, ורק אחר כך אפשר להציג בקונסולה את המזהה ואת מפתח החתימה.
- לשלוח שיחה אחת ולראות אותה בקונסולה, כולל האודיו, לפני שמעבירים תנועה אמיתית.
- לעבור לייצור, ולבדוק אחרי יומיים שהמונים עולים ושאין שיחות בלי הקלטה.
אם המערכת שלכם אינה ברשימה
כתבו לנו ל-hello@voicebox.co.il ותארו שלושה דברים: איזו מערכת מקליטה, איפה הקובץ נשמר אחרי שיחה, ומה המערכת יודעת לעשות בסיום שיחה. אלה שלושת הדברים שקובעים אם יש מסלול, ולרוב אפשר לענות מהם בלי גישה למערכת. אם אין מסלול, נאמר את זה - ולא נמכור הקמה שתיתקע.
רקע רחב יותר על מה שהמרכזייה כבר עושה ומה נשאר פתוח נמצא בהשוואה בין הקלטה במרכזייה לניהול הקלטות, ותיאור של מה שקורה לשיחה אחרי שהיא נקלטת נמצא בניהול ההקלטות, והתשלום החודשי על השירות ומה שאינו כלול בו מפורטים בעמוד המחירים.
שאלות שחוזרות
- האם VoiceBox מושכת הקלטות מדלי S3 או משרת SFTP?
- לא. יש בבסיס הנתונים ערכים בשמות s3Pull ו-sftpPull, אבל הם ממופים למפענח ה-Webhook הכללי ואין בקוד שום תהליך שמתחבר לדלי או לשרת קבצים ומושך מהם. מי שההקלטות שלו נכתבות לאחד מהשניים יכול לשלוח לנו בקשה חתומה מהתהליך שכותב אותן, או להריץ את סוכן התיקייה על העותק המקומי.
- יש לכם אינטגרציה מוכנה ל-Voicenter, ל-3CX או ל-Twilio?
- קיים בקוד מיפוי שדות לכל אחת מהן, כלומר רשימה של השמות שכל ספק נותן לאותם פרטי שיחה. מיפוי שדות אינו אינטגרציה שאומתה מקצה לקצה, ואין לנו שותפות או אישור של אף אחד מהספקים האלה. בפועל מדובר במסלול Webhook רגיל שבו הפענוח כבר מוכן, וההוכחה היחידה שהוא עובד בתצורה שלכם היא שיחת בדיקה שנקלטה.
- מה בודק ההתאמה בודק, ומה הוא שולח?
- הוא בודק את התשובות שסימנתם ותו לא. החישוב רץ בדפדפן, התשובות אינן נשלחות לשרת ואינן נשמרות, ואיננו סורקים, בודקים או מתחברים לשום מערכת שלכם. הכלי הוא עזר להערכה עצמית, ולא בדיקה טכנית של המרכזייה.
- מה נדרש מהמרכזייה כדי להתחבר בלי להחליף אותה?
- אחת משתי יכולות. או שהיא יודעת לשלוח בקשת HTTP בסיום שיחה, ואז מסלול ה-Webhook פתוח - עם רכיב ביניים שחותם, אם היא לא יודעת לחתום בעצמה. או שההקלטות נשמרות כקבצים בתיקייה, ואז סוכן התיקייה עושה את העבודה בלי לגעת בהגדרות המרכזייה.
- למה אין דף נפרד לכל ספק מרכזייה?
- כי לא בדקנו את כל הספקים, ודף לספק שלא נבדק הוא הבטחה שלא ניתן לעמוד בה. מה שקובע אינו שם הספק אלא מה המערכת יודעת לעשות: לשלוח בקשה, לחתום, לחשוף כתובת או לכתוב קובץ לתיקייה. הדף הזה בנוי סביב היכולות האלה, וכשספק ייבדק מקצה לקצה נכתוב זאת כאן במפורש.
- מה קורה אם אף מסלול לא מתאים?
- כותבים לנו מה המערכת יודעת לעשות. לפעמים יש רכיב ביניים פשוט שסוגר את הפער, לפעמים יש מערכת אחרת בארגון - מוקד, CRM או מקליט - שכן יודעת לדווח, ולפעמים התשובה הכנה היא שהיום זה לא נתמך. עדיף לדעת את זה לפני שמתחילים בהקמה.
עדיף לגלות שאין מסלול עכשיו, ולא אחרי חודש הקמה
שלחו לנו מה המרכזייה יודעת לעשות ואיפה נשמרים הקבצים, ונחזיר תשובה עניינית: איזה מסלול מתאים, מה נדרש להקמה, ומה עדיין לא קיים. hello@voicebox.co.il
אם החיבור הישיר מתאים, המפרט הטכני המלא - מבנה הבקשה, החתימה והשגיאות - נמצא כאן.
להמשך קריאה
- סוכן תיקייה למרכזייה ישנהאיך מעלים הקלטות מתיקייה במרכזייה ותיקה או ב-Asterisk: התקנה, תבניות שמות קבצים, אזור זמן, זיהוי כפילויות לפי תוכן, קובץ מצב, בידוד, חלון הסריקה וניטור.
- מערכת הקלטת שיחות לעסקיםעמוד הקטגוריה של VoiceBox: מה מערכת לניהול הקלטות עושה מעל קובץ ההקלטה - קליטה מהמרכזייה, שמירה ומחיקה מבוקרת, איתור שיחות שלא נקלטו ומסירה ללקוח.