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

API เทมเพลตอีเมล

Email Templates API จัดการเทมเพลตอีเมลที่ใช้ซ้ำได้ซึ่งอยู่เบื้องหลังพรีเซ็ตอีเมลของแอปพลิเคชัน ซึ่งเป็นเทมเพลตเดียวกับที่คุณสร้างในตัวแก้ไขอีเมลของ Control Panel แต่ละเทมเพลตจะจัดเก็บหัวเรื่อง ข้อมูลผู้ส่ง และเนื้อหาจากตัวแก้ไขตามแต่ละภาษา และระบุได้ด้วยโค้ดของพรีเซ็ตอีเมลที่เชื่อมต่ออยู่ ใช้โค้ดนั้นเพื่อส่งเทมเพลตผ่าน Notify (เพย์โหลดอีเมล email_template) หรือ Customer Journey Send email point

URL พื้นฐาน

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

เอนด์พอยต์ทั้งหมดให้บริการผ่าน HTTPS คำขอและการตอบสนองใช้ application/json เว้นแต่จะระบุไว้เป็นอย่างอื่น

การรับรองความถูกต้อง

Anchor link to

ทุกคำขอต้องมีเฮดเดอร์ Authorization พร้อมกับ โทเค็น Server API ของคุณ:

Authorization: Api YOUR_API_TOKEN

ข้อตกลงทั่วไป

Anchor link to
  • การตั้งชื่อฟิลด์: เนื้อหาของคำขอและพารามิเตอร์ของคิวรี/พาธยอมรับ lowerCamelCase (ตัวอย่างเช่น previewSettings, searchByLabel, includeHtml) — เซิร์ฟเวอร์จะ unmarshal ทั้งสองรูปแบบ การตอบสนองจะถูก marshal โดยใช้ชื่อฟิลด์ของ proto ในรูปแบบ snake_case (per_page, email_template, sender_info, preview_settings และอื่นๆ) เสมอ ตัวอย่างการตอบสนองและ การอ้างอิงอ็อบเจกต์ ด้านล่างใช้รูปแบบนั้น
  • code: การตอบสนองของเทมเพลตทุกครั้งจะส่งโค้ดของพรีเซ็ตอีเมลที่เชื่อมต่ออยู่ ไม่ใช่ ID เทมเพลตภายใน ส่งโค้ดเดียวกันนี้ไปยัง Get, Update, Delete และ API การส่งข้อความ/journey ที่กล่าวถึงข้างต้น
  • ฟิลด์ที่ไม่มีข้อมูล: การตอบสนองจะรวมฟิลด์ทั้งหมด แม้ว่าจะว่างเปล่าหรือมีค่าเป็นศูนย์ก็ตาม

การตอบสนองข้อผิดพลาด

Anchor link to
สถานะ HTTPความหมาย
400 Bad Requestอาร์กิวเมนต์ไม่ถูกต้อง — ฟิลด์ที่จำเป็นขาดหายไปหรือมีรูปแบบไม่ถูกต้อง หรือเงื่อนไขเบื้องต้นไม่สำเร็จ (ตัวอย่างเช่น การลบเทมเพลตที่ยังคงใช้งานโดย journey)
401 Unauthorizedเฮดเดอร์ Authorization ขาดหายไปหรือไม่ถูกต้อง
403 Forbiddenแอปพลิเคชันหรือพรีเซ็ตไม่ได้เป็นของผู้เรียก
404 Not Foundไม่พบเทมเพลต, พรีเซ็ต หรือแอปพลิเคชัน
500 Internal Server Errorเกิดข้อผิดพลาดที่ไม่คาดคิดฝั่งเซิร์ฟเวอร์

เอนด์พอยต์

Anchor link to
เมธอดพาธคำอธิบาย
POST/api/email_templatesสร้างเทมเพลตอีเมลใหม่
GET/api/email_templatesแสดงรายการเทมเพลตอีเมลของแอปพลิเคชัน
GET/api/email_templates/{code}ดึงข้อมูลเทมเพลตอีเมลเดียว
PUT/api/email_templates/{code}อัปเดตเทมเพลตอีเมล
DELETE/api/email_templates/{code}ลบเทมเพลตอีเมล
POST/api/email_templates:cloneโคลนเทมเพลตอีเมลไปยังแอปพลิเคชัน

สร้าง

Anchor link to

สร้างเทมเพลตอีเมลใหม่ — เนื้อหาจากตัวแก้ไขพร้อมกับพรีเซ็ตอีเมลที่เชื่อมต่อ — ในแอปพลิเคชัน และส่งคืนโค้ดเทมเพลตที่สร้างขึ้น

POST /api/email_templates

เนื้อหาของคำขอ

Anchor link to
พารามิเตอร์Typeจำเป็นคำอธิบาย
applicationstringใช่โค้ดแอปพลิเคชัน Pushwoosh ที่จะสร้างเทมเพลต
namestringใช่ชื่อเทมเพลต, 1–255 ตัวอักษร
contentobjectใช่อ็อบเจกต์เนื้อหาอีเมล
labelstringไม่ป้ายกำกับข้อความอิสระ, สูงสุด 255 ตัวอักษร
categoriesarray of stringsไม่ชื่อหมวดหมู่เพื่อแท็กเทมเพลต
previewSettingsobjectไม่การตั้งค่าการแสดงตัวอย่างของตัวแก้ไขตามต้องการ, จัดเก็บและส่งคืนตามที่เป็นอยู่
systembooleanไม่ทำเครื่องหมายเทมเพลตเป็นเทมเพลตระบบ — คุณสมบัติภายใน, เช่น ส่วนของบล็อกที่ซิงค์ เทมเพลตระบบจะถูกซ่อนจาก List (ดูหมายเหตุด้านล่าง), แต่ยังคงเข้าถึงได้ด้วยโค้ด ค่าเริ่มต้นคือ false
ตัวอย่างคำขอ
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "Welcome email",
"label": "onboarding",
"categories": ["lifecycle"],
"content": {
"senderInfo": {
"from": { "email": "hello@acme.com", "name": "Acme" },
"replyTo": { "email": "support@acme.com", "name": "Acme Support" }
},
"subject": { "en": "Welcome to Acme!", "default": "Welcome to Acme!" },
"pushwoosh": {
"html": "<html><body>Welcome, {name|string|there}!</body></html>",
"localizationData": { "default": { "name": "there" } }
}
}
}

การตอบสนอง

Anchor link to

ส่งคืน { "email_template": { ... } }อ็อบเจกต์เทมเพลตอีเมล ที่สร้างขึ้น, แต่ ไม่มี content (เอนด์พอยต์นี้จะไม่ส่งข้อมูลกลับมา) เรียกใช้ Get พร้อมกับ code ที่ได้รับหากคุณต้องการอ่านเนื้อหากลับมา

แสดงรายการ

Anchor link to

แสดงรายการเทมเพลตอีเมลของแอปพลิเคชัน — เฉพาะข้อมูลเมตา, ไม่มีเนื้อหา — พร้อมการแบ่งหน้า, การเรียงลำดับ, และการกรองตามชื่อ, ป้ายกำกับ, หรือหมวดหมู่

GET /api/email_templates

พารามิเตอร์ของคิวรี

Anchor link to
พารามิเตอร์Typeจำเป็นคำอธิบาย
applicationstringใช่โค้ดแอปพลิเคชันที่จะแสดงรายการเทมเพลต
orderBystringไม่NAME (ค่าเริ่มต้น), CREATED, หรือ UPDATED
orderDirectionstringไม่ASC (ค่าเริ่มต้น) หรือ DESC
pageintegerไม่ดัชนีหน้าแบบศูนย์
perPageintegerไม่ขนาดของหน้า ค่าเริ่มต้นคือ 100 เมื่อละเว้นหรือเป็น 0 เอนด์พอยต์นี้ไม่ได้บังคับค่าสูงสุดที่ชัดเจน
searchByNamestringไม่การจับคู่สตริงย่อย (like %value%) กับชื่อของเทมเพลต หรือ โค้ดของมัน — การจับคู่ใดก็ได้ก็เพียงพอ
searchByLabelstringไม่การจับคู่สตริงย่อยบนป้ายกำกับ (like %label%) หรือการจับคู่แบบตรงทั้งหมดเมื่อ strictSearchByLabel เป็น true
strictSearchByLabelbooleanไม่ใช้การจับคู่แบบตรงทั้งหมดแทนสตริงย่อยสำหรับ searchByLabel
searchByCategoryarray of stringsไม่ทำซ้ำพารามิเตอร์เพื่อกรองตามหมวดหมู่หลายรายการ, เช่น ?searchByCategory=lifecycle&searchByCategory=promo

การตอบสนอง

Anchor link to
ฟิลด์Typeคำอธิบาย
email_templatesarray of objectsหน้าปัจจุบันของ อ็อบเจกต์เทมเพลตอีเมล content จะเป็น null ในทุกรายการ
pageintegerดัชนีหน้าที่ส่งคืน
per_pageintegerขนาดของหน้าที่ใช้สำหรับการตอบสนองนี้
totalintegerจำนวนเทมเพลตทั้งหมดที่ตรงกับตัวกรอง, ในทุกหน้า
ตัวอย่างการตอบสนอง
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "Welcome email", "label": "onboarding", "categories": ["lifecycle"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

ดึงข้อมูล

Anchor link to

ส่งคืนเทมเพลตอีเมลเดียวตามโค้ด, รวมถึงข้อมูลผู้ส่ง, หัวเรื่องตามแต่ละภาษา, และเนื้อหาทั้งหมดจากตัวแก้ไข

GET /api/email_templates/{code}

พารามิเตอร์ของพาธ

Anchor link to
พารามิเตอร์Typeคำอธิบาย
codestringโค้ดของเทมเพลต (โค้ดพรีเซ็ตอีเมลที่เชื่อมต่ออยู่)

พารามิเตอร์ของคิวรี

Anchor link to
พารามิเตอร์Typeจำเป็นคำอธิบาย
includeHtmlbooleanไม่ระบุว่าจะส่งคืน html ที่เรนเดอร์แล้วพร้อมกับเนื้อหาจากตัวแก้ไขหรือไม่ ค่าเริ่มต้นคือ true ตั้งค่าเป็น false เพื่อข้าม — โดยทั่วไปแล้วจะมีขนาดเกินครึ่งของเพย์โหลด และเนื้อหาจากตัวแก้ไขก็อธิบายเทมเพลตอยู่แล้ว

การตอบสนอง

Anchor link to

ส่งคืน { "email_template": { ... } }, อ็อบเจกต์เทมเพลตอีเมล ฉบับเต็ม

อัปเดต

Anchor link to

อัปเดตเทมเพลตอีเมลที่มีอยู่ตามโค้ด, โดยเขียนทับฟิลด์ที่ให้มา

PUT /api/email_templates/{code}

พารามิเตอร์ของพาธ

Anchor link to
พารามิเตอร์Typeคำอธิบาย
codestringโค้ดของเทมเพลตที่จะอัปเดต

เนื้อหาของคำขอ

Anchor link to
พารามิเตอร์Typeจำเป็นคำอธิบาย
namestringไม่ชื่อใหม่, 1–255 ตัวอักษร ละเว้นเพื่อคงชื่อปัจจุบันไว้
contentobjectไม่อ็อบเจกต์เนื้อหาอีเมล ใหม่, แทนที่เนื้อหาที่จัดเก็บไว้ทั้งหมด ละเว้นเพื่อไม่เปลี่ยนแปลงเนื้อหา
labelstringไม่ป้ายกำกับใหม่ จะถูกเขียนทับเสมอ — ละเว้นหรือส่ง "" เพื่อล้างค่า
categoriesarray of stringsไม่ชุดชื่อหมวดหมู่ใหม่ทั้งหมด ละเว้นเพื่อไม่เปลี่ยนแปลงหมวดหมู่; ส่ง [] เพื่อล้างค่า
previewSettingsobjectไม่การตั้งค่าการแสดงตัวอย่างใหม่ ละเว้นเพื่อไม่เปลี่ยนแปลง
ตัวอย่างคำขอ
Anchor link to
{
"name": "Welcome email v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "hello@acme.com", "name": "Acme" } },
"subject": { "default": "Welcome to Acme — updated!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

การตอบสนอง

Anchor link to

ส่งคืน { "email_template": { ... } }อ็อบเจกต์เทมเพลตอีเมล ที่อัปเดตแล้ว, และ ไม่มี content เช่นกัน เรียกใช้ Get หากคุณต้องการอ่านเนื้อหากลับมา

ลบเทมเพลตอีเมลและพรีเซ็ตที่เชื่อมต่ออยู่ตามโค้ด, โดยลบเนื้อหาที่จัดเก็บไว้

DELETE /api/email_templates/{code}

พารามิเตอร์ของพาธ

Anchor link to
พารามิเตอร์Typeคำอธิบาย
codestringโค้ดของเทมเพลตที่จะลบ

การตอบสนอง

Anchor link to

อ็อบเจกต์ว่างเปล่าเมื่อสำเร็จ: {}

โคลน

Anchor link to

โคลนเทมเพลตอีเมล — เนื้อหาและพรีเซ็ต — ไปยังแอปพลิเคชันปลายทาง, และสามารถตั้งชื่อใหม่ได้

POST /api/email_templates:clone

เนื้อหาของคำขอ

Anchor link to
พารามิเตอร์Typeจำเป็นคำอธิบาย
emailPresetCodestringใช่code ของเทมเพลต (ที่ส่งคืนโดย Create, Get, List, หรือ Update) ที่จะโคลน ถูกตั้งชื่อว่า emailPresetCode ที่นี่เพราะเป็นโค้ดของพรีเซ็ตอีเมลที่เชื่อมต่ออยู่ — ดู ข้อตกลงทั่วไป
applicationstringใช่โค้ดแอปพลิเคชันปลายทาง สามารถเป็นแอปพลิเคชันเดียวกัน, หรือแอปพลิเคชันอื่นที่เป็นของบัญชีเดียวกัน
namestringไม่ชื่อสำหรับโคลน, 1–255 ตัวอักษร ค่าเริ่มต้นคือชื่อของเทมเพลตต้นฉบับ
ตัวอย่างคำขอ
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}

การตอบสนอง

Anchor link to
ฟิลด์Typeคำอธิบาย
email_preset_codestringcode ของเทมเพลตใหม่ — ตัวระบุเดียวกับที่ Get/Update/Delete เรียกใช้ code

การอ้างอิงอ็อบเจกต์

Anchor link to

ชื่อฟิลด์ด้านล่างตรงกับสิ่งที่ Get, List, Update, และ Create ส่งคืนจริงๆ — ชื่อฟิลด์ของ proto ในรูปแบบ snake_case (ดู ข้อตกลงทั่วไป) เมื่อคุณส่งโครงสร้างเดียวกันนี้กลับไปในเนื้อหาของคำขอ (Create, Update), รูปแบบ lowerCamelCase ที่ใช้ในตัวอย่างคำขอด้านบนก็ใช้ได้เช่นกัน; เซิร์ฟเวอร์ยอมรับทั้งสองรูปแบบในอินพุต

อ็อบเจกต์เทมเพลตอีเมล

Anchor link to
ฟิลด์Typeคำอธิบาย
codestringโค้ดของพรีเซ็ตอีเมลที่เชื่อมต่ออยู่ ใช้ระบุเทมเพลตนี้ในทุกที่ของ API
namestringชื่อเทมเพลต
labelstringป้ายกำกับข้อความอิสระ
categoriesarray of stringsชื่อหมวดหมู่
contentobjectอ็อบเจกต์เนื้อหาอีเมล มีข้อมูลเฉพาะเมื่อเรียกใช้ Get; เป็น null ในการตอบสนองของ Create, List, และ Update
preview_settingsobjectการตั้งค่าการแสดงตัวอย่างของตัวแก้ไขตามต้องการ
createdstring (RFC 3339)การประทับเวลาที่สร้าง
updatedstring (RFC 3339)การประทับเวลาที่อัปเดตล่าสุด

อ็อบเจกต์เนื้อหาอีเมล

Anchor link to
ฟิลด์Typeคำอธิบาย
sender_infoobjectอ็อบเจกต์ข้อมูลผู้ส่ง — ที่อยู่ from และ reply_to
subjectobject (map)หัวเรื่องตามแต่ละภาษา, เช่น { "en": "Subject", "default": "Subject" }
unlayer / pushwoosh / smartcardsobjectเนื้อหาจากตัวแก้ไข ต้องตั้งค่าเพียงหนึ่งอย่างเท่านั้น — เพื่อเลือกว่าตัวแก้ไขใดสร้าง (และจะเรนเดอร์) เทมเพลต ดู ประเภทของตัวแก้ไข ด้านล่าง

ประเภทของตัวแก้ไข

Anchor link to
ประเภทฟิลด์ฟิลด์ย่อยที่จำเป็นคำอธิบาย
unlayerhtml, localization_data, editor_configeditor_config, localization_dataตัวแก้ไขบล็อกแบบลากและวาง (Unlayer) editor_config คือ JSON การออกแบบของ Unlayer
pushwooshhtml, localization_datalocalization_dataตัวแก้ไขที่ใช้ HTML ของ Pushwoosh เอง แนะนำสำหรับเทมเพลตที่สร้างผ่านโปรแกรม/API
smartcardshtml, localization_data, contentcontent, localization_dataตัวแก้ไขบล็อก Smart Cards; content คือ JSON เฉพาะของตัวแก้ไขนั้น

ในทุกประเภท, html คือผลลัพธ์ที่เรนเดอร์แล้ว localization_data คือเนื้อหาตามแต่ละภาษาของตัวแก้ไขนั้น: อ็อบเจกต์ที่ใช้โค้ดภาษาเป็นคีย์ (en, es, default, …) โดยแต่ละค่าคือสำเนาของฟิลด์ของตัวแก้ไขสำหรับภาษานั้นๆ รูปแบบภายในของมันเป็นแบบเฉพาะของตัวแก้ไขและ API นี้ไม่สามารถเข้าถึงได้ — API จะจัดเก็บและส่งคืนตามที่เป็นอยู่ จำเป็นต้องมีใน Create/Update สำหรับทุกประเภท (ส่ง {} หากไม่มีอะไรที่จะแปล)

ข้อความภายใน html หรือค่า localization_data สามารถรวมแท็ก Dynamic Content ได้, เช่น {name|string|there} — แท็กเหล่านั้นจะถูกแก้ไขโดยใช้ Tags ของอุปกรณ์ผู้รับเมื่ออีเมลถูกส่งจริง API นี้จะไม่แก้ไขแท็กเหล่านั้น; มันเพียงแค่จัดเก็บและส่งคืนข้อความที่คุณใส่ไว้

อ็อบเจกต์ข้อมูลผู้ส่ง

Anchor link to
ฟิลด์Typeคำอธิบาย
fromobject{ "email": string, "name": string } — ที่อยู่ผู้ส่ง
reply_toobject{ "email": string, "name": string } — ที่อยู่สำหรับตอบกลับ

ฟิลด์ย่อย email ทั้งสอง, เมื่อไม่ว่างเปล่า, ต้องเป็นที่อยู่อีเมลที่ถูกต้อง

ที่เกี่ยวข้อง

Anchor link to