טכנוליין  •  הקול בידיים שלך

API — ניהול רשימות תפוצה

הוספה, עדכון, חיפוש, חסימה ומחיקה של אנשי קשר ברשימות תפוצה — לקמפיינים טלפוניים, שליחת מיילים והקראות IVR.

תוכן עניינים

סקירה כללית

רשימת תפוצה היא אוסף אנשי קשר עם שם, מספר טלפון ראשי וכתובת מייל. כל איש קשר משויך לרשימה אחת לפי מזהה (mailingList). רשימות תפוצה משמשות לקמפיינים טלפוניים, שליחת מיילים, הקראות IVR ופעולות broadcast נוספות.

סטטוס איש קשר: 0 = פעיל, 1 = חסום. אנשי קשר חסומים אינם נכללים בקמפיינים יוצאים.

כתובת ה-API

https://app.ipsales.co.il/mailingListsApi.php
כל הבקשות חייבות להישלח ב-POST. ניתן לשלוח כ-application/x-www-form-urlencoded, application/json, או multipart/form-data.
שמות פעולות עם איות תאימות לאחור: uplodePhones ו-freeSerch נכתבים בכתיב המקורי כדי לשמור על תאימות עם אינטגרציות קיימות. יש להשתמש בהם בדיוק כפי שמופיעים.

אימות

כל בקשה חייבת לכלול apiKey שמזהה את חשבון הלקוח.

מיקוםדוגמה
POST body (form)apiKey=YOUR_API_KEY&...
POST body (JSON){ "apiKey": "YOUR_API_KEY", ... }

uplodePhones — ייבוא מספרים לרשימת תפוצה

הוספה / עדכון / החלפה / מחיקה של אנשי קשר ברשימה

POST · action=uplodePhones

פרמטרים

שדהחובהסוגתיאור
action חובה string הערך הקבוע uplodePhones
apiKey חובה string מפתח ה-API של החשבון
mailingList חובה integer מזהה מספרי של רשימת התפוצה
phones חובה* array / JSON-string מערך של אנשי קשר. *לא נדרש כאשר insertType=delete מיועד לרוקן את כל הרשימה.
insertType אופציונלי enum אופן הייבוא. ברירת מחדל: all. ראו טבלה למטה.
name אופציונלי string שם תצוגה של האצווה — שמור לעתיד, ניתן להשמיט.

מבנה איש קשר ב-phones

שדהחובהתיאור
phoneחובה*מספר טלפון. ינורמל אוטומטית. *או phone או email חייב להופיע.
firstNameאופציונלישם פרטי
lastNameאופציונלישם משפחה
emailאופציונלי*כתובת מייל
statusאופציונלי0 = פעיל (ברירת מחדל), 1 = חסום

מצבי ייבוא — insertType

ערךהתנהגות
allברירת מחדל. מוסיף חדשים ומעדכן קיימים. השוואה לפי phone, ואחר כך לפי email.
replacingהרסני. ריקון מלא של הרשימה והכנסת השורות מחדש. אנשי הקשר הקיימים נמחקים.
insertהוספה בלבד — אנשי קשר חדשים מתווספים, קיימים מדולגים בשקט.
deleteהסרת אנשי הקשר התואמים מהרשימה. שורות שלא נמצאו — מתעלמים מהן.

תגובה — הצלחה

{ "newNumbers": 12, "updateNumbers": 4, "errorNumbers": 1, "deletedNumbers": 0 }

דוגמה — cURL

curl -X POST https://app.ipsales.co.il/mailingListsApi.php \ -d "action=uplodePhones" \ -d "apiKey=YOUR_API_KEY" \ -d "mailingList=1042" \ -d "insertType=all" \ --data-urlencode 'phones=[ {"phone":"0501234567","firstName":"Avi","lastName":"Cohen","email":"[email protected]","status":0}, {"phone":"0507654321","firstName":"Dana","lastName":"Levy","email":"","status":0} ]'

דוגמה — Python (JSON body)

import requests r = requests.post('https://app.ipsales.co.il/mailingListsApi.php', json={ 'action': 'uplodePhones', 'apiKey': 'YOUR_API_KEY', 'mailingList': 1042, 'insertType': 'all', 'phones': [ {'phone': '0501234567', 'firstName': 'Avi', 'lastName': 'Cohen', 'email': '[email protected]', 'status': 0}, {'phone': '0507654321', 'firstName': 'Dana', 'lastName': 'Levy', 'email': '', 'status': 0}, ], }) print(r.json())

phonesList — שליפת אנשי קשר

קריאת אנשי הקשר ברשימה — תומך בחיפוש ופייג'ינג

POST · action=phonesList

פרמטרים

שדהחובהסוגתיאור
actionחובהstringphonesList
apiKeyחובהstringמפתח ה-API
mailingListחובהintegerמזהה רשימת התפוצה
freeSerchאופציונליstringחיפוש חופשי על טלפון, שם פרטי או שם משפחה. (איות תאימות לאחור.)
limitאופציונליintegerגודל עמוד. בלי הפרמטר — מוחזרות כל השורות.
pageאופציונליintegerמספר עמוד (זרו-בייסד). יש לשלוח יחד עם limit.

תגובה — הצלחה

{ "phonesList": { "10001": { "id": "10001", "phone1": "0501234567", "phone2": "", "phone3": "", "phones": "0501234567", "firstName": "Avi", "lastName": "Cohen", "email": "[email protected]", "email2": "", "emails": "[email protected]", "status": "0", "RHstatus": 0 } }, "phonesCount": "1,250", "fromLine": 0, "toLine": 50 }
חשוב: ה-key של כל איש קשר ב-phonesList הוא ה-id שלו — וזה הערך שעובר אחר כך ל-phonesDelete או ל-setStatus.

דוגמה — cURL

curl -X POST https://app.ipsales.co.il/mailingListsApi.php \ -d "action=phonesList" \ -d "apiKey=YOUR_API_KEY" \ -d "mailingList=1042" \ -d "freeSerch=Cohen" \ -d "limit=50" \ -d "page=0"

phoneEdit — הוספה / עדכון איש קשר בודד

שמירת איש קשר אחד — חדש או עדכון של קיים

POST · action=phoneEdit

פרמטרים

שדהחובהסוגתיאור
actionחובהstringphoneEdit
apiKeyחובהstringמפתח ה-API
mailingListחובהintegerמזהה רשימת התפוצה
idאופציונליinteger / stringמזהה איש קשר לעדכון. אם חסר או קטן/שווה אפס — תתבצע הוספה.
phone1חובה*stringטלפון ראשי. *או phone1 או email חייב להופיע.
firstNameאופציונליstringשם פרטי
lastNameאופציונליstringשם משפחה
emailחובה*stringמייל ראשי
email2אופציונליstringמייל משני

בלי id — השרת מחפש קודם לפי phone1 או email; אם נמצאה התאמה, השורה תתעדכן, אחרת תיווצר חדשה.

תגובה — הצלחה

{ "status": "Ok", "note": "איש הקשר נשמר בהצלחה" }

תגובה — שגיאה

{ "status": "Error", "note": "חייב טלפון ראשי או כתובת מייל" }

דוגמה — cURL

curl -X POST https://app.ipsales.co.il/mailingListsApi.php \ -d "action=phoneEdit" \ -d "apiKey=YOUR_API_KEY" \ -d "mailingList=1042" \ -d "phone1=0501234567" \ -d "firstName=Avi" \ -d "lastName=Cohen" \ -d "[email protected]"

phonesDelete — מחיקת אנשי קשר

מחיקה מוחלטת של אנשי קשר לפי ID

POST · action=phonesDelete

פרמטרים

שדהחובהסוגתיאור
actionחובהstringphonesDelete
apiKeyחובהstringמפתח ה-API
mailingListחובהintegerמזהה רשימת התפוצה
deleteListחובהstring / arrayרשימת מזהי אנשי קשר — מחרוזת מופרדת בפסיקים, או JSON array.

תגובה — הצלחה

{ "status": "Ok", "note": "המספרים נמחקו בהצלחה" }

דוגמה

curl -X POST https://app.ipsales.co.il/mailingListsApi.php \ -d "action=phonesDelete" \ -d "apiKey=YOUR_API_KEY" \ -d "mailingList=1042" \ -d "deleteList=10001,10002,10003"

setStatus — חסימה / שחרור אנשי קשר

סימון איש קשר כפעיל או חסום

POST · action=setStatus

אנשי קשר חסומים (status=1) אינם נכללים בקמפיינים יוצאים עד לשחרור.

פרמטרים

שדהחובהסוגתיאור
actionחובהstringsetStatus
apiKeyחובהstringמפתח ה-API
mailingListחובהintegerמזהה רשימת התפוצה
phoneחובהstring מזהה איש קשר אחד, או רשימת מזהים מופרדים בפסיקים (לדוגמה 10001,10002). למרות השם — הפרמטר מקבל ID של איש קשר (כפי שמוחזר ב-phonesList), לא מספר טלפון.
statusחובהinteger1 = חסימה, 0 = שחרור.

תגובה — הצלחה

{ "status": "Ok", "note": "המספר נחסם בהצלחה", "phones": ["10001", "10002"] }

note יהיה "המספר נחסם בהצלחה" בחסימה ו-"המספר אושר בהצלחה" בשחרור.

דוגמה — חסימת שני אנשי קשר

curl -X POST https://app.ipsales.co.il/mailingListsApi.php \ -d "action=setStatus" \ -d "apiKey=YOUR_API_KEY" \ -d "mailingList=1042" \ -d "phone=10001,10002" \ -d "status=1"

תרחישים נפוצים

1. סנכרון פלח לקוחות יומי לרשימת קמפיין

השתמשו ב-insertType=all — חדשים מתווספים, קיימים מתעדכנים לפי טלפון.

requests.post(URL, json={ 'action': 'uplodePhones', 'apiKey': KEY, 'mailingList': 1042, 'insertType': 'all', 'phones': [ {'phone': c.phone, 'firstName': c.first, 'lastName': c.last, 'email': c.email, 'status': 0} for c in todays_segment ], })

2. החלפת רשימת broadcast שבועית

השתמשו ב-insertType=replacing — הרשימה מתרוקנת ונטענת מחדש.

requests.post(URL, json={ 'action': 'uplodePhones', 'apiKey': KEY, 'mailingList': 1042, 'insertType': 'replacing', 'phones': new_weekly_list, })

3. טיפול ב-opt-out

שלוף את ה-ID דרך phonesList, ואז קרא ל-setStatus עם status=1:

listing = requests.post(URL, data={'action':'phonesList', 'apiKey':KEY, 'mailingList':1042, 'freeSerch':optout_phone}).json() ids = ','.join(listing['phonesList'].keys()) requests.post(URL, data={'action':'setStatus', 'apiKey':KEY, 'mailingList':1042, 'phone':ids, 'status':1})

4. הסרה מוחלטת של אנשי קשר

requests.post(URL, data={'action':'phonesDelete', 'apiKey':KEY, 'mailingList':1042, 'deleteList':'10001,10002'})

הערות יישום