ข้ามไปยังเนื้อหา

Email API

createEmailMessage

Anchor link to

สร้างข้อความอีเมล

POST https://api.pushwoosh.com/json/1.3/createEmailMessage

พารามิเตอร์ของ Request body

Anchor link to
ชื่อประเภท
จำเป็นคำอธิบาย
authstringใช่โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel
applicationstringใช่รหัสแอปพลิเคชัน Pushwoosh
notificationsarrayใช่อาร์เรย์ JSON ที่มีรายละเอียดข้อความอีเมล ดูตาราง พารามิเตอร์การแจ้งเตือน ด้านล่าง

พารามิเตอร์การแจ้งเตือน

Anchor link to
ชื่อประเภท
จำเป็นคำอธิบาย
send_datestringใช่กำหนดเวลาที่จะส่งอีเมล รูปแบบ: YYYY-MM-DD HH:mm หรือ "now"
presetstringใช่รหัสพรีเซ็ตอีเมล คัดลอกจากแถบ URL ของ Email Content Editor ใน Pushwoosh Control Panel
subjectstring หรือ objectไม่หัวเรื่องของอีเมล อีเมลจะอยู่ในภาษาของเนื้อหาเสมอ หาก subject ไม่มีภาษาที่ตรงกับ content หัวเรื่องจะว่างเปล่า
contentstring หรือ objectไม่เนื้อหาของอีเมล สามารถเป็นสตริงสำหรับเนื้อหา HTML ธรรมดาหรืออ็อบเจกต์สำหรับเวอร์ชันที่แปลเป็นภาษาท้องถิ่น
attachmentsarrayไม่ไฟล์แนบอีเมล สามารถแนบไฟล์ได้เพียงสองไฟล์ แต่ละไฟล์ต้องมีขนาดไม่เกิน 1MB (เข้ารหัสแบบ base64)
list_unsubscribestringไม่อนุญาตให้ตั้งค่า URL ที่กำหนดเองสำหรับเฮดเดอร์ “Link-Unsubscribe”
campaignstringไม่รหัสแคมเปญ เพื่อเชื่อมโยงอีเมลกับแคมเปญที่ระบุ
ignore_user_timezonebooleanไม่หากเป็น true จะส่งอีเมลทันทีโดยไม่สนใจเขตเวลาของผู้ใช้
timezonestringไม่ส่งอีเมลตามเขตเวลาของผู้ใช้ ตัวอย่าง: "America/New_York"
filterstringไม่ส่งอีเมลไปยังผู้ใช้ที่ตรงกับเงื่อนไขตัวกรองที่ระบุ
devicesarrayไม่รายชื่อที่อยู่อีเมล (สูงสุด 1000) เพื่อส่งอีเมลเป้าหมาย หากใช้ พารามิเตอร์นี้ ข้อความจะถูกส่งไปยังที่อยู่เหล่านี้เท่านั้น จะถูกละเว้นหากใช้ Application Group
use_auto_registrationbooleanไม่หากเป็น true จะลงทะเบียนอีเมลจากพารามิเตอร์ devices โดยอัตโนมัติ
usersarrayไม่หากตั้งค่าไว้ ข้อความอีเมลจะถูกส่งไปยัง User ID ที่ระบุเท่านั้น (ลงทะเบียนผ่านการเรียก /registerEmail) ไม่เกิน 1000 User ID ในอาร์เรย์ หากระบุพารามิเตอร์ “devices” พารามิเตอร์ “users” จะถูกละเว้น
dynamic_content_placeholdersobjectไม่ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนค่าแท็กของอุปกรณ์
conditionsarrayไม่เงื่อนไขการแบ่งกลุ่มโดยใช้แท็ก ตัวอย่าง: [["Country", "EQ", "BR"]]
fromobjectไม่ระบุชื่อผู้ส่งและอีเมลที่กำหนดเอง เพื่อแทนที่ค่าเริ่มต้นในคุณสมบัติของแอปพลิเคชัน
reply-toobjectไม่ระบุอีเมลตอบกลับที่กำหนดเอง เพื่อแทนที่ค่าเริ่มต้นในคุณสมบัติของแอปพลิเคชัน
bccarrayไม่BCC (สำเนาลับ): อาร์เรย์ของที่อยู่อีเมลที่ได้รับสำเนาของอีเมลโดยที่ผู้รับคนอื่นไม่เห็น
email_typestringไม่ระบุประเภทอีเมล: "marketing" หรือ "transactional" หากไม่ระบุ ผู้ใช้ที่มี PW_ControlGroup: true จะไม่ได้รับข้อความ
email_categorystringจำเป็นเมื่อ email_type เป็น "marketing"ระบุชื่อหมวดหมู่หนึ่งที่กำหนดค่าไว้ใน ศูนย์การตั้งค่าการสมัครรับข้อมูล (เช่น Newsletter, Promotional, Product Updates)
transactionIdstringไม่ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการส่งซ้ำในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง Pushwoosh เป็นเวลา 5 นาที
capping_daysintegerไม่จำนวนวัน (สูงสุด 30) ที่จะใช้ frequency capping ต่ออุปกรณ์ หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้กำหนดค่า Global frequency capping ใน Control Panel แล้ว
capping_countintegerไม่จำนวนอีเมลสูงสุดที่สามารถส่งจากแอปที่ระบุไปยังอุปกรณ์หนึ่งๆ ภายในระยะเวลา capping_days ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด capping_count สำหรับอุปกรณ์ ข้อความนั้นจะไม่ถูกส่งไปยังอุปกรณ์นั้น
capping_excludebooleanไม่หากตั้งค่าเป็น true อีเมลนี้จะไม่ถูกนับรวมในการจำกัดความถี่สำหรับอีเมลในอนาคต
capping_avoidbooleanไม่หากตั้งค่าเป็น true การจำกัดความถี่จะไม่ถูกนำไปใช้กับอีเมลนี้โดยเฉพาะ
send_rateintegerไม่จำกัดจำนวนข้อความที่สามารถส่งได้ต่อวินาทีสำหรับผู้ใช้ทั้งหมด ช่วยป้องกันการโอเวอร์โหลดของแบ็กเอนด์ระหว่างการส่งจำนวนมาก
send_rate_avoidbooleanไม่หากตั้งค่าเป็น 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
}

เงื่อนไขแท็ก

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 XXXXAPI Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ

Request body

Anchor link to
ชื่อประเภทคำอธิบาย
application*stringรหัสแอปพลิเคชัน Pushwoosh
email*stringที่อยู่อีเมล
languagestringภาษาท้องถิ่นของอุปกรณ์ ต้องเป็นรหัสสองตัวอักษรตัวพิมพ์เล็กตามมาตรฐาน ISO-639-1
userIdstringUser ID เพื่อเชื่อมโยงกับที่อยู่อีเมล
tz_offsetintegerออฟเซ็ตเขตเวลาเป็นวินาที
tagsobjectค่าแท็กที่จะกำหนดให้กับอุปกรณ์ที่ลงทะเบียน
{
"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 XXXXAPI Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ

Request body

Anchor link to
ชื่อประเภทคำอธิบาย
applicationstringรหัสแอปพลิเคชัน Pushwoosh
emailstringที่อยู่อีเมลที่ใช้ในคำขอ /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 XXXXAPI Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ

Request body

Anchor link to
ชื่อประเภทคำอธิบาย
applicationstringรหัสแอปพลิเคชัน Pushwoosh
emailstringที่อยู่อีเมล
tagsobjectอ็อบเจกต์ JSON ของแท็กที่จะตั้งค่า ส่ง ‘null’ เพื่อลบค่า
userIdstringUser 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 XXXXAPI Device Token เพื่อเข้าถึง Device API แทนที่ XXXX ด้วย Device API token จริงของคุณ

Request body

Anchor link to
ชื่อประเภทคำอธิบาย
application*stringรหัสแอปพลิเคชัน Pushwoosh
email*stringที่อยู่อีเมล
userId*stringUser ID เพื่อเชื่อมโยงกับที่อยู่อีเมล
tz_offsetintegerออฟเซ็ตเขตเวลาเป็นวินาที
{
"status_code": 200,
"status_message": "OK",
"response": null
}
ตัวอย่าง
{
"request": {
"application": "APPLICATION_CODE", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"email": "email@domain.com", // จำเป็น ที่อยู่อีเมลของผู้ใช้
"userId": "userId", // จำเป็น User ID เพื่อเชื่อมโยงกับที่อยู่อีเมล
"tz_offset": 3600 // ไม่จำเป็น ออฟเซ็ตเขตเวลาเป็นวินาที
}
}