Email API
createEmailMessage
Anchor link toสร้างข้อความอีเมล
POST https://api.pushwoosh.com/json/1.3/createEmailMessage
พารามิเตอร์ของ Request body
Anchor link to| ชื่อ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| auth | string | ใช่ | โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel |
| application | string | ใช่ | รหัสแอปพลิเคชัน Pushwoosh |
| notifications | array | ใช่ | อาร์เรย์ JSON ที่มีรายละเอียดข้อความอีเมล ดูตาราง พารามิเตอร์การแจ้งเตือน ด้านล่าง |
พารามิเตอร์การแจ้งเตือน
Anchor link to| ชื่อ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| send_date | string | ใช่ | กำหนดเวลาที่จะส่งอีเมล รูปแบบ: YYYY-MM-DD HH:mm หรือ "now" |
| preset | string | ใช่ | รหัสพรีเซ็ตอีเมล คัดลอกจากแถบ URL ของ Email Content Editor ใน Pushwoosh Control Panel |
| subject | string หรือ object | ไม่ | หัวเรื่องของอีเมล อีเมลจะอยู่ในภาษาของเนื้อหาเสมอ หาก subject ไม่มีภาษาที่ตรงกับ content หัวเรื่องจะว่างเปล่า |
| content | string หรือ object | ไม่ | เนื้อหาของอีเมล สามารถเป็นสตริงสำหรับเนื้อหา HTML ธรรมดาหรืออ็อบเจกต์สำหรับเวอร์ชันที่แปลเป็นภาษาท้องถิ่น |
| attachments | array | ไม่ | ไฟล์แนบอีเมล สามารถแนบไฟล์ได้เพียงสองไฟล์ แต่ละไฟล์ต้องมีขนาดไม่เกิน 1MB (เข้ารหัสแบบ base64) |
| list_unsubscribe | string | ไม่ | อนุญาตให้ตั้งค่า URL ที่กำหนดเองสำหรับเฮดเดอร์ “Link-Unsubscribe” |
| campaign | string | ไม่ | รหัสแคมเปญ เพื่อเชื่อมโยงอีเมลกับแคมเปญที่ระบุ |
| ignore_user_timezone | boolean | ไม่ | หากเป็น true จะส่งอีเมลทันทีโดยไม่สนใจเขตเวลาของผู้ใช้ |
| timezone | string | ไม่ | ส่งอีเมลตามเขตเวลาของผู้ใช้ ตัวอย่าง: "America/New_York" |
| filter | string | ไม่ | ส่งอีเมลไปยังผู้ใช้ที่ตรงกับเงื่อนไขตัวกรองที่ระบุ |
| devices | array | ไม่ | รายชื่อที่อยู่อีเมล (สูงสุด 1000) เพื่อส่งอีเมลเป้าหมาย หากใช้ พารามิเตอร์นี้ ข้อความจะถูกส่งไปยังที่อยู่เหล่านี้เท่านั้น จะถูกละเว้นหากใช้ Application Group |
| use_auto_registration | boolean | ไม่ | หากเป็น true จะลงทะเบียนอีเมลจากพารามิเตอร์ devices โดยอัตโนมัติ |
| users | array | ไม่ | หากตั้งค่าไว้ ข้อความอีเมลจะถูกส่งไปยัง User ID ที่ระบุเท่านั้น (ลงทะเบียนผ่านการเรียก /registerEmail) ไม่เกิน 1000 User ID ในอาร์เรย์ หากระบุพารามิเตอร์ “devices” พารามิเตอร์ “users” จะถูกละเว้น |
| dynamic_content_placeholders | object | ไม่ | ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนค่าแท็กของอุปกรณ์ |
| conditions | array | ไม่ | เงื่อนไขการแบ่งกลุ่มโดยใช้แท็ก ตัวอย่าง: [["Country", "EQ", "BR"]] |
| from | object | ไม่ | ระบุชื่อผู้ส่งและอีเมลที่กำหนดเอง เพื่อแทนที่ค่าเริ่มต้นในคุณสมบัติของแอปพลิเคชัน |
| reply-to | object | ไม่ | ระบุอีเมลตอบกลับที่กำหนดเอง เพื่อแทนที่ค่าเริ่มต้นในคุณสมบัติของแอปพลิเคชัน |
| bcc | array | ไม่ | BCC (สำเนาลับ): อาร์เรย์ของที่อยู่อีเมลที่ได้รับสำเนาของอีเมลโดยที่ผู้รับคนอื่นไม่เห็น |
| email_type | string | ไม่ | ระบุประเภทอีเมล: "marketing" หรือ "transactional" หากไม่ระบุ ผู้ใช้ที่มี PW_ControlGroup: true จะไม่ได้รับข้อความ |
| email_category | string | จำเป็นเมื่อ email_type เป็น "marketing" | ระบุชื่อหมวดหมู่หนึ่งที่กำหนดค่าไว้ใน ศูนย์การตั้งค่าการสมัครรับข้อมูล (เช่น Newsletter, Promotional, Product Updates) |
| transactionId | string | ไม่ | ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการส่งซ้ำในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง Pushwoosh เป็นเวลา 5 นาที |
| capping_days | integer | ไม่ | จำนวนวัน (สูงสุด 30) ที่จะใช้ frequency capping ต่ออุปกรณ์ หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้กำหนดค่า Global frequency capping ใน Control Panel แล้ว |
| capping_count | integer | ไม่ | จำนวนอีเมลสูงสุดที่สามารถส่งจากแอปที่ระบุไปยังอุปกรณ์หนึ่งๆ ภายในระยะเวลา capping_days ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด capping_count สำหรับอุปกรณ์ ข้อความนั้นจะไม่ถูกส่งไปยังอุปกรณ์นั้น |
| capping_exclude | boolean | ไม่ | หากตั้งค่าเป็น true อีเมลนี้จะไม่ถูกนับรวมในการจำกัดความถี่สำหรับอีเมลในอนาคต |
| capping_avoid | boolean | ไม่ | หากตั้งค่าเป็น true การจำกัดความถี่จะไม่ถูกนำไปใช้กับอีเมลนี้โดยเฉพาะ |
| send_rate | integer | ไม่ | จำกัดจำนวนข้อความที่สามารถส่งได้ต่อวินาทีสำหรับผู้ใช้ทั้งหมด ช่วยป้องกันการโอเวอร์โหลดของแบ็กเอนด์ระหว่างการส่งจำนวนมาก |
| send_rate_avoid | boolean | ไม่ | หากตั้งค่าเป็น true ขีดจำกัดการควบคุมปริมาณจะไม่ถูกนำไปใช้กับอีเมลนี้โดยเฉพาะ |
ตัวอย่าง Request
Anchor link to{ "request": { "auth": "API_ACCESS_TOKEN", // จำเป็น โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh "notifications": [{ "send_date": "now", // จำเป็น YYYY-MM-DD HH:mm หรือ 'now' "preset": "ERXXX-32XXX", // จำเป็น คัดลอกรหัสพรีเซ็ตอีเมลจากแถบ URL ของ // หน้า Email Content editor ใน Pushwoosh Control Panel "subject": { // ไม่จำเป็น หัวเรื่องของข้อความอีเมล "de": "subject de", "en": "subject en" }, "content": { // ไม่จำเป็น เนื้อหาของอีเมล "de": "<html><body>de Hello, moto</body></html>", "default": "<html><body>default Hello, moto</body></html>" }, "attachments": [{ // ไม่จำเป็น ไฟล์แนบอีเมล "name": "image.png", // "name" - ชื่อไฟล์ "content": "iVBANA...AFTkuQmwC" // "content" - เนื้อหาของไฟล์ที่เข้ารหัสแบบ base64 }, { "name": "file.pdf", "content": "JVBERi...AFTarEGC" }], "list_unsubscribe": "URL", // ไม่จำเป็น อนุญาตให้ตั้งค่า URL ที่กำหนดเองสำหรับเฮดเดอร์ "Link-Unsubscribe" "campaign": "CAMPAIGN_CODE", // ไม่จำเป็น หากต้องการกำหนดข้อความอีเมลนี้ให้กับแคมเปญใดแคมเปญหนึ่ง // ให้เพิ่มรหัสแคมเปญที่นี่ "ignore_user_timezone": true, // ไม่จำเป็น "timezone": "America/New_York", // ไม่จำเป็น ระบุเพื่อส่งข้อความตาม // เขตเวลาที่ตั้งค่าไว้บนอุปกรณ์ของผู้ใช้ "filter": "FILTER_NAME", // ไม่จำเป็น ส่งข้อความไปยังผู้ใช้ที่ตรงตามเงื่อนไขของตัวกรอง "devices": [ // ไม่จำเป็น ระบุที่อยู่อีเมลเพื่อส่งข้อความอีเมลเป้าหมาย "email_address1", // ไม่เกิน 1000 ที่อยู่ในอาร์เรย์ "email_address2" // หากตั้งค่าไว้ ข้อความจะถูกส่งไปยังที่อยู่ใน ], // รายการเท่านั้น จะถูกละเว้นหากใช้ Application Group "use_auto_registration": true, // ไม่จำเป็น ลงทะเบียนอีเมลที่ระบุในพารามิเตอร์ "devices" โดยอัตโนมัติ "users": [ // ไม่จำเป็น หากตั้งค่าไว้ ข้อความอีเมลจะถูกส่งไปยัง "userId1", // User ID ที่ระบุเท่านั้น (ลงทะเบียนผ่านการเรียก /registerEmail) "userId2" // ไม่เกิน 1000 User ID ในอาร์เรย์ ], // หากระบุพารามิเตอร์ "devices" // พารามิเตอร์ "users" จะถูกละเว้น "dynamic_content_placeholders": { // ไม่จำเป็น ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนค่าแท็กของอุปกรณ์ "firstname": "John", "firstname_en": "John" }, "conditions": [ // ไม่จำเป็น เงื่อนไขการแบ่งกลุ่ม ดูหมายเหตุด้านล่าง ["Country", "EQ", "BR"], ["Language", "EQ", "pt"] ], "from": { // ไม่จำเป็น ระบุชื่อผู้ส่งและที่อยู่อีเมลผู้ส่ง "name": "alias from", // เพื่อแทนที่ "From name" และ "From email" เริ่มต้น "email": "from-email@email.com" // ที่ตั้งค่าไว้ในคุณสมบัติของแอปพลิเคชัน }, "reply-to": { // ไม่จำเป็น ระบุที่อยู่อีเมลเพื่อแทนที่ "name": "alias reply to ", // "Reply to" เริ่มต้นที่ตั้งค่าไว้ในคุณสมบัติของแอปพลิเคชัน "email": "reply-to@email.com" }, "bcc": [ // ไม่จำเป็น BCC: อาร์เรย์ของที่อยู่อีเมลที่ได้รับสำเนาโดยที่ผู้รับคนอื่นไม่เห็น "bcc1@example.com", "bcc2@example.com" ], "email_type": "marketing", // ไม่จำเป็น "marketing" หรือ "transactional" // หากไม่ระบุ ผู้ใช้ที่มี PW_ControlGroup: true จะไม่ได้รับข้อความ "email_category": "category name",// จำเป็นเมื่อ email_type เป็น "marketing" ชื่อหมวดหมู่ "transactionId": "unique UUID", // ไม่จำเป็น ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการส่งซ้ำ // ในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง // ของ Pushwoosh เป็นเวลา 5 นาที // พารามิเตอร์ Frequency capping ตรวจสอบให้แน่ใจว่า Global frequency capping ได้รับการกำหนดค่าใน Control Panel // Frequency capping ไม่มีผลกับข้อความ transactional // ในกรณีอื่นๆ ทั้งหมด รวมถึงการละเว้น "email_type" จะมีการใช้ frequency capping "capping_days": 30, // ไม่จำเป็น จำนวนวันสำหรับ frequency capping (สูงสุด 30 วัน) "capping_count": 10, // ไม่จำเป็น จำนวนอีเมลสูงสุดที่สามารถส่งจาก // แอปที่ระบุไปยังอุปกรณ์หนึ่งๆ ภายในระยะเวลา 'capping_days' // ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด // 'capping_count' สำหรับอุปกรณ์ ข้อความนั้นจะไม่ // ถูกส่งไปยังอุปกรณ์นั้น "capping_exclude": true, // ไม่จำเป็น หากตั้งค่าเป็น true อีเมลนี้จะไม่ // ถูกนับรวมในการจำกัดความถี่สำหรับอีเมลในอนาคต "capping_avoid": true, // ไม่จำเป็น หากตั้งค่าเป็น true การจำกัดความถี่จะไม่ถูกนำไปใช้กับ // อีเมลนี้โดยเฉพาะ "send_rate": 100, // ไม่จำเป็น ขีดจำกัดการควบคุมปริมาณ // จำกัดจำนวนข้อความที่สามารถส่งได้ต่อวินาทีสำหรับผู้ใช้ทั้งหมด // ช่วยป้องกันการโอเวอร์โหลดของแบ็กเอนด์ระหว่างการส่งจำนวนมาก "send_rate_avoid": true, // ไม่จำเป็น หากตั้งค่าเป็น true ขีดจำกัดการควบคุมปริมาณจะไม่ถูกนำไปใช้กับ // อีเมลนี้โดยเฉพาะ }] }}ตัวอย่าง Response
Anchor link to{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 403, "status_message": "Token restrictions forbid this operation", "response": null}เงื่อนไขแท็ก
Anchor link toเงื่อนไขแท็กแต่ละรายการเป็นอาร์เรย์ในรูปแบบ [tagName, operator, operand] โดยที่
- tagName: ชื่อของแท็ก
- operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
- operand: string | integer | array | date
คำอธิบาย Operand
Anchor link to- EQ: ค่าแท็กเท่ากับ operand;
- IN: ค่าแท็กตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ);
- NOTEQ: ค่าแท็กไม่เท่ากับ operand;
- NOTIN: ค่าแท็กไม่ตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ);
- GTE: ค่าแท็กมากกว่าหรือเท่ากับ operand;
- LTE: ค่าแท็กน้อยกว่าหรือเท่ากับ operand;
- BETWEEN: ค่าแท็กมากกว่าหรือเท่ากับค่า operand ต่ำสุด แต่น้อยกว่าหรือเท่ากับค่า operand สูงสุด (operand ต้องเป็นอาร์เรย์เสมอ)
แท็กสตริง
Anchor link toโอเปอเรเตอร์ที่ใช้ได้: EQ, IN, NOTEQ, NOTIN
Operand ที่ใช้ได้:
- EQ, NOTEQ: operand ต้องเป็นสตริง;
- IN, NOTIN: operand ต้องเป็นอาร์เรย์ของสตริง เช่น
["value 1", "value 2", "value N"];
แท็กจำนวนเต็ม
Anchor link toโอเปอเรเตอร์ที่ใช้ได้: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Operand ที่ใช้ได้:
- EQ, NOTEQ, GTE, LTE: operand ต้องเป็นจำนวนเต็ม;
- IN, NOTIN: operand ต้องเป็นอาร์เรย์ของจำนวนเต็ม เช่น
[value 1, value 2, value N]; - BETWEEN: operand ต้องเป็นอาร์เรย์ของจำนวนเต็ม เช่น
[min_value, max_value]
แท็กวันที่
Anchor link toโอเปอเรเตอร์ที่ใช้ได้: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Operand ที่ใช้ได้:
"YYYY-MM-DD 00:00"(สตริง)- unix timestamp
1234567890(จำนวนเต็ม) "N days ago"(สตริง) สำหรับโอเปอเรเตอร์ EQ, BETWEEN, GTE, LTE
แท็กบูลีน
Anchor link toโอเปอเรเตอร์ที่ใช้ได้: EQ
Operand ที่ใช้ได้: 0, 1, true, false
แท็กรายการ
Anchor link toโอเปอเรเตอร์ที่ใช้ได้: IN
Operand ที่ใช้ได้: operand ต้องเป็นอาร์เรย์ของสตริง เช่น ["value 1", "value 2", "value N"]
registerEmail
Anchor link toลงทะเบียนที่อยู่อีเมลสำหรับแอป
POST https://api.pushwoosh.com/json/1.3/registerEmail
Request headers
Anchor link to| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---|---|---|---|
| Authorization | ใช่ | Token XXXX | API Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ |
Request body
Anchor link to| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| application* | string | รหัสแอปพลิเคชัน Pushwoosh |
| email* | string | ที่อยู่อีเมล |
| language | string | ภาษาท้องถิ่นของอุปกรณ์ ต้องเป็นรหัสสองตัวอักษรตัวพิมพ์เล็กตามมาตรฐาน ISO-639-1 |
| userId | string | User ID เพื่อเชื่อมโยงกับที่อยู่อีเมล |
| tz_offset | integer | ออฟเซ็ตเขตเวลาเป็นวินาที |
| tags | object | ค่าแท็กที่จะกำหนดให้กับอุปกรณ์ที่ลงทะเบียน |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh "email":"email@domain.com", // จำเป็น ที่อยู่อีเมลที่จะลงทะเบียน "language": "en", // ไม่จำเป็น ภาษาท้องถิ่น "userId": "userId", // ไม่จำเป็น User ID เพื่อเชื่อมโยงกับที่อยู่อีเมล "tz_offset": 3600, // ไม่จำเป็น ออฟเซ็ตเขตเวลาเป็นวินาที "tags": { // ไม่จำเป็น ค่าแท็กที่จะตั้งค่าสำหรับอุปกรณ์ที่ลงทะเบียน "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1","string2"], // ตั้งค่ารายการค่าสำหรับแท็กประเภท List "DateTag": "2024-10-02 22:11", // หมายเหตุ: เวลาควรเป็น UTC "BooleanTag": true // ค่าที่ใช้ได้คือ: true, false } }}deleteEmail
Anchor link toลบที่อยู่อีเมลออกจากฐานผู้ใช้ของคุณ
POST https://api.pushwoosh.com/json/1.3/deleteEmail
Request headers
Anchor link to| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---|---|---|---|
| Authorization | ใช่ | Token XXXX | API Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ |
Request body
Anchor link to| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| application | string | รหัสแอปพลิเคชัน Pushwoosh |
| string | ที่อยู่อีเมลที่ใช้ในคำขอ /registerEmail |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh "email": "email@domain.com" // จำเป็น อีเมลที่จะลบออกจากผู้สมัครรับข้อมูลของแอป }}setEmailTags
Anchor link toตั้งค่าแท็กสำหรับที่อยู่อีเมล
POST https://api.pushwoosh.com/json/1.3/setEmailTags
Request headers
Anchor link to| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---|---|---|---|
| Authorization | ใช่ | Token XXXX | API Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ |
Request body
Anchor link to| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| application | string | รหัสแอปพลิเคชัน Pushwoosh |
| string | ที่อยู่อีเมล | |
| tags | object | อ็อบเจกต์ JSON ของแท็กที่จะตั้งค่า ส่ง ‘null’ เพื่อลบค่า |
| userId | string | User ID ที่เชื่อมโยงกับที่อยู่อีเมล |
{ "status_code": 200, "status_message": "OK", "response": { "skipped": [] }}{ "request": { "email": "email@domain.com", // จำเป็น ที่อยู่อีเมลที่จะตั้งค่าแท็ก "application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh "tags": { "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], "DateTag": "2024-10-02 22:11", // เวลาใน UTC "BooleanTag": true // ค่าที่ใช้ได้คือ: true, false }, "userId": "userId" // ไม่จำเป็น User ID ที่เชื่อมโยงกับที่อยู่อีเมล }}registerEmailUser
Anchor link toเชื่อมโยง User ID ภายนอกกับที่อยู่อีเมลที่ระบุ
POST https://api.pushwoosh.com/json/1.3/registerEmailUser
สามารถใช้ในการเรียก API /createEmailMessage (พารามิเตอร์ ‘users’)
Request headers
Anchor link to| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---|---|---|---|
| Authorization | ใช่ | Token XXXX | API Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ |
Request body
Anchor link to| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| application* | string | รหัสแอปพลิเคชัน Pushwoosh |
| email* | string | ที่อยู่อีเมล |
| userId* | string | User ID เพื่อเชื่อมโยงกับที่อยู่อีเมล |
| tz_offset | integer | ออฟเซ็ตเขตเวลาเป็นวินาที |
{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 400, "status_message": "Request format is not valid."}{ "status_code": 403, "status_message": "Forbidden."}{ "request": { "application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh "email": "email@domain.com", // จำเป็น ที่อยู่อีเมลของผู้ใช้ "userId": "userId", // จำเป็น User ID เพื่อเชื่อมโยงกับที่อยู่อีเมล "tz_offset": 3600 // ไม่จำเป็น ออฟเซ็ตเขตเวลาเป็นวินาที }}