Team API
הצוות שלך הוא כל מי שעובד בתוך החשבון שלך מלבדך — מנהלים, נציגים וצופים בעלי הרשאת קריאה בלבד — בתוספת ההזמנות ששלחת והמחלקות שאליהן ארגנת אותם. ה-Team API הוא הגרסה התכנותית של הגדרות ← צוות: הוספה והסרה של אנשים, הגדרה של מה כל אחד מהם יכול לראות ולעשות, שליחה ומעקב אחר הזמנות, וניהול מחלקות.
כל נקודות הקצה להלן יחסיות לכתובת ה-URL הבסיסית https://api.youraiconnector.com/v1. עבור גרסת לוח הבקרה של כל מה שמופיע בדף זה, ראה ניהול צוות.
אימות: נקודות קצה אלו דורשות אדם מחובר
זהו החלק היחיד ב-API שמפתח API אינו יכול להשתמש בו. כל נקודת קצה של /team, למעט אלו של מחלקות, חייבת להיקרא עם אסימון Firebase ID מתוך הפעלה מחוברת:
Authorization: Bearer <Firebase ID token>
שלח מפתח API במקום זאת והבקשה תידחה עם 401:
{
"success": false,
"error_code": 401,
"error": "This endpoint requires a Firebase ID token (Authorization: Bearer <token>)."
}
הסיבה לכך היא שנקודות קצה אלו מחליטות מה לעשות בהתבסס על מי שמחובר: התפקיד שלך, התקרה של מה שמותר לך להעניק למישהו אחר, והאם אתה עובד כרגע בתוך חשבון אחר. מפתח API הוא אינטגרציה, לא אדם, לכן אין אף אחד שעליו הכללים הללו יכולים לחול.
בפועל, המשמעות היא ש-Team API מיועד לאפליקציה של צד ראשון עם משתמש Your AI Connector מחובר (ראה אימות ← אסימון Firebase ID). אינטגרציית שרת-לשרת אינה יכולה לנהל חברי צוות — אין דרך להנפיק אחד מהאסימונים הללו מחוץ לאפליקציה.
החריג: ארבע נקודות הקצה של מחלקות הן נקודות קצה רגילות של API. הן מקבלות את מפתח ה-API שלך בדיוק כמו שאר ה-API, וכן הפעלה מחוברת.
כל תגובה בדף זה עוקבת אחר המעטפת הרגילה: success: true בתוספת השדות של נקודת הקצה ברמה העליונה, או success: false עם error ו-error_code כאשר משהו משתבש.
תפקידים והרשאות
לכל חבר צוות יש תפקיד אחד, שקובע את ברירת המחדל של הגישה שלו ב-12 אזורים באפליקציה. לאחר מכן ניתן לעקוף אזורים בודדים.
| תפקיד | ערך | סיכום |
|---|---|---|
| מנהל (Admin) | admin |
הכל מלבד פעולות ברמת החיוב של בעל החשבון. |
| עורך (Editor) | editor |
יכול ליצור ולשנות דברים. מוצג כנציג באפליקציה. |
| צופה (Viewer) | viewer |
קריאה בלבד. |
כל אזור מוגדר לאחת מארבע רמות: none (מוסתר), view (קריאה בלבד), edit (יצירה ושינוי), full (כולל מחיקה).
| אזור | מנהל | עורך | צופה |
|---|---|---|---|
campaigns |
מלא | עריכה | צפייה |
contacts |
מלא | עריכה | צפייה |
messages |
מלא | עריכה | צפייה |
appointments |
מלא | עריכה | צפייה |
settings |
עריכה | צפייה | ללא |
billing |
עריכה | ללא | ללא |
team_management |
עריכה | ללא | ללא |
analytics |
מלא | צפייה | צפייה |
phone_numbers |
עריכה | ללא | ללא |
integrations |
עריכה | ללא | ללא |
faqs |
מלא | עריכה | צפייה |
daily_summaries |
מלא | צפייה | צפייה |
כדי לחרוג מברירות המחדל של התפקיד, שלח permission_overrides — מערך של אובייקטי { "area": ..., "level": ... }. כל רשומה מחליפה את ברירת המחדל של התפקיד עבור אותו אזור ספציפי; כל מה שלא תפרט ישמור על ברירת המחדל של התפקיד.
"permission_overrides": [
{ "area": "analytics", "level": "full" },
{ "area": "billing", "level": "none" }
]
מי יכול לקרוא לנקודות קצה אלו
- בעל החשבון תמיד יכול לעשות הכל.
- חבר צוות זקוק ל-
team_managementב-viewכדי לקרוא את רשימת הצוות ואת רשימת ההזמנות, ול-editכדי להוסיף, לשנות, להשעות, להסיר, להזמין, לבטל או לשלוח מחדש. למנהלי מערכת ישeditכברירת מחדל; לעורכים ולצופים ישnone, לכן כברירת מחדל רק מנהלי מערכת יכולים לנהל את הצוות. - אף אחד לא יכול להעניק גישה ברמה גבוהה משלו. אם תנסה לתת למישהו רמה שאין לך בעצמך — או לערוך, להשעות או להסיר מישהו שהגישה שלו כבר רחבה משלך — הבקשה תידחה עם
403והודעה המציינת את האזור.
אובייקט חבר הצוות
GET /team/members מחזיר אחד מאלה עבור כל חבר:
| שדה | סוג | תיאור |
|---|---|---|
member_uid |
string | מזהה המשתמש של החבר עצמו. זהו ה-{memberUid} בנתיבים להלן. |
account_owner_uid |
string | החשבון שבו הוא חבר. |
member_email |
string | כתובת האימייל שלו. |
member_display_name |
string | השם שמוצג עבורו באפליקציה. |
role |
string | admin, editor או viewer. |
permission_overrides |
array | החריגים שלו לכל אזור. [] כאשר הוא מסתמך אך ורק על ברירות המחדל של התפקיד. |
status |
string | active או suspended. |
auto_assign_enabled |
boolean | null | האם ניתן להקצות לו אנשי קשר חדשים באופן אוטומטי. null אומר שזה מעולם לא שונה, מה שמתנהג כ-true. |
created_by |
string | מי הוסיף אותו. |
created_at |
string | null | חותמת זמן בפורמט ISO 8601. |
updated_at |
string | null | חותמת זמן בפורמט ISO 8601. |
חברים שהוסרו לא מוחזרים — הרשימה כוללת חברים פעילים ומושעים בלבד.
מגבלות נראות הן לכתיבה בלבד כאן.
contact_scope,contact_scope_axesו-sub_account_access(ראה הגבלת מה שחבר יכול לראות) ניתנים להגדרה בעת יצירה, עדכון והזמנה, אך נקודת קצה זו אינה מחזירה אותם.
רשימת חברי צוות
GET /team/members
מחזיר את רשימת הצוות בתוספת ספירת המושבים של התוכנית שלך, כך שתוכל להציג “3 מתוך 5 מושבים” ולדעת מתי הזמנה עומדת להידחות.
cURL
curl "https://api.youraiconnector.com/v1/team/members" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/team/members", {
headers: { Authorization: `Bearer ${idToken}` },
});
const { members, seat_limit, seats_used } = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/team/members",
headers={"Authorization": f"Bearer {id_token}"},
)
data = res.json()
תגובה
{
"success": true,
"members": [
{
"account_owner_uid": "owner_uid_123",
"member_uid": "uid_alice",
"member_email": "alice@example.com",
"member_display_name": "Alice Chen",
"role": "admin",
"permission_overrides": [],
"status": "active",
"auto_assign_enabled": true,
"created_by": "owner_uid_123",
"created_at": "2026-05-01T10:00:00.000Z",
"updated_at": "2026-06-02T09:15:00.000Z"
}
],
"seat_limit": 5,
"seats_used": 3
}
seat_limit הוא null כאשר לתוכנית שלך אין מכסת מושבים. seats_used סופר חברים פעילים בלבד — השעיה או הסרה של מישהו מפנה את המושב שלו באופן מיידי.
הוספת חבר צוות ישירות
POST /team/members
מצרף מישהו לצוות שלך באופן מיידי, ללא צורך בהזמנה.
פעולה זו אינה שולחת דוא"ל. איש אינו מקבל הודעה על כך שנוסף, ואם לא היה להם חשבון Your AI Connector קיים, לחשבון שנוצר עבורם אין סיסמה, לכן הם לא יוכלו להיכנס עד שיאפסו אותה. השתמש ב-שלח הזמנה אלא אם כן יש לך דרך משלך להודיע לאדם ולדאוג לכך שייכנס.
שדות הבקשה
| שדה | נדרש | תיאור |
|---|---|---|
email |
כן | כתובת הדוא"ל של חבר הצוות. |
display_name |
כן | השם שיוצג עבורו באפליקציה. |
role |
כן | admin, editor או viewer. |
permission_overrides |
לא | חריגות לפי אזור מברירת המחדל של התפקיד. |
contact_scope |
לא | all או assigned — ראה הגבלת מה שחבר יכול לראות. |
contact_scope_unassigned |
לא | עם assigned, אפשר להם גם לראות אנשי קשר שעדיין לא שייכים לאיש. |
contact_scope_axes |
לא | הגבל אותם לסוכנים, ערוצים או מחלקות בעלי שם. |
sub_account_access |
לא | סוכנויות בלבד — אילו תת-חשבונות לקוח הם רשאים לפתוח. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/members" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "sam@example.com",
"display_name": "Sam Rivera",
"role": "editor"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/team/members", {
method: "POST",
headers: {
Authorization: `Bearer ${idToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
email: "sam@example.com",
display_name: "Sam Rivera",
role: "editor",
}),
});
const { member_uid } = await res.json();
תגובה — 201 Created
{
"success": true,
"team_member_id": "owner_uid_123_uid_sam",
"member_uid": "uid_sam",
"message": "Team member created successfully."
}
| סטטוס | מתי |
|---|---|
400 |
email, display_name או role חסרים, התפקיד אינו אחד משלושת התפקידים, או שניסית להוסיף את עצמך. |
403 |
אין לך הרשאה לנהל את הצוות, או שניסית להעניק גישה רחבה יותר משלך. |
409 |
אותו אדם כבר חבר פעיל בצוות שלך. |
429 |
מכסת המושבים בצוות של התוכנית שלך מלאה. |
הוספת אדם שהיה בעבר מושעה או הוסר מחזירה אותו לפעילות במקום להיכשל.
עדכון חבר צוות
PATCH /team/members/{memberUid}
משנה את התפקיד, ההרשאות, הנראות, גישת הלקוח של חבר, או האם הוא לוקח חלק בהקצאת אנשי קשר אוטומטית. שלח רק את השדות שברצונך לשנות; כל מה שתשמיט ישמור על ערכו הנוכחי.
שדות הבקשה
| שדה | תיאור |
|---|---|
role |
admin, editor או viewer. |
permission_overrides |
מחליף את כל רשימת החריגות שלו. שלח [] כדי להחזיר אותו לברירות המחדל של התפקיד. |
status |
רק active מתקבל, כדי להחזיר חבר מושעה. כדי להשעות מישהו, השתמש ב-נקודת הקצה להשעיה. |
auto_assign_enabled |
true או false. |
contact_scope |
all או assigned. |
contact_scope_unassigned |
true או false. |
contact_scope_axes |
ראה הגבלת מה שחבר יכול לראות. |
sub_account_access |
סוכנויות בלבד. |
זוהי נקודת הקצה היחידה שבה
nullפירושו “נקה”. שליחת"contact_scope": null,"contact_scope_axes": nullאו"sub_account_access": nullמסירה את ההגבלה לחלוטין ומחזירה את החבר למצב שבו הוא רואה הכל. בעת יצירה והזמנה,nullפשוט אומר “לא סופק”.
cURL
curl -X PATCH "https://api.youraiconnector.com/v1/team/members/uid_sam" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"role": "admin",
"permission_overrides": [{ "area": "billing", "level": "none" }]
}'
תגובה
{
"success": true,
"message": "Team member updated successfully."
}
| סטטוס | מתי |
|---|---|
400 |
ערך status או auto_assign_enabled לא תקין, או שניסית להפעיל מחדש חבר שהוסר (חברים שהוסרו חייבים לקבל הזמנה מחדש). |
403 |
אין לך הרשאה, או שהשינוי יצור או יערוך גישה רחבה יותר משלך. |
404 |
אין חבר צוות כזה. |
השעיית חבר צוות
POST /team/members/{memberUid}/suspend
משעה מישהו: הוא שומר על מקומו בצוות אך מאבד את הגישה. השתמש בזה במקום בהסרה כאשר ההפסקה זמנית — החזר אותם עם PATCH /team/members/{memberUid} ו-{"status": "active"}.
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/members/uid_sam/suspend" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה
{
"success": true,
"message": "Team member suspended successfully."
}
חבר מושעה מפנה את המושב שלו, כך שתוכל להזמין מישהו אחר במקומו. הגישה שלו מסתיימת כאשר אסימון ההפעלה הנוכחי שלו מתרענן בפעם הבאה, מה שיכול לקחת עד שעה — הסר אותם במקום אם אתה זקוק לכך שזה יהיה מיידי.
| סטטוס | מתי |
|---|---|
400 |
ניסית להשעות את בעל החשבון, או חבר שכבר מושעה או הוסר. |
403 |
הגישה שלהם רחבה יותר משלך. |
404 |
אין חבר צוות כזה. |
הסרת חבר צוות
DELETE /team/members/{memberUid}
מסיר אדם מהצוות שלך ומפנה את המושב שלו. הוא מנותק מהמערכת ומאבד גישה לחשבון שלך; פרטי ההתחברות שלו נשארים ללא שינוי.
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/team/members/uid_sam" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה
{
"success": true,
"message": "Team member removed successfully."
}
ההסרה היא קבועה מצדך: לא ניתן להפעיל מחדש חבר שהוסר באמצעות נקודת הקצה של העדכון — הזמן אותו שוב אם שינית את דעתך. כתובת האימייל שלו מוסרת גם מרשימת ההתראות של החשבון שלך.
| סטטוס | מתי |
|---|---|
400 |
ניסית להסיר את בעל החשבון. |
403 |
הגישה שלו רחבה יותר משלך. |
404 |
אין חבר צוות כזה. |
הגבלת מה שחבר יכול לראות
שלושה שדות אופציונליים, המתקבלים ב-הוספה, עדכון ו-הזמנה, קובעים כמה מהחשבון אדם יכול לראות. הם מצטברים: חבר שמוגבל ביותר מאחד מהם, מוגבל על ידי כולם.
contact_scope — all (ברירת המחדל: כל איש קשר ושיחה) או assigned (רק אלו שהוקצו לו). עם assigned, הוסף את "contact_scope_unassigned": true כדי לאפשר לו לראות גם אנשי קשר שעדיין לא שייכים לאף אחד.
contact_scope_axes — מגביל אותו לסוכנים, ערוצים או מחלקות בשמם:
| שדה | סוג | תיאור |
|---|---|---|
agents |
string[] | מזהי סוכנים. הם רואים רק צ’אטים שניתבו לאחד מהסוכנים הללו. מקסימום 200. |
channels |
string[] | שמות ערוצים — whatsapp, whatsapp_web, sms, instagram, instagram_private, messenger, facebook, chat_widget, telegram, line, viber, tiktok, imessage, email, linkedin, skool, custom, custom_channel. מקסימום 200. |
departments |
string[] | מזהי מחלקות (ראה מחלקות). הם רואים רק לידים שסווגו תחתיהם. מקסימום 200. |
include_unrouted |
boolean | כאשר agents מוגדר, הצג גם צ’אטים שאף סוכן לא מטפל בהם. כבוי כברירת מחדל. מתעלמים מכך כאשר agents ריק. |
include_undepartmented |
boolean | כאשר departments מוגדר, הצג גם צ’אטים שאינם באף מחלקה. כבוי כברירת מחדל. מתעלמים מכך כאשר departments ריק. |
מזהי סוכנים ומחלקות לא נבדקים בעת השמירה — מזהה שלא קיים פשוט לא תואם לכלום, מה שמופיע כתיבת דואר נכנס ריקה במקום כשגיאה. שמות ערוצים כן נבדקים: שם לא מזוהה נדחה עם 400.
לא ניתן להגדיר אף אחד משלושת אלו עבור בעל החשבון — בקשה כזו נדחית עם 400.
רשימת הזמנות
GET /team/invites
ההזמנות ששלחת, מהחדשה ביותר לישנה ביותר, כדי שתוכל לראות מי טרם אישר את ההזמנה.
פרמטרים של שאילתה
| פרמטר | נדרש | תיאור |
|---|---|---|
status |
לא | החזר רק הזמנות במצב זה — pending, accepted, declined, cancelled או expired. |
cURL
curl "https://api.youraiconnector.com/v1/team/invites?status=pending" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה
{
"success": true,
"invites": [
{
"id": "inv_abc123",
"account_owner_uid": "owner_uid_123",
"account_owner_display_name": "Acme Ltd",
"invitee_email": "sam@example.com",
"invitee_uid": null,
"role": "editor",
"permission_overrides": [],
"status": "pending",
"created_by": "owner_uid_123",
"created_at": "2026-06-10T12:00:00.000Z",
"expires_at": "2026-06-17T12:00:00.000Z",
"responded_at": null
}
]
}
אסימון ההזמנה (token) לעולם אינו מוחזר — הוא קיים רק בהודעת האימייל שנשלחה.
שליחת הזמנה
POST /team/invites
שולח למישהו הזמנה להצטרף לצוות שלך באמצעות אימייל. זו הדרך הרגילה להוסיף חבר צוות: הוא לוחץ על הקישור, נכנס לחשבון שלו ומאשר. אם אין לו עדיין חשבון Your AI Connector, נוצר עבורו חשבון והאימייל ידריך אותו בתהליך הגדרת סיסמה.
שדות הבקשה
| שדה | נדרש | תיאור |
|---|---|---|
email |
כן | לאן לשלוח את ההזמנה. |
role |
כן | admin, editor או viewer. |
permission_overrides |
לא | חריגים לפי אזור, מיושמים ברגע שהם מאשרים. |
contact_scope |
לא | מיושם כאשר הם מאשרים. |
contact_scope_unassigned |
לא | מיושם כאשר הם מאשרים. |
contact_scope_axes |
לא | מיושם כאשר הם מאשרים. |
sub_account_access |
לא | לסוכנויות בלבד. מיושם כאשר הם מאשרים. |
הגדרת ההרשאות מראש חוסכת את הצורך לערוך את החבר לאחר מכן — הכל מועתק לחברות שלהם ברגע שהם מאשרים.
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/invites" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "email": "sam@example.com", "role": "editor" }'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/team/invites", {
method: "POST",
headers: {
Authorization: `Bearer ${idToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "sam@example.com", role: "editor" }),
});
const { invite_id } = await res.json();
תגובה — 201 Created
{
"success": true,
"invite_id": "inv_abc123",
"message": "Team invite sent successfully."
}
דברים שיש לתכנן
- הזמנות פוקעות לאחר 7 ימים. ניתן לשלוח מחדש הזמנה שפגה, מה שמתחיל תקופה חדשה של 7 ימים.
- הזמנות ממתינות תופסות מקום. בניגוד להוספת חבר ישירות, בדיקת המקומות כאן סופרת חברים פעילים בתוספת הזמנות ממתינות, לכן חשבון שכל המקומות בו תפוסים יקבל סירוב לפני שהאימייל יישלח.
- 20 הזמנות ביום, נספרות לכל חשבון עבור שליחה ושליחה מחדש כאחד.
| סטטוס | מתי |
|---|---|
400 |
email חסר או שהתפקיד אינו תקין. |
403 |
אין לך הרשאה לנהל את הצוות, או שניסית להעניק גישה ברמה גבוהה משלך. |
409 |
קיימת כבר הזמנה ממתינה עבור אימייל זה, או שהאדם כבר נמצא בצוות שלך. |
429 |
המקומות בצוות בתוכנית שלך מלאים, או שהגעת למגבלה של 20 הזמנות ביום. ההודעה error תציין מה מהם. |
ביטול הזמנה
DELETE /team/invites/{inviteId}
מבטל הזמנה לפני שהיא התקבלה. הקישור במייל מפסיק לעבוד.
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/team/invites/inv_abc123" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה
{
"success": true,
"message": "Team invite cancelled."
}
ניתן לבטל הזמנות מסוג pending ו-expired. הזמנה שכבר התקבלה, נדחתה או בוטלה תחזיר 400; הזמנה שאינה שלך תחזיר 403; מזהה לא ידוע יחזיר 404.
שליחה מחדש של הזמנה
POST /team/invites/{inviteId}/resend
שולח את מייל ההזמנה שוב — למקרה שהוא אבד או הגיע לספאם. עובד על הזמנות מסוג pending ו-expired, ומאפס את תוקף ההזמנה ל-7 ימים מהיום.
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/invites/inv_abc123/resend" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה
{
"success": true,
"message": "Team invite resent successfully."
}
המייל החדש מכיל קישור חדש, ו-הקישור הישן ממשיך לעבוד גם הוא, כך שאדם שמוצא את המייל הראשון מאוחר יותר לא נתקע. שליחה מחדש נספרת כחלק ממכסת 20 ההזמנות היומית, והחייאת הזמנה שפג תוקפה בודקת מחדש את המקומות הפנויים שלך — תוכנית מלאה תידחה עם 429.
קבלת הזמנה
POST /team/invites/accept
מקבל הזמנה באמצעות האסימון (token) מתוך מייל ההזמנה, ומצרף את המשתמש המחובר לצוות של אותו חשבון.
זוהי פעולה המבוצעת תחת הזהות האישית שלך. התחבר כעצמך — הפעולה תידחה במכוון עם
403בזמן שאתה עובד בתוך חשבון של מישהו אחר.
שדות הבקשה
| שדה | נדרש | תיאור |
|---|---|---|
invite_token |
כן | האסימון מתוך קישור מייל ההזמנה. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/invites/accept" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "invite_token": "1f4c…" }'
תגובה
{
"success": true,
"team_member_id": "owner_uid_123_uid_sam",
"account_owner_uid": "owner_uid_123",
"message": "Team invite accepted successfully."
}
| סטטוס | מתי |
|---|---|
400 |
invite_token חסר, או שההזמנה מיועדת לחשבון שלך. |
403 |
הסשן פעיל בתוך חשבון אחר, או שההזמנה נשלחה לכתובת אימייל שונה מזו שאיתה אתה מחובר. |
404 |
ההזמנה אינה קיימת או שכבר נעשה בה שימוש. |
429 |
המקומות בחשבון התמלאו בין מועד ההזמנה לבין מועד הקבלה שלך. |
504 |
תוקף ההזמנה פג. בקש מהשולח לשלוח אותה מחדש. |
דחיית הזמנה
POST /team/invites/decline
דוחה הזמנה באמצעות האסימון מתוך המייל. בדומה לקבלה, זוהי פעולה המבוצעת תחת הזהות האישית שלך והיא תידחה בזמן שאתה עובד בתוך חשבון אחר.
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/invites/decline" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "invite_token": "1f4c…" }'
תגובה
{
"success": true,
"message": "Team invite declined."
}
מחלקות
מחלקה היא קבוצה בעלת שם בצוות שלך — מכירות, תמיכת לקוחות, משאבי אנוש. היא מעניקה לליד צוות בעלים, יכולה לתבוע שיחות חדשות בעצמה, וניתן להשתמש בה כדי להגביל את מה שחבר צוות רואה.
ארבע נקודות קצה אלו דורשות מפתח API. בניגוד לשאר הדף הזה, הן מבצעות אימות כמו כל נקודת קצה אחרת ב-API (ראו אימות). הפעלה מחוברת עובדת גם היא: קריאה דורשת
contactsב-view, ויצירה, שינוי או מחיקה דורשיםteam_managementב-edit.
אובייקט המחלקה
| שדה | סוג | תיאור |
|---|---|---|
id |
string | מזהה המחלקה. השתמש בו ב-contact_scope_axes.departments ובנתיבים להלן. |
name |
string | שם הצוות. עד 60 תווים, ייחודי בחשבון. |
color |
string | null | צבע דגש כ-#rrggbb, או null. |
member_uids |
string[] | חברי הצוות במחלקה זו. עשוי לכלול את בעל החשבון. |
auto_assign_enabled |
boolean | האם ליד שסווג תחת מחלקה זו מועבר גם למישהו בה. false אומר שהמחלקה עובדת מתור משותף. |
routing_agents |
string[] | שיחות חדשות המטופלות על ידי סוכני AI אלו מסווגות תחת מחלקה זו באופן אוטומטי. ריק אומר שאין כלל סוכן. |
routing_channels |
string[] | שיחות חדשות בערוצים אלו מסווגות כאן באופן אוטומטי. ריק אומר שאין כלל ערוץ. |
created_by |
string | null | מי יצר אותה. |
כאשר גם routing_agents וגם routing_channels מוגדרים, שיחה חייבת להתאים לשניהם כדי להיות מסווגת כאן — כך אתה נותן לצוות אחד “את סוכן התמיכה, אבל רק ב-WhatsApp”.
חשבון יכול לכלול עד 50 מחלקות.
רשימת מחלקות
GET /team/departments
curl "https://api.youraiconnector.com/v1/team/departments?apiKey=YOUR_API_KEY"
תגובה
{
"success": true,
"departments": [
{
"id": "dep_abc123",
"name": "Sales",
"color": "#2f6fed",
"member_uids": ["uid_alice", "uid_bob"],
"auto_assign_enabled": true,
"routing_agents": [],
"routing_channels": ["whatsapp"],
"created_by": "owner_uid_123"
}
]
}
יצירת מחלקה
POST /team/departments
שדות הבקשה
| שדה | נדרש | תיאור |
|---|---|---|
name |
כן | עד 60 תווים. אסור שיהיה זהה למחלקה קיימת. |
color |
לא | #rrggbb הקסדצימלי, או null. |
member_uids |
לא | מי נמצא בו. כל UID חייב להיות בעל החשבון או חבר צוות פעיל. |
auto_assign_enabled |
לא | ברירת המחדל היא true. |
routing_agents |
לא | מזהי סוכנים שצ’אטים חדשים שלהם מגיעים לכאן. |
routing_channels |
לא | שמות ערוצים שצ’אטים חדשים שלהם מגיעים לכאן — אותה אוצר מילים כמו contact_scope_axes.channels. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/team/departments?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales",
"color": "#2f6fed",
"member_uids": ["uid_alice", "uid_bob"],
"routing_channels": ["whatsapp"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/team/departments", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Sales",
color: "#2f6fed",
member_uids: ["uid_alice", "uid_bob"],
routing_channels: ["whatsapp"],
}),
});
const { department } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/team/departments",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"name": "Sales",
"color": "#2f6fed",
"member_uids": ["uid_alice", "uid_bob"],
"routing_channels": ["whatsapp"],
},
)
department = res.json()["department"]
תגובה — 201 Created
{
"success": true,
"department": {
"id": "dep_abc123",
"name": "Sales",
"color": "#2f6fed",
"member_uids": ["uid_alice", "uid_bob"],
"auto_assign_enabled": true,
"routing_agents": [],
"routing_channels": ["whatsapp"],
"created_by": "owner_uid_123"
}
}
| סטטוס | מתי |
|---|---|
400 |
name חסר או ארוך מדי, color אינו #rrggbb, שם ערוץ אינו מזוהה, UID ברשימה אינו חבר פעיל בצוות זה, או שכבר יש לך 50 מחלקות. |
409 |
מחלקה בשם זה כבר קיימת. |
עדכון מחלקה
PATCH /team/departments/{departmentId}
משנה מחלקה. רק השדות שאתה שולח ישונו.
curl -X PATCH "https://api.youraiconnector.com/v1/team/departments/dep_abc123?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "member_uids": ["uid_alice"], "auto_assign_enabled": false }'
תגובה
{
"success": true,
"department": {
"id": "dep_abc123",
"name": "Sales",
"color": "#2f6fed",
"member_uids": ["uid_alice"],
"auto_assign_enabled": false,
"routing_agents": [],
"routing_channels": ["whatsapp"],
"created_by": "owner_uid_123"
}
}
שליחת שדות שאינם מזוהים מחזירה 400; מחלקה לא ידועה מחזירה 404; שם שמתנגש עם מחלקה אחרת מחזיר 409.
מחיקת מחלקה
DELETE /team/departments/{departmentId}
curl -X DELETE "https://api.youraiconnector.com/v1/team/departments/dep_abc123?apiKey=YOUR_API_KEY"
תגובה
{
"success": true,
"deleted": "dep_abc123"
}
מחיקת מחלקה שמישהו מוגבל אליה מסורבת. התגובה
400מציינת את שמות החברים שהנראות שלהם מצומצמת אליה, כדי שתוכל לשנות את היקף ההרשאות שלהם תחילה. זה מכוון: הסרת ההגבלה בשקט הייתה מעניקה להם גישה לכל בסיס הלקוחות שלך מבלי שיהיה לכך תיעוד.
אנשי קשר שתויקו תחת מחלקה שנמחקה לא עוברים עדכון — הם פשוט מפסיקים להציג מחלקה, ובפעם הבאה שתתייק אותם, זה יישמר.
בדוק את ההרשאות שלך
GET /team/permissions
מחזיר מה מותר לאדם המחובר לעשות בחשבון שבו הוא עובד כרגע. השתמש בזה כדי להסתיר כפתורים שחבר אינו יכול להשתמש בהם, במקום לתת לו לגלות את המגבלה דרך שגיאה.
cURL
curl "https://api.youraiconnector.com/v1/team/permissions" \
-H "Authorization: Bearer FIREBASE_ID_TOKEN"
תגובה — בעל החשבון
{
"success": true,
"role": "owner",
"is_team_mode": false,
"permissions": {
"campaigns": "full",
"contacts": "full",
"messages": "full",
"appointments": "full",
"settings": "full",
"billing": "full",
"team_management": "full",
"analytics": "full",
"phone_numbers": "full",
"integrations": "full",
"faqs": "full",
"daily_summaries": "full"
}
}
תגובה — חבר צוות העובד בתוך חשבון
{
"success": true,
"role": "editor",
"is_team_mode": true,
"permissions": { "campaigns": "edit", "billing": "none", "…": "…" },
"member": {
"uid": "uid_sam",
"email": "sam@example.com",
"display_name": "Sam Rivera",
"account_owner_uid": "owner_uid_123"
}
}
role הוא owner כאשר האדם המחובר הוא בעל החשבון; אחרת, זהו תפקיד הצוות שלו. member קיים רק במצב צוות, ונושא את contact_scope, contact_scope_unassigned ו-contact_scope_axes כאשר החברות שלהם כוללת אותם.
אסימוני הפעלה (Session tokens)
חמישה נקודות קצה מנפיקות אסימון כניסה חד-פעמי למעבר בין חשבונות. כולם עונים באותה דרך:
{
"success": true,
"customToken": "eyJhbGciOi…"
}
האסימון מוחלף בהפעלה (session) עם ה-SDK של לקוח Firebase. זה אינו מפתח API ולא ניתן לשלוח אותו ככזה, וזו הסיבה שנקודות קצה אלו שימושיות רק בתוך אפליקציה של צד ראשון.
| נקודת קצה | מה היא עושה | גוף |
|---|---|---|
POST /team/tokens/team-member |
מאפשרת לחבר צוות להתחיל לעבוד בתוך חשבון שהוא שייך אליו. | account_owner_uid (נדרש) |
POST /team/tokens/return-from-team |
מחזירה אותם החוצה, לחשבון שלהם. | — |
POST /team/tokens/assist |
מאפשרת לצוות Your AI Connector לפתוח חשבון של לקוח כדי לעזור. צוות בלבד. | customerUid |
POST /team/tokens/return-to-admin |
מסיימת הפעלת סיוע ומחזירה את הצוות לחשבון שלהם. | — |
POST /team/tokens/agency-assist |
מאפשרת לסוכנות לפתוח אחד מחשבונות המשנה של לקוחותיה — או, אם נקראת ללא אחד, לחזור לחשבון הסוכנות. | subAccountUid (אופציונלי) |
כל אחד מהם מסרב עם 403 כאשר הסשן אינו זכאי לכך: אינו חבר בחשבון זה, אינו צוות, חשבון המשנה אינו שייך לסוכנות שלך או שלא הוענקה לך גישה אליו, או שהסשן אינו נמצא כרגע במצב שבו נקודת הקצה פועלת.
הקצאת תפקיד פלטפורמה
POST /team/users/{targetUid}/role
מגדיר את תפקיד הפלטפורמה של משתמש — User, Dev, Support או Agency. זו אינה חברות בצוות: זהו סוג חשבון ה-Your AI Connector שיש לאדם מסוים.
נקודת קצה זו מוגבלת לצוות Your AI Connector, ולא ניתן להוריד בדרגה את ה-Dev האחרון שנותר. מופיע כאן לשם השלמות; זה אינו חלק מניהול הצוות שלך.
{
"success": true,
"targetUid": "uid_sam",
"role": "Agency",
"claimUpdated": true
}
| סטטוס | מתי |
|---|---|
400 |
role חסר או אינו אחד מארבעת הערכים, או שפעולה זו תסיר את ה-Dev האחרון. |
403 |
אינך חלק מהצוות, או שהסשן פועל בתוך חשבון אחר. |
404 |
אין משתמש כזה. |
שגיאות API של צוות
נקודות קצה של צוות מחזירות את מעטפת השגיאה הסטנדרטית, תמיד עם error_code לצד סטטוס ה-HTTP:
{
"success": false,
"error_code": 403,
"error": "Cannot grant \"full\" access to \"billing\" — exceeds your own permissions."
}
| סטטוס | מתי זה קורה בנקודת קצה של צוות |
|---|---|
400 |
שדה נדרש חסר או לא תקין, או שהפעולה אינה מותרת במצב זה (הפעלה מחדש של חבר שהוסר, השעיית הבעלים, מחיקת מחלקה שמישהו מוגבל אליה). |
401 |
שלחת מפתח API לנקודת קצה הדורשת אדם מחובר — ראה אימות. |
403 |
אין לך הרשאת team_management, השינוי חורג מהגישה שלך, או שהפעולה מסורבת בזמן עבודה בתוך חשבון אחר. |
404 |
אין חבר, הזמנה, מחלקה או משתמש כזה. |
409 |
כבר חבר צוות, קיימת הזמנה ממתינה, או שקיימת מחלקה בשם זה. |
429 |
מכסות הצוות מלאות, הגיעה מגבלת 20 ההזמנות ביום, או שהגעת למגבלת קצב ה-API. |
504 |
ההזמנה שניסית לקבל פגה. |
הקודים המשותפים שכל נקודת קצה יכולה להחזיר — 429 (מגבלת קצב) ו-500 — מפורטים עם הנחיות לניסיון חוזר ב-שגיאות ועימוד.
קשור
- ניהול צוות — אותן תכונות בלוח הבקרה, עם צילומי מסך.
- אימות — כיצד לשלוח אסימון Firebase ID במקום מפתח API.
- API של אנשי קשר — אנשי הקשר שמגבלות הנראות של חבר חלות עליהם.