API ניתוח ודוחות
נקודות קצה לקריאה בלבד אלו מאפשרות לך למשוך את פעילות החשבון שלך ללוחות המחוונים ולדוחות שלך: ספירות אירועי הודעות, צריכת קרדיטים, הוצאות AI, ואותם תרשימים ותובנות שמוצגים בלוח המחוונים בתוך האפליקציה. מדריך זה מכסה:
- סיכום — מוני נפח הודעות (נשלחו, נמסרו, נקראו, נענו, הוזמנו, אנשי קשר שנוצרו, קרדיטים).
- קרדיטים — ספר חשבונות מפורט וממוספר של ניצול קרדיטים עם סיכומים ופירוטים.
- עלות AI — סיכום יומי של הוצאות ה-AI.
- סדרות מדדים — סדרת עיתוי מוכנה לתרשים עבור מדד אחד או יותר, מקובצת לפי קמפיין, ערוץ, סוכן AI או מספר.
- תוצאות שיחה — שיחות לאורך זמן, מקובצות לפי תגיות איש הקשר שהן נושאות (תגיות הסגירה שהסוכן שלך מחיל).
- עלויות שיחה: עלות הקרדיט הממוצעת של שיחה שה-AI טיפל בה לבדו לעומת שיחה שהצוות שלך התערב בה.
- תובנות לוח מחוונים ו-תובנות AI ללוח מחוונים — הנתונים המלאים מאחורי לוח המחוונים באפליקציה, כולל סיכומים שנכתבו על ידי ה-AI.
- פעילות ישות — ציר הזמן של איש קשר, עסקה או משימה בודדים.
- ספירות אירועים מצטברות — צורה מיושנת ב-camelCase של סיכום שנשמרה עבור אינטגרציות קיימות.
כל נקודת קצה בדף זה דורשת היקף (scope) מדויק, לא את שניהם: העבר לכל היותר אחד מ-campaign_id (מיושן) או agent_id היכן שנקודת הקצה מקבלת זאת. שליחת שניהם מחזירה 400, ומזהה (id) שאינו בחשבונך מחזיר 404 במקום 403, כך שמזהים של חשבונות אחרים נשארים בלתי ניתנים לניחוש.
רק שני נקודות קצה מסננות לפי תגית איש קשר.
tag_ids(עםtag_match) מכובד על ידי תובנות לוח הבקרה ו-ספירות אירועים מצטברות — אלו השניים שבהם משתמש המסנן כל התגיות בלוח הבקרה בתוך האפליקציה. סיכום, סדרות מדדים ו-תוצאות שיחה מאמתים את הפרמטר (רשימת מזהים פגומה עדיין מחזירה400) אך לא מחילים אותו: תקבל בחזרה מספרים ברמת החשבון, ללא שגיאה שתציין זאת. אל תקרא סך הכל לא מסונן כסך הכל מסונן לפי תגית.
כל הנתיבים להלן יחסיים לכתובת ה-URL הבסיסית של ה-API:
https://api.youraiconnector.com/v1
כל בקשה חייבת לעבור אימות. ראה Authentication עבור ארבע השיטות המקובלות. הדוגמאות כאן משתמשות ב-header מסוג X-API-Key (וטופס פרמטר שאילתה אחד עבור cURL).
טווח תאריכים
כל שלוש נקודות הקצה מקבלות את אותם מסנני תאריכים אופציונליים:
| פרמטר | תיאור |
|---|---|
from |
תחילת הטווח, YYYY-MM-DD, כולל. ברירת המחדל היא לפני 30 יום. |
to |
סוף הטווח, YYYY-MM-DD, כולל. ברירת המחדל היא היום. |
תאריכים מתפרשים לפי UTC. ברירת המחדל של הטווח היא 30 הימים האחרונים והוא מוגבל ל-366 ימים — טווח רחב יותר יחזיר 400. from חייב להיות לפני או שווה ל-to.
הדגל truncated
נקודות הקצה סיכום ו-קרדיטים מגבילות את מספר הרשומות שבקשה בודדת סורקת. אם הטווח שלך עמוס מספיק כדי להגיע למגבלה זו, התגובה כוללת "truncated": true. כאשר אתה רואה זאת, המספרים מבוססים על סריקה חלקית — צמצם את טווח התאריכים שלך (או דפדף עם חלון קטן יותר) כדי לקבל נתונים מלאים.
הערה: נתוני עלות ואסימונים כלולים רק עבור קריאות AI המחויבות למפתחות ה-API של הספק שלך. כאשר נתוני העלות מוסתרים עבור החשבון שלך, התגובה מגדירה את "costs_redacted": true ושדות העלות מוחזרים כפסים.
סיכום נפח הודעות
מחזיר מוני אירועי הודעות מצטברים עבור החשבון שלך, הן כסיכומי טווח והן כסדרה יומית. כל יום בטווח מופיע ב-by_date — ימים שקטים ימולאו באפסים. ניתן לסנן באופן אופציונלי לקמפיין בודד באמצעות campaign_id.
GET /analytics/summary
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תחילת הטווח, YYYY-MM-DD. |
to |
לא | סוף הטווח, YYYY-MM-DD. |
campaign_id |
לא | ספירת אירועים השייכים לקמפיין זה בלבד. |
cURL
curl "https://api.youraiconnector.com/v1/analytics/summary?from=2026-05-01&to=2026-05-31&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ from: "2026-05-01", to: "2026-05-31" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/summary?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/summary",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"from": "2026-05-01", "to": "2026-05-31"},
)
data = res.json()
תגובה
{
"success": true,
"from": "2026-05-01",
"to": "2026-05-31",
"totals": {
"total": 1240,
"sent": 800,
"delivered": 760,
"read": 540,
"replied": 210,
"booked": 35,
"contact_created": 120,
"credits_spent": 412.5,
"credits_recharged": 500
},
"by_date": [
{
"date": "2026-05-01",
"total": 40,
"sent": 25,
"delivered": 24,
"read": 18,
"replied": 7,
"booked": 1,
"contact_created": 4,
"credits_spent": 13.5,
"credits_recharged": 0
}
],
"truncated": false
}
לכל רשומה ב-by_date יש את אותם שדות מונה כמו ב-totals, בתוספת date.
אם תעביר campaign_id שאינו שייך לחשבון שלך, התגובה תהיה 404 עם { "success": false, "error": "Campaign not found" }.
ניצול קרדיט
מחזיר את ניצול הקרדיט לאורך הטווח: רשימה מפוצלת לדפים של רשומות בודדות, בתוספת סיכומי טווח ופירוט לפי סיבה ולפי קמפיין.
GET /analytics/credits
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תחילת הטווח, YYYY-MM-DD. |
to |
לא | סוף הטווח, YYYY-MM-DD. |
campaign_id |
לא | כלול רק ניצול המשויך לקמפיין זה. |
limit |
לא | גודל דף עבור records, 1–100. ברירת המחדל היא 50. |
cursor |
לא | העבר את ה-next_cursor של הדף הקודם כדי להביא את הדף הבא. |
התאמות לעומת צריכה: שינויים ביתרה כגון בונוסים, חידושי תוכנית ותיקונים אינם נכללים ב-
totalsובפירוטים — הם אינם צריכה אמיתית. הם עדיין מופיעים ברשימת ה-records, מסומנים ב-"is_adjustment": true.
סיכומים ופירוטים מופיעים רק בדף הראשון (כאשר לא מסופק cursor). בדפים הבאים, totals, by_reason, by_reason_cost ו-by_campaign מוחזרים כ-null — רק מערך ה-records ממשיך. זה מונע סריקה מחדש של כל הטווח עבור כל דף.
cURL
curl "https://api.youraiconnector.com/v1/analytics/credits?from=2026-05-01&to=2026-05-31&limit=50&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({
from: "2026-05-01",
to: "2026-05-31",
limit: "50",
});
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/credits?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
// To page: pass data.next_cursor as ?cursor on the next request, until it is null.
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/credits",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"from": "2026-05-01", "to": "2026-05-31", "limit": 50},
)
data = res.json()
# To page: pass data["next_cursor"] as cursor on the next request, until it is None.
תגובה (דף ראשון)
{
"success": true,
"from": "2026-05-01",
"to": "2026-05-31",
"totals": {
"credits_used": 412.5,
"cost_usd": 1.284512,
"records": 318
},
"by_reason": {
"AI Message": 380.0,
"Campaign Message": 32.5
},
"by_reason_cost": {
"AI Message": 1.284512,
"Campaign Message": 0
},
"by_campaign": {
"Spring Promo": 250.0,
"Reactivation": 162.5
},
"records": [
{
"id": "rec_abc123",
"amount": 1,
"timestamp": "2026-05-31T14:02:11.000Z",
"reason": "AI Message",
"is_adjustment": false,
"campaign_id": "campaign123",
"campaign_name": "Spring Promo",
"contact_id": "contact456",
"contact_name": "Jane Smith",
"credit_type": "ai",
"custom_keys_used": false,
"description": null,
"cost_usd": 0,
"input_tokens": 0,
"output_tokens": 0,
"cache_read_tokens": 0,
"cache_creation_tokens": 0,
"ai_model": null,
"request_id": null,
"is_test": false
}
],
"next_cursor": "rec_abc123",
"costs_redacted": false,
"truncated": false
}
הערות שדה:
amount— קרדיטים שחויבו עבור הרשומה. אפס עבור רשומות שחויבו במפתח ה-API של הספק שלך.is_adjustment—trueעבור שינויים ביתרה (לא נכללים בסיכומים/פירוטים).cost_usd,input_tokens,output_tokens,cache_read_tokens,cache_creation_tokens,ai_model,request_id— מאוכלסים רק ברשומות שחויבו במפתח ה-API של הספק שלך; אחרת אפס אוnull.is_test—trueעבור הרצות ניסיון/בדיקה, שלעולם אינן מחויבות.next_cursor— הסמן לדף הבא, אוnullכאשר אין יותר רשומות.
יתרת קרדיטים
GET /users/me/credits — מצב הקרדיטים הנוכחי בחשבון שלך בשיחה אחת: מה נותר להוציא, ההקצבה החודשית, והגדרות הטעינה האוטומטית והיתרה הנמוכה. השימוש בקרדיטים לעיל הוא היסטוריה; זהו היתרה נכון לעכשיו. חברי צוות שקוראים לזה זקוקים להרשאת חיוב; למפתח של בעל החשבון יש אותה תמיד.
curl "https://api.youraiconnector.com/v1/users/me/credits?apiKey=YOUR_API_KEY"
const res = await fetch("https://api.youraiconnector.com/v1/users/me/credits", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const { balance } = await res.json();
תגובה (200)
{
"success": true,
"balance": 1837.5,
"monthly_credits": 2000,
"used_this_month": null,
"auto_recharge_enabled": true,
"low_credit_threshold": null
}
| שדה | משמעות |
|---|---|
balance |
קרדיטים שנותרו להוצאה — אותו מספר שמוצג בכרטיס הקרדיטים. |
monthly_credits |
ההקצבה החודשית של התוכנית, או null כאשר אין לחשבון כזו. |
used_this_month |
קרדיטים שנוצלו החודש עבור חשבון הקצאה (תת-חשבון של סוכנות); null עבור חשבון רגיל — השתמש ב-שימוש בקרדיטים עבור זה. |
auto_recharge_enabled |
האם טעינה אוטומטית מופעלת. |
low_credit_threshold |
היתרה שבה מופעל ה-webhook של יתרה נמוכה, או null כאשר חלה ברירת המחדל. |
סוכנויות יכולות להעביר sub_account_id כדי לקרוא את היתרה של חשבון לקוח. בתוך אוטומציה, שלב בדיקת קרדיטים מחזיר את אותם שדות.
ריכוז עלויות AI
מחזיר את ריכוז הוצאות ה-AI היומי עבור החשבון שלך. פעולה זו קוראת סיכומים יומיים שעברו צבירה מראש, לכן היא מהירה גם בטווחים ארוכים. כל יום בטווח מופיע ב-days — ימים שקטים ימולאו באפסים.
GET /analytics/ai-cost
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תחילת הטווח, YYYY-MM-DD. |
to |
לא | סוף הטווח, YYYY-MM-DD. |
cURL
curl "https://api.youraiconnector.com/v1/analytics/ai-cost?from=2026-05-01&to=2026-05-31&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ from: "2026-05-01", to: "2026-05-31" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/ai-cost?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/ai-cost",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"from": "2026-05-01", "to": "2026-05-31"},
)
data = res.json()
תגובה
{
"success": true,
"from": "2026-05-01",
"to": "2026-05-31",
"totals": {
"total_usd": 12.4821,
"byok_usd": 12.4821,
"platform_usd": 0,
"calls": 4210
},
"days": [
{
"date": "2026-05-01",
"total_usd": 0.4012,
"byok_usd": 0.4012,
"platform_usd": 0,
"input_usd": 0.18,
"output_usd": 0.19,
"cache_creation_usd": 0.02,
"cache_read_usd": 0.0112,
"calls": 140,
"by_provider": { "anthropic": 0.4012 }
}
],
"costs_redacted": false
}
הערות שדה:
byok_usd— הוצאות שחויבו במפתחות ה-API של הספק שלך.platform_usd— חלק ההוצאות שרץ על הפלטפורמה במקום על המפתח שלך.input_usd,output_usd,cache_creation_usd,cache_read_usd— רכיבי העלות המרכיבים אתtotal_usd.by_provider— הוצאות בדולר ארה"ב לפי שם ספק ה-AI.- נתוני דולר ארה"ב מוחזרים רק לחשבונות המשתמשים במפתח ספק משלהם. עבור חשבונות המשלמים באמצעות קרדיט, כל שדה דולרי הוא אפס ו-
costs_redactedהואtrue(ספירות הקריאות נשארות גלויות).
סדרות מדדים
מחזירה סדרת עתים אחת או יותר של מדדים בקריאה אחת, מקובצת אופציונלית לפי עד שני ממדים — נקודת הקצה לחיבור תרשים. בקשה אחת יכולה לענות על “נשלחו ונענו ליום, לפי ערוץ, עבור קמפיין זה” ללא צורך בקריאה נפרדת לכל קמפיין.
GET /analytics/series
כל תגובה נושאת מערך labels (ציר הזמן, מאופס לכל הטווח) וכניסה אחת ב-series לכל קבוצה, כאשר כל אחת מחזיקה מערך אחד לכל מדד מבוקש המיושר ל-labels. סדרות מעבר ל-limit אינן מושמטות — הן מתכנסות ל-other_bucket, המחושב כסך הטווח פחות הסדרות שהוחזרו, כך שתרשים מוצג תמיד מסתכם למספרים האמיתיים שלך; truncated הוא true בכל פעם שזה קורה.
מאיפה מגיעים המספרים: sent, delivered, read ו-replied מגיעים מרשומות הודעות, הנושאות את הערוץ ומספר השולח. booked, contact_created ו-credits_spent מגיעים מזרם האירועים, שאינו נושא מספר שולח, לכן מדדים אלו נוחתים בדלי ה-null-מספר כאשר אתה מקבץ לפי number.
conversations סופר את השיחות (סשנים של צ’אט) שהחלו בכל דלי, ו-conversation_credits את העלות של אותן שיחות, מחושבות בדיוק כמו עלויות שיחה. חלקו את האחד בשני לפי דלי עבור העלות הממוצעת לשיחה לאורך זמן. כאשר אתם מקבצים או מסננים לפי קמפיין, סוכן, ערוץ או מספר, שיחה נספרת עבור זה שההודעה הראשונה שלה שייכת אליו.
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תחילת הטווח, YYYY-MM-DD. ברירת המחדל היא לפני 30 יום. |
to |
לא | סוף הטווח, YYYY-MM-DD. ברירת המחדל היא היום. |
metrics |
לא | רשימה מופרדת בפסיקים מתוך sent, ai_sent, human_sent, automated_sent, delivered, read, replied, booked, contact_created, credits_spent, conversations, conversation_credits. ברירת המחדל היא sent,replied. מדד לא ידוע יחזיר 400. |
group_by |
לא | רשימה מופרדת בפסיקים של עד שני ממדים מתוך date, campaign, channel, agent, number. date מתקבל אך אין לו השפעה — כל תגובה כבר נושאת את ציר הזמן. השמט עבור סדרה אחת ברמת החשבון כולו. |
granularity |
לא | day (ברירת מחדל), week, או month. דליי שבוע מתחילים ביום שני, דליי חודש ב-1 לחודש. |
limit |
לא | כמה סדרות להחזיר לפני שהשאר יאוחדו ל-other_bucket, 1–50. ברירת המחדל היא 12. |
campaign_id |
לא | ספור רק פעילות השייכת לקמפיין זה. מיושן; העדף את agent_id. |
agent_id |
לא | ספור רק פעילות השייכת לסוכן AI זה. |
channel |
לא | ספור רק פעילות בערוץ זה, לדוגמה whatsapp. |
טווח התאריכים של נקודת קצה זו מוגבל ל-92 ימים (מחמיר יותר מהמגבלה של 366 ימים המשמשת במקומות אחרים בדף זה).
cURL
curl "https://api.youraiconnector.com/v1/analytics/series?from=2026-05-01&to=2026-05-31&metrics=sent,replied,booked&group_by=campaign,channel&limit=10&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({
from: "2026-05-01",
to: "2026-05-31",
metrics: "sent,replied,booked",
group_by: "campaign,channel",
limit: "10",
});
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/series?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/series",
headers={"X-API-Key": "YOUR_API_KEY"},
params={
"from": "2026-05-01",
"to": "2026-05-31",
"metrics": "sent,replied,booked",
"group_by": "campaign,channel",
"limit": 10,
},
)
data = res.json()
תגובה
{
"success": true,
"from": "2026-05-01",
"to": "2026-05-31",
"granularity": "day",
"labels": ["2026-05-01", "2026-05-02"],
"group_by": ["campaign", "channel"],
"metrics": ["sent", "replied", "booked"],
"series": [
{
"key": {
"campaign_id": "campaign123",
"campaign_name": "Spring Promo",
"channel": "whatsapp"
},
"total": 812,
"metrics": {
"sent": [40, 35],
"replied": [12, 9],
"booked": [2, 1]
}
}
],
"other_bucket": {
"series_count": 6,
"total": 340,
"metrics": {
"sent": [18, 20],
"replied": [5, 6],
"booked": [0, 1]
}
},
"truncated": true
}
הערות שדה:
key— הזהות של סדרה אחת. רק המפתחות עבור ממדי ה-group_byהמבוקשים נוכחים; ממד שערכו אינו ידוע עבור שורה (הודעה ללא קמפיין, אירוע ללא ערוץ) חוזר כ-nullבמקום להיות מושמט, כך שהסדרות עדיין מסתכמות לסכומים הכוללים.other_bucket—nullכאשר שום דבר לא התכנס.- נקודת קצה זו מחזירה
503עם"error_code": "analytics_unavailable"כאשר מסד הנתונים של הדיווח אינו יכול לענות עבור החשבון שלך, במקום200מלא באפסים — תרשים מאופס היה נקרא כעובדה.
תוצאות שיחה
מחזיר את תוצאות השיחה בטווח תאריכים: ספירה יומית של שיחות תחת כל תגית איש קשר, בתוספת סיכומי טווח עבור תשובות, הזמנות, העברות לנציג אנושי, ושיחות שאיש הקשר שלהן אינו נושא תגית.
התגית היא תגית איש קשר: התגיות שסוכן ה-AI שלך מחיל באמצעות כלי התגיות שלו, כללי תיוג אוטומטי, ה-API או הצוות שלך. זו אינה תווית לכל שיחה. שיחה נספרת תחת התגיות שאיש הקשר שלה נושא בזמן הבקשה, כך שאיש קשר עם מספר תגיות נספר פעם אחת תחת כל אחת מהן, ותגית שמוסרת מאוחר יותר תוסר גם מימים קודמים. תן לסוכן שלך תגית סגירה אחת לכל תוצאה (למשל resolved_ai, handoff_asked_for_human) ונקודת קצה זו תחזיר את נתוני ההכלה וסיבות ההעברה לאורך זמן.
GET /analytics/outcomes
העבר group_by=tag כדי לכווץ את ציר הזמן ולקבל סכומי טווח לכל תג בלבד — במצב זה labels ריק וכל מערך counts של תג ריק, בעוד total עדיין מאוכלס.
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תחילת טווח, YYYY-MM-DD. ברירת המחדל היא לפני 30 יום. |
to |
לא | סוף טווח, YYYY-MM-DD. ברירת המחדל היא היום. |
campaign_id |
לא | ספירת שיחות רק עם אנשי קשר הנמצאים כעת בקמפיין זה. מיושן; עדיף להשתמש ב-agent_id. |
agent_id |
לא | ספירת תוצאות השייכות לסוכן AI זה בלבד. |
group_by |
לא | date (ברירת מחדל) שומר על ספירות יומיות; tag מאחד לסיכומי טווח. |
טווח התאריכים של נקודת קצה זו מוגבל ל-92 ימים.
cURL
curl "https://api.youraiconnector.com/v1/analytics/outcomes?from=2026-05-01&to=2026-05-31&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ from: "2026-05-01", to: "2026-05-31" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/outcomes?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/outcomes",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"from": "2026-05-01", "to": "2026-05-31"},
)
data = res.json()
תגובה
{
"success": true,
"from": "2026-05-01",
"to": "2026-05-31",
"group_by": "date",
"labels": ["2026-05-01", "2026-05-02"],
"by_tag": [
{ "tag_id": "tag_8f2k1", "tag": "interested", "total": 84, "counts": [3, 5] },
{ "tag_id": "tag_c91xq", "tag": "not_interested", "total": 40, "counts": [1, 2] },
{ "tag_id": null, "tag": null, "total": 12, "counts": [0, 1] }
],
"totals": {
"sessions": 260,
"replied": 210,
"booked": 35,
"human_alerted": 18,
"unresolved": 12
}
}
הערות שדה:
by_tag[].tag/by_tag[].tag_id— השם והמזהה של תגית איש הקשר; שניהםnullבשורה של שיחות שאיש הקשר שלהן אינו נושא תגית. לכל היותר 20 תגיות יוחזרו, לפי סדר נפח גבוה תחילה.totals.sessions— שיחות נפרדות שהחלו בטווח. זה אינו הסכום שלby_tag[].total: איש קשר עם שלוש תגיות תורם שיחה אחת לשלוש שורות.totals.unresolved— שיחות שאיש הקשר שלהן אינו נושא תגית.totals.human_alerted— שיחות שהועברו לנציג אנושי; זה נרשם בכל העברה ולא הוצג בעבר על ידי אף נקודת קצה.- אותה התנהגות
503/analytics_unavailableכמו בסדרות מדדים כאשר מסד הנתונים של הדיווח אינו יכול להשיב.
עלויות שיחה
מחזיר את העלות הממוצעת של שיחה לאורך טווח תאריכים, מחולקת לפי אופן התנהלותה. זהו המספר להצגה ללקוח כהחזר על השקעה: מה עולה שיחה שה-AI טיפל בה לבדו, לצד שיחה שהצוות שלך נאלץ להתערב בה.
GET /analytics/conversation-costs
| פרמטר | נדרש | תיאור |
|---|---|---|
from |
לא | תאריך התחלה, YYYY-MM-DD, כולל. ברירת המחדל היא לפני 30 יום. |
to |
לא | תאריך סיום, YYYY-MM-DD, כולל. ברירת המחדל היא היום. טווח מקסימלי של 31 ימים. |
sub_account_id |
לא | מפתחות סוכנות: דווח על חשבון לקוח זה במקום על שלך. |
curl "https://api.youraiconnector.com/v1/analytics/conversation-costs?from=2026-08-26&to=2026-09-24&apiKey=YOUR_API_KEY"
תגובה
{
"success": true,
"from": "2026-08-26",
"to": "2026-09-24",
"sessions": 564,
"total_credits": 5957,
"summary": {
"contained": { "sessions": 503, "credits": 5168, "avg_credits": 10.2744 },
"handed_off": { "sessions": 50, "credits": 781, "avg_credits": 15.62 },
"no_ai": { "sessions": 11, "credits": 8, "avg_credits": 0.7273 }
},
"sessions_truncated": false
}
הערות שדה:
- סופר שיחות (סשנים של צ’אט) שהחלו בטווח, עם הקרדיטים שחויבו בתוך חלון הזמן של כל שיחה, בניכוי החזרים. קרדיטים שהוצאו מחוץ לכל שיחה (סיכומים יומיים, עמלות חודשיות, אוטומציות שלא הופעלו על ידי איש קשר, כגון טריגרים של webhook או RSS) אינם חלק מכך. הרצות אוטומציה ושלבי AI שהופעלו על ידי איש קשר נספרים כחלק מהשיחה של אותו איש קשר מאז ה-26 בספטמבר 2026.
contained: ה-AI השיב ואף אחד מהצוות שלכם לא היה צריך להתערב.handed_off: מישהו שלח הודעה לאחר שה-AI השיב, או שה-AI התריע בפני אדם.no_ai: ה-AI מעולם לא השיב (למשל צ’אטים שהצוות שלכם מטפל בהם כשה-AI מושהה).- נספרות לכל היותר 20,000 שיחות;
sessions_truncatedהואtrueכאשר הטווח הכיל יותר, לכן צמצמו אותו. - דורש הרשאת חיוב עבור חברי צוות. אותה עמדת
503/analytics_unavailableכמו בסדרות מדדים. - לכל איש קשר, אותו פיצול נמצא ב-קבלת עלות איש קשר.
תובנות לוח מחוונים
מחזיר את מטען לוח המחוונים המלא עבור טווח תאריכים בקריאה אחת: מפת חום של שיעור המענה לפי יום בשבוע ושעה, טבלת מובילי הקמפיין, נפח לפי ערוץ, סכומים מדויקים לפי חיבור, פירוט מדדים יומי (ברמת החשבון, לפי ערוץ ולפי מספר), מקורות אנשי הקשר, זמן תגובה בתיבת הדואר הנכנס ופיד פעילות אחרונה. זהו מטען הדיווח העשיר ביותר ב-API — הוא מפעיל ישירות את לוח המחוונים בתוך האפליקציה.
GET /analytics/dashboard-insights
| פרמטר | נדרש | תיאור |
|---|---|---|
startDate |
כן | תחילת טווח, YYYY-MM-DD. |
endDate |
כן | סוף טווח, YYYY-MM-DD. |
campaignId |
לא | כלול רק פעילות השייכת לקמפיין זה (campaign_id מתקבל גם כן). מיושן; העדף את agent_id. |
agent_id |
לא | כלול רק פעילות השייכת לסוכן AI זה (agentId מתקבל גם כן). תחת היקף של סוכן, לוח המובילים של הקמפיין נבנה מהפעילות של אותו סוכן בלבד. |
tag_ids |
לא | מזהי תגיות מופרדים בפסיק (tagIds מתקבל גם כן, עד 25). מצמצם את כל הבלוק לאנשי קשר שנושאים כרגע כל אחת מתגיות אלו — אותו כלל “התאמה לכל” שבו משתמש המסנן בדף אנשי הקשר. משתלב עם campaignId או agent_id. שורות ללא איש קשר (טעינות אשראי ברמת החשבון) יוצאות מתצוגה מוגבלת בתגית, והבלוק conversation_outcomes חוזר כ-null תחת היקף תגית. מחזיר 400 עם error_code: 400 כאשר מסנן התגיות אינו זמין עבור החשבון. |
tag_match |
לא | כיצד tag_ids משתלבים (tagMatch מתקבל גם כן): any (ברירת מחדל — איש קשר צריך אחת מהתגיות) או all (איש קשר צריך את כולן). מתעלמים מכך כאשר tag_ids חסר; כל ערך אחר הוא 400 כאשר tag_ids נוכח. |
granularity |
לא | גודל דלי עבור metricDailyBreakdown בלבד: day (ברירת מחדל), week (מבוסס יום שני, כמו /analytics/series) או month. ה-labels שלו הם אז התחלות הדלי, והבלוק נושא granularity בחזרה. כל בלוק אחר אינו מושפע. |
נקודת קצה זו משתמשת ב-startDate/endDate (לא ב-from/to) מכיוון שהיא חולקת את המימוש שלה עם לוח המחוונים בתוך האפליקציה. הטווח מוגבל ל-92 ימים והוא נחתך, לא נדחה, כאשר הוא רחב יותר.
Null פירושו לא זמין, לא אפס. מספר בלוקים (
numberStats,channelDailySeries,metricDailyBreakdown,contactsByCountry) מחושבים ממסד הנתונים של הדיווחים וחוזרים כ-nullכאשר הוא אינו יכול לספק תשובה עבור החשבון שלך. אל תציג בלוקnullכתרשים ריק.
cURL
curl "https://api.youraiconnector.com/v1/analytics/dashboard-insights?startDate=2026-05-01&endDate=2026-05-31&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ startDate: "2026-05-01", endDate: "2026-05-31" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/dashboard-insights?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/dashboard-insights",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"startDate": "2026-05-01", "endDate": "2026-05-31"},
)
data = res.json()
תגובה (מקוצרת — מטען זה גדול; ראה את הפניית ה-API עבור הסכימה המלאה)
{
"success": true,
"data": {
"heatmap": {
"buckets": [
{ "weekday": 1, "hour": 9, "sent": 12, "replied": 5, "replyRate": 0.42 }
]
},
"topCampaigns": [
{ "campaignId": "campaign123", "name": "Spring Promo", "sent": 420, "replied": 180, "booked": 22, "replyRate": 0.43, "creditsSpent": 210.5 }
],
"channelVolume": [
{ "channel": "whatsapp", "sent": 800, "received": 540, "lastMessageAt": "2026-05-31T14:02:11.000Z" }
],
"inboxSla": { "medianFirstResponseMs": 92000, "sampleSize": 140 },
"activityFeed": [
{ "id": "evt_1", "kind": "booked", "at": "2026-05-31T14:02:11.000Z", "contactId": "contact456", "contactName": "Jane Smith", "campaignId": "campaign123", "campaignName": "Spring Promo", "label": "Jane Smith booked an appointment" }
],
"numberStats": null,
"channelDailySeries": null,
"metricDailyBreakdown": null,
"contactsByCountry": null,
"ai_human_split": null
}
}
הערות שדה:
heatmap.buckets[].weekday—0הוא יום ראשון עד6הוא יום שבת.numberStats,channelDailySeries,metricDailyBreakdown,contactsByCountry,ai_human_split— כל אחד מהם באופן עצמאיnullכאשר מסד הנתונים של הדיווחים אינו זמין עבור החשבון שלך; כל שאר הבלוקים עדיין יוחזרו.
תובנות AI ללוח המחוונים
מחזיר שלוש תובנות קצרות שנכתבו על ידי AI לגבי הודעות החשבון לאורך טווח תאריכים: הצלחה אחת, דבר אחד שכדאי לשים לב אליו, וטיפ אחד — משפטים שניתן להדביק ישירות לתוך דוח במקום מספרים שעדיין צריך לפרש. נוצר מתוך מדדי ההודעות של החשבון בלבד.
GET /analytics/dashboard-ai-insights
| פרמטר | נדרש | תיאור |
|---|---|---|
startDate |
כן | תחילת טווח, YYYY-MM-DD. |
endDate |
כן | סוף טווח, YYYY-MM-DD. |
נקודת קצה זו היא ברמת החשבון — היא אינה דורשת הגדרת קמפיין או סוכן.
cURL
curl "https://api.youraiconnector.com/v1/analytics/dashboard-ai-insights?startDate=2026-05-01&endDate=2026-05-31&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ startDate: "2026-05-01", endDate: "2026-05-31" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/dashboard-ai-insights?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/dashboard-ai-insights",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"startDate": "2026-05-01", "endDate": "2026-05-31"},
)
data = res.json()
תגובה
{
"success": true,
"data": {
"insights": [
{ "tone": "win", "title": "Reply rate is up", "detail": "Your reply rate climbed to 43% this period, up from 36% the period before." },
{ "tone": "watch", "title": "Bookings slowed midweek", "detail": "Wednesday bookings dropped to a third of Monday's, worth a look at your Wednesday follow-up timing." },
{ "tone": "tip", "title": "Re-send to non-repliers", "detail": "212 contacts received a message but never replied — a short follow-up template often recovers 10-15% of them." }
]
}
}
חסר startDate או endDate יחזיר 400.
ציר זמן של פעילות ישות
מחזיר את הפעילות של איש קשר, עסקה או משימה בודדים כציר זמן אחד, מהחדש לישן: מה קרה ומתי, כולל הודעות, פגישות, הערות ושינויי סטטוס. השתמש בו כדי לענות על השאלה “מה קרה עם האדם הזה” מבלי לחבר יחד מספר נקודות קצה של רשימות.
GET /analytics/entity-activity
| פרמטר | נדרש | תיאור |
|---|---|---|
entityType |
כן | contact, deal, או task. |
entityId |
כן | מזהה הרשומה שעבורה יש להחזיר את ציר הזמן. |
cURL
curl "https://api.youraiconnector.com/v1/analytics/entity-activity?entityType=contact&entityId=contact456&apiKey=YOUR_API_KEY"
JavaScript
const params = new URLSearchParams({ entityType: "contact", entityId: "contact456" });
const res = await fetch(`https://api.youraiconnector.com/v1/analytics/entity-activity?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/analytics/entity-activity",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"entityType": "contact", "entityId": "contact456"},
)
data = res.json()
תגובה
{
"success": true,
"data": {
"items": [
{
"id": "evt_9",
"kind": "appointment_booked",
"at": "2026-05-31T14:02:11.000Z",
"label": "Booked an appointment for June 3",
"detail": "Consultation call, 30 minutes"
},
{
"id": "evt_8",
"kind": "message_replied",
"at": "2026-05-31T13:58:02.000Z",
"label": "Replied: \"Yes, that time works\""
}
]
}
}
ערך entityType/entityId חסר או לא תקין יחזיר 400. ישות שאינה קיימת בחשבונך תחזיר 404, כך שמזהים של חשבונות אחרים נשארים בלתי ניתנים לניחוש.
ספירות אירועים מצטברות (Legacy)
מחזיר את אותן ספירות אירועים מצטברות כמו סיכום נפח הודעות, אך במבנה camelCase (contactCreated במקום contact_created, byDate במקום by_date) שחלק מהאינטגרציות הישנות נבנו לפיו. העדף את /analytics/summary עבור אינטגרציות חדשות — נקודת קצה זו קיימת רק כדי שלוח המחוונים באפליקציה וה-API יחלקו מימוש אחד.
GET /analytics/aggregate
| פרמטר | נדרש | תיאור |
|---|---|---|
startDate |
לא | תחילת טווח, תאריך ISO או תאריך-שעה. ברירת המחדל היא אותו חלון שבו משתמש /analytics/summary. |
endDate |
לא | סוף טווח, תאריך ISO או תאריך-שעה. |
campaignId |
לא | ספור רק אירועים השייכים לקמפיין זה (campaign_id מתקבל גם כן). מיושן; העדף את agent_id. |
agent_id |
לא | ספור רק אירועים השייכים לסוכן AI זה (agentId מתקבל גם כן). |
tag_ids |
לא | מזהי תגיות מופרדים בפסיק (tagIds מתקבל גם כן, עד 25). ספור רק אירועים שאיש הקשר שלהם נושא כרגע כל אחת מתגיות אלו. משתלב עם campaignId או agent_id. אירועים ללא איש קשר (creditsRecharged) אינם נכללים תחת היקף תגית. |
tag_match |
לא | כיצד tag_ids משתלבים (tagMatch מתקבל גם כן): any (ברירת מחדל) או all (רק אנשי קשר הנושאים את כל התגיות). מתעלמים מכך כאשר tag_ids חסר; כל ערך אחר הוא 400 כאשר tag_ids נוכח. |
cURL
curl "https://api.youraiconnector.com/v1/analytics/aggregate?startDate=2026-05-01&endDate=2026-05-31&apiKey=YOUR_API_KEY"
תגובה
{
"success": true,
"data": {
"from": "2026-05-01",
"to": "2026-05-31",
"total": 1240,
"byAnalyticType": {
"total": 1240,
"sent": 800,
"delivered": 760,
"read": 540,
"replied": 210,
"booked": 35,
"contactCreated": 120,
"creditsSpent": 412.5,
"creditsRecharged": 500
},
"byDate": [
{ "date": "2026-05-01", "byAnalyticType": { "total": 40, "sent": 25, "delivered": 24, "read": 18, "replied": 7, "booked": 1, "contactCreated": 4, "creditsSpent": 13.5, "creditsRecharged": 0 } }
]
}
}
ריכוז תתי-חשבונות של סוכנות
שגיאות ב-Analytics API
נקודות הקצה של Analytics מחזירות את מעטפת השגיאה הסטנדרטית:
{
"success": false,
"error": "Date range too large. Maximum is 366 days."
}
בנקודת קצה של ניתוח נתונים, פורמט תאריך לא תקין או חלון מחוץ לטווח יחזיר 400, ו-campaign_id או agent_id לא ידועים יחזירו 404. שליחת גם campaign_id וגם agent_id בנקודת קצה שמקבלת את שניהם היא גם 400 — העבר לכל היותר אחד. נקודות הקצה של דיווח מבוסס PG בלבד (סדרות מדדים, תוצאות שיחה, ריכוז סוכנות) מחזירות 503 עם "error_code": "analytics_unavailable" במקום 200 מלא באפסים כאשר מסד הנתונים של הדיווח אינו יכול להשיב עבור חשבונך — נסה שוב בקרוב. הקודים המשותפים שכל נקודת קצה יכולה להחזיר — 401, 403 (התוכנית שלך אינה כוללת גישת API, או, בריכוז סוכנות, החשבון שלך אינו Agency/Dev), 429 (מגבלת קצב) ו-500 — מפורטים עם הנחיות לניסיון חוזר ב-שגיאות ועימוד.
צעדים הבאים
- אימות — ארבע הדרכים לאימות בקשה.
- שגיאות ומגבלות קצב — קודי סטטוס והמגבלה של 300 בקשות לדקה.
- API של סוכני בינה מלאכותית — הסוכנים שניתן לסנן לפיהם נתונים אלו.