
# API סיכומים

קיימים שני סוגים של סיכומים שנכתבו על ידי בינה מלאכותית הזמינים דרך ה-API:

- **סיכומי צ'אט** — סיכום קצר של שיחת איש קשר, שנוצר לפי דרישה. זהה לבקרת הסיכום בצ'אט (ראו [סיכום צ'אט](../chats/chat-interface.md#chat-summary)).
- **סיכומים יומיים** — הסיכום היומי של כל השיחות שלכם ש-[סיכומים יומיים](../daily-summaries/daily-summaries.md) בונה בכל בוקר: נתונים סטטיסטיים, בלוק Markdown אחד לכל סעיף, וכל משימה שהבינה המלאכותית יצרה מתוכו.

- **כתובת URL בסיסית** — `https://api.dmchamp.com/v1`
- **אימות** — מפתח ה-API שלכם (ראו [אימות](authentication.md)). [מפתח עם הרשאות מוגבלות](api-keys.md#scoped-keys) זקוק לסעיף `Summaries`.
- **שגיאות ועימוד** — ראו [שגיאות ועימוד](errors-and-pagination.md)

כל הדוגמאות להלן מציגות את טופס השאילתה `?apiKey=` ב-cURL ואת הכותרת `X-API-Key` ב-JavaScript וב-Python — שתי הדרכים עובדות בכל נקודת קצה (endpoint).

---

## יצירת סיכום צ'אט

`POST /summaries` — שלחו את ה-`phoneNumber` של איש הקשר (עם קידומת מדינה) או את ה-`email` שלו; אחד משניהם נדרש.

הבינה המלאכותית קוראת את השיחה ה**סגורה** האחרונה של איש הקשר, או את זו שעדיין פתוחה אם אף אחת לא נסגרה עדיין, וכותבת לה סיכום. הסיכום נשמר אצל איש הקשר (הוא מופיע תחת **סיכומים** בלוח איש הקשר באפליקציה) ומוחזר בתגובה, כך שתוכלו להעביר אותו ישירות ל-CRM, לערוץ Slack או לאימייל.

**עלות:** זהה לעלות של תשובת בינה מלאכותית אחת ברמת איכות ה-AI של הסוכן — Pro עולה 1 קרדיט, Max עולה 0.25, Mini עולה 0.15; עם מפתח Anthropic משלכם, Pro עולה 0. הבקשה נדחית לפני שנוצר דבר מה אם היתרה אינה מכסה זאת.

**cURL**

```bash
curl -X POST "https://api.dmchamp.com/v1/summaries?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber": "+31612345678"}'
```

**JavaScript**

```javascript
const res = await fetch("https://api.dmchamp.com/v1/summaries", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({ email: "jane@example.com" }),
});
const { summary } = await res.json();
```

**Python**

```python
import requests

r = requests.post(
    "https://api.dmchamp.com/v1/summaries",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"phoneNumber": "+31612345678"},
)
print(r.json()["summary"])
```

**תגובה**

```json
{
  "success": true,
  "message": "Chat summary generated successfully",
  "summary": "Jane asked about the 10-session package for her two children (ages 6 and 9) and preferred Saturday mornings. She booked a trial lesson for Saturday at 10:00 and wants to know whether siblings get a discount."
}
```

| סטטוס | משמעות |
|---|---|
| `400` | לא נשלח `phoneNumber` ולא `email`. |
| `404` | לא נמצא איש קשר תואם, לאיש הקשר אין עדיין שיחה, או שבשיחה אין הודעות. ה-`message` בגוף התגובה מציין מה הבעיה. |
| `500` | היצירה נכשלה (למשל, אין מספיק קרדיטים). |

> **מתכון לאוטומציה: אימייל הזמנה עם סיכום.** ב-[אוטומציה](../automations/automations.md) המופעלת על ידי הטריגר **נקבעה פגישה**, הוסיפו שלב **בקשת HTTP** שקורא לנקודת קצה זו עם `${trigger.contact.phone_number}` (או האימייל של איש הקשר), ולאחר מכן שלב **אימייל** שמכניס את ה-`summary` מהתגובה של שלב ה-HTTP יחד עם קישור לצ'אט (כתובת האפליקציה שלכם ואחריה `/chats/` ומזהה איש הקשר מהטריגר). הצוות שלכם מקבל את ההקשר של ההזמנה באותו אימייל, מבלי לפתוח את תיבת הדואר הנכנס.

> **קריאת סיכומים בחזרה.** אין נקודת קצה שמציגה רשימה של סיכומי צ'אט שמורים. שמרו את הטקסט מהתגובה אם תזדקקו לו מאוחר יותר, או צרו אותו מחדש (כל קריאה מחויבת בתשלום).

### חלופה: לפי מזהה איש קשר

`POST /summaries/chat-summary` עם `{"contactId": "..."}` מבצע את אותה יצירה עבור איש קשר שהמזהה שלו כבר ברשותכם. הוא רק מאשר הצלחה (`{"success": true, "data": "Chat summary generated successfully"}`) ו**לא** מחזיר את הטקסט, לכן השתמשו ב-`POST /summaries` כאשר אתם רוצים את הסיכום עצמו. חבר צוות שהמפתח שלו מוגבל לאנשי הקשר שהוקצו לו יקבל `404` עבור איש קשר מחוץ לטווח ההרשאות שלו.

---

## קבלת סיכום יומי

`GET /summaries/daily/{date}` — `date` הוא `YYYY-MM-DD`. מחזיר את הסיכום לאותו יום, או `null` תחת `summary` כאשר טרם נוצר סיכום, בתוספת הגדרות הסעיפים שלכם.

**cURL**

```bash
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
```

**תגובה**

```json
{
  "success": true,
  "data": {
    "summary": {
      "date": "2026-09-08",
      "status": "completed",
      "generated_at": "2026-09-09T05:02:11.000Z",
      "stats": {
        "total_conversations": 42,
        "total_messages_sent": 310,
        "total_messages_received": 268,
        "human_alerts": 3,
        "bookings": 5,
        "new_contacts": 11,
        "sales": 2
      },
      "sections": {
        "wins_losses_improvements": "## Wins\n- ...",
        "tasks_action_items": "- Call Jane back about the sibling discount",
        "human_alerts_reviews": "...",
        "sentiment_analysis": "...",
        "booked_meetings_sales": "..."
      },
      "contact_map": { "Jane Doe": "uid_whatsapp_31612345678" },
      "auto_tasks": [],
      "created_task_ids": []
    },
    "section_configs": [
      { "id": "wins_losses_improvements", "name": "Wins, Losses & Improvements", "enabled": true, "position": 0 }
    ]
  }
}
```

- **`status`** — `pending`, `generating`, `completed` או `failed` (כאשר `error` מוגדר). בצעו פול (poll) לנקודת קצה זו לאחר יצירה מחדש עד שהיא תקרא `completed`.
- **`sections`** — מחרוזת Markdown אחת לכל סעיף, לפי מזהה הסעיף. חמשת הסעיפים הסטנדרטיים הם `wins_losses_improvements`, `tasks_action_items`, `human_alerts_reviews`, `sentiment_analysis` ו-`booked_meetings_sales`; סעיפים שתוסיפו תחת **Configure** בדף Daily Summaries יקבלו מזהה `custom_…`. שמות וסדר מופיעים ב-`section_configs`.
- **`contact_map`** — שם תצוגה למזהה איש קשר, כדי שתוכלו להפוך את השמות בטקסט לקישורים.
- **`auto_tasks`** / **`created_task_ids`** — פריטי הפעולה שה-AI חילץ והמשימות שיצר מהם (כאשר **Create task cards from action items** מופעל).

| סטטוס | משמעות |
|---|---|
| `400` | `date` אינו `YYYY-MM-DD`, או שהוא בעתיד. |
| `403` | Daily Summaries כבוי עבור החשבון. |

> מעדיפים דחיפה (push) על פני פול (polling)? ה-[webhook event](../integrations/webhooks.md) מסוג **Daily Summary Created** מספק את אותו המטען (payload) ברגע שסיכום הבוקר מסתיים.

---

## יצירה מחדש של סיכום יומי

`POST /summaries/daily/{date}/regenerate` — מתחיל יצירה רעננה לאותו יום ברקע ומחזיר מיד `status: "generating"` ו-`sections` ריק. בצעו פול ל-`GET /summaries/daily/{date}` עד לסיום. אותם כללים חלים כמו עבור הקישור **Try again** באפליקציה.

גוף אופציונלי `{"deleteTasks": false}` שומר את המשימות שהריצה הקודמת יצרה; כברירת מחדל הן נמחקות ונוצרות מחדש מהסיכום החדש. שלחו בוליאני אמיתי — המחרוזת `"false"` תתעלם ותטופל כברירת מחדל.

```bash
curl -X POST "https://api.dmchamp.com/v1/summaries/daily/2026-09-08/regenerate?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"deleteTasks": false}'
```

---

## הפניה מהירה

| משימה | נקודת קצה |
|---|---|
| יצירת סיכום צ'אט וקבלת הטקסט | `POST /summaries` |
| יצירת סיכום צ'אט לפי מזהה איש קשר (לא מוחזר טקסט) | `POST /summaries/chat-summary` |
| קריאת סיכום של יום | `GET /summaries/daily/{date}` |
| יצירה מחדש של סיכום של יום | `POST /summaries/daily/{date}/regenerate` |
