1. เริ่มต้นใช้ API
Base URL
https://<โดเมนของระบบ>/api/partner/v1Authorization
แนบ API Key ไว้ใน header ของทุกคำขอ เพื่อยืนยันว่าคำขอมาจากธุรกิจของคุณ
x-easyrobin-api-key: <your_app_api_key>หมายเหตุ: your_app_api_key สร้าง Key ได้ที่ การตั้งค่า › Developer › API Key
Content Negotiation
ทุก API รับและส่งข้อมูลเป็น JSON ทั้งใน request body และ response กรุณาระบุชนิดข้อมูลไว้ใน request header ดังนี้
Content-Type: application/jsonResponse
เมื่อทำงานสำเร็จ
เมื่อคำขอทำงานสำเร็จ ระบบจะตอบกลับในรูปแบบนี้:
{
"ok": true,
"status_code": 201
"message": "Created resource successfully",
"data": { /* ...data payload, if any... */ }
}เมื่อเกิดข้อผิดพลาด
หากคำขอมีข้อผิดพลาด ระบบจะตอบกลับในรูปแบบนี้:
{
"ok": false,
"status_code": 400
"message": "Bad request"
}Social profile
ชุดข้อมูลที่บอกว่ารายชื่อ (contact) นี้มาจากบัญชีโซเชียลใด ระบบใช้ข้อมูลชุดนี้ระบุตัวรายชื่อ
"social_profile" : {
"platform" : "line",
"id" : "U1234567890abcdef1234567890abcdef",
"platform_id" : "Uabcdef1234567890abcdef1234567890",
"platform_name" : "HelloCheck",
"line_basic_id" : "@548unshk"
}Key ใน social_profile | Description | Key ที่ตรงกันใน LINE Messaging API |
platform | enum : line, facebook, instagram | ไม่มี |
id | ID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID) | ไม่มี |
platform_id | ID ของบัญชีธุรกิจ: Bot user ID ของ LINE OA, Facebook Page ID หรือ Instagram ID | userId |
platform_name | ชื่อที่แสดงของ LINE OA, ชื่อ Facebook Page หรือ Username ของ Instagram | displayName |
line_basic_id | LINE ID ของ LINE OA (Facebook และ Instagram ไม่มีค่านี้) | basicId |
- หากต้องการค่า
platform_id,platform_name, และline_basic_idของ LINE OA ให้ทำดังนี้:เรียก endpoint ของ LINE Messaging API :
https://api.line.me/v2/bot/infoโดยใช้ Authorization เป็น channel access token (long-lived)curl --location --request GET 'https://api.line.me/v2/bot/info' \ --header 'Authorization: Bearer <your channel access token (long-lived)>'ตัวอย่างการตอบกลับ
{ "userId": "UXXXefceXXXXXXXfeXXXXXXeXXbXXfXXc", "basicId": "@easyrobin", "displayName": "Easyrobin", "pictureUrl": "https://profile.line-scdn.net/0hXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "chatMode": "bot", "markAsReadMode": "auto" }
ข้อมูลเพิ่มเติม
- Contact ลูกค้าหรือผู้ใช้ที่ทักเข้ามาทางช่องทางต่างๆ เช่น LINE ใน Easyrobin เราเรียกคนกลุ่มนี้ว่า "รายชื่อ" หรือ "ลูกค้า"
- รูปแบบของ
birth_dateคือ'YYYY-mm-dd'ตัวอย่าง:“1998-11-29”
- Attributes ข้อมูลเฉพาะของลูกค้าแต่ละราย (contact)
- ตั้งชื่อ (display_name) และค่า (value.text) ของแต่ละฟิลด์ผ่าน API ได้เท่านั้น
- การอัปเดตฟิลด์นี้จะแทนที่ข้อมูลเดิมทั้งหมด ข้อมูลเก่าในฟิลด์จะไม่ถูกเก็บไว้อีก
- หากส่ง
display_nameที่ยังไม่มีอยู่ ระบบจะสร้าง attribute ใหม่ให้

- Tags แท็กที่ติดไว้กับรายชื่อ ช่วยให้กรองและค้นหารายชื่อที่เกี่ยวข้องกับแท็กนั้นได้สะดวกขึ้น
- การอัปเดตฟิลด์นี้จะแทนที่ข้อมูลเดิมทั้งหมด ข้อมูลเก่าในฟิลด์จะไม่ถูกเก็บไว้อีก

- labels คือแท็กแชท ใช้ติดป้ายให้รายชื่อหรือแชท เพื่อให้ทีมจัดการรายชื่อและแชทได้ง่ายขึ้น
- การอัปเดตฟิลด์นี้จะแทนที่ข้อมูลเดิมทั้งหมด ข้อมูลเก่าในฟิลด์จะไม่ถูกเก็บไว้อีก


- ไฟล์รายการค่าของประเทศและจังหวัดcountry.json8.8KBprovince.json2.2KB
2. Contact API
2.1 Get Contact
- Method : GET
- URL :
/contact/:platform/:platform_id/user/:user_id - Authorization : API Key
- Path ParametersKeyDescription
platformenum :line,facebook,instagramplatform_idID ของบัญชีธุรกิจ: Bot user ID ของ LINE OA, Facebook Page ID หรือ Instagram IDuser_idID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID) - ตัวอย่าง
- Response พบรายชื่อ
- Response ไม่พบ
{ "ok": false, "status_code": 404, "message": "Not found contact" }
curl --location --request GET '/contact/line/Uabcdef1234567890abcdef1234567890/user/U1234567890abcdef1234567890abcdef' \ --header 'x-easyrobin-api-key: <your_app_api_key>' - Response พบรายชื่อ
2.2 Create Contact
- Method : POST
- URL :
/contact - Authorization : API Key
- Body KeyTypeLengthRequiredDescription
social_profile↓Objectrequiredข้อมูลบัญชีโซเชียลของรายชื่อนี้→platformStringใช้ค่าใดค่าหนึ่งใน enumrequiredenum :line,facebook,instagram→idStringmax: 40requiredID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID)→platform_idStringmax: 40requiredID ของบัญชีธุรกิจ: Bot user ID ของ LINE OA, Facebook Page ID หรือ Instagram ID→platform_nameStringmax: 255requiredชื่อที่แสดงของ LINE OA, ชื่อ Facebook Page หรือ Username ของ Instagram→line_basic_idStringmax: 255requiredLINE ID ของ LINE OA (Facebook และ Instagram ไม่มีค่านี้)profile_picture_urlStringmax: 2000requiredURL ของรูปโปรไฟล์รายชื่อplatform_display_nameStringmax: 255requiredชื่อเดิมของรายชื่อตามที่แพลตฟอร์มต้นทางส่งมาdisplay_nameStringmax: 255requiredชื่อที่ทีมแอดมินใช้เรียกรายชื่อนี้ (ถ้าไม่ส่ง จะใช้ค่าของplatform_display_name)first_nameStringmax: 100requiredชื่อจริงของรายชื่อ แสดงในข้อมูลทั่วไปlast_nameStringmax: 100optionalนามสกุลของรายชื่อ แสดงในข้อมูลทั่วไปphoneStringmax: 20optionalเบอร์โทร รูปแบบ:'0987654321'emailStringmax: 254optionalอีเมลcountryStringใช้ค่าใดค่าหนึ่งใน enumoptionalประเทศ ค่า enum ดูได้ในไฟล์country.jsoncityStringใช้ค่าใดค่าหนึ่งใน enumoptionalจังหวัด ค่า enum ดูได้ในไฟล์province.jsongenderStringใช้ค่าใดค่าหนึ่งใน enumoptionalenum :male,female,not_say(ค่าเริ่มต้นคือnot_say)ageNumbermin: 1 max: 99optionalอายุbirth_dateDateoptionalวันเกิด รูปแบบ:'YYYY-MM-DD'attributes↓Array of objectoptionalข้อมูลเฉพาะ→display_nameStringmax: 100requiredชื่อฟิลด์ที่แสดงในข้อมูลเฉพาะ และใช้บอกว่าจะสร้างหรือแก้ attribute ตัวไหน (ตั้งเป็นภาษาไทยหรืออังกฤษก็ได้ แต่ห้ามซ้ำกันในธุรกิจเดียวกัน)→value↓Objectrequired→textStringmax: 2000requiredค่าที่จะแสดงในฟิลด์นั้นของข้อมูลเฉพาะtagsArray of stringmax: 20optionalแท็กรายชื่อ ใส่ได้ไม่เกิน 20 แท็กlabelsArray of stringmax: 10optionalแท็กแชท ใส่ได้ไม่เกิน 10 แท็ก - ตัวอย่าง
- Response สร้างรายชื่อสำเร็จ
{ "ok": true, "status_code": 201, "message": "Created contact successfully" } - Response มีรายชื่อนี้อยู่แล้ว
{ "ok": false, "status_code": 409, "message": "The contact already exists" }
- Response สร้างรายชื่อสำเร็จ
2.3 Update Contact
- Method : PATCH
- URL :
/contact/:platform/:platform_id/user/:user_id - Authorization : API Key
- Path ParametersKeyDescription
platformenum :line,facebook,instagramplatform_idID ของบัญชีธุรกิจ: Bot user ID ของ LINE OA, Facebook Page ID หรือ Instagram IDuser_idID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID)
- Path Parameters
- Body KeyTypeLengthDescription
display_nameStringmax: 1000ชื่อที่ทีมแอดมินใช้เรียกรายชื่อนี้ (ถ้าไม่ส่ง จะใช้ค่าของplatform_display_name)first_nameStringmax: 100ชื่อจริงของรายชื่อ แสดงในข้อมูลทั่วไปlast_nameStringmax: 100นามสกุลของรายชื่อ แสดงในข้อมูลทั่วไปphoneStringmax: 20เบอร์โทร รูปแบบ:'0987654321'emailStringmax: 254อีเมลcustomer_idStringไม่มีรหัสลูกค้าorg_nameStringไม่มีชื่อบริษัทtinStringไม่มีเลขประจำตัวผู้เสียภาษีcountryStringEnumประเทศ ค่า enum ดูได้ในไฟล์country.jsoncityStringEnumจังหวัด ค่า enum ดูได้ในไฟล์province.jsongenderStringEnumenum :male,female,not_say(ค่าเริ่มต้นคือnot_say)ageNumbermin: 1 max: 99อายุbirth_dateDatemax: 24วันเกิด รูปแบบ:'YYYY-MM-DD'attributes↓Array of objectข้อมูลเฉพาะ (การอัปเดตจะแทนที่ข้อมูลเดิมทั้งหมด ข้อมูลเก่าจะไม่ถูกเก็บไว้อีก)→display_nameStringmax: 100ชื่อฟิลด์ที่แสดงในข้อมูลเฉพาะ และใช้บอกว่าจะสร้างหรือแก้ attribute ตัวไหน (ตั้งเป็นภาษาไทยหรืออังกฤษก็ได้ แต่ห้ามซ้ำกันในธุรกิจเดียวกัน)→value↓Object→textStringmax: 2000ค่าที่จะแสดงในฟิลด์นั้นของข้อมูลเฉพาะtagsArray of stringmax: 20แท็กรายชื่อ (การอัปเดตจะแทนที่แท็กเดิมทั้งหมด แท็กเก่าจะไม่ถูกเก็บไว้อีก)labelsArray of stringmax: 10แท็กแชท (การอัปเดตจะแทนที่แท็กเดิมทั้งหมด แท็กเก่าจะไม่ถูกเก็บไว้อีก) - ตัวอย่าง
- Response อัปเดตสำเร็จ
{ "ok": true, "status_code": 200, "message": "Update contact successfully" } - Response ไม่พบรายชื่อ
{ "ok": false, "status_code": 404, "message": "The contact not found" }
- Response อัปเดตสำเร็จ
3. Chat API
3.1 เรียกแอดมินเข้ามาดูแลห้องแชท
ขอให้แอดมินเข้ามาตอบในห้องแชทของผู้ใช้ แชทบอทจะหยุดตอบห้องนี้ไว้ชั่วคราว
- Method : POST
- URL :
/chat/:platform/:platform_id/user/:user_id/request-agent - Authorization : API Key
- Path ParametersKeyDescription
platformenum :line,facebook,instagramplatform_idBot user ID ของ LINE OA หรือ Facebook Page ID หรือ Instagram ID - LINE OA ใช้ Bot user ID หรือ provider’s Channel ID) ก็ได้ - Facebook: ใช้ Facebook Page ID - Instagram: ใช้ Instagram IDuser_idID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID) - ตัวอย่าง
- Response ทำงานสำเร็จ
{ "ok": true, "status_code": 200, "message": "Agent has been requested for the chat room" } - Response สถานะห้องแชทไม่ตรงเงื่อนไข
{ "ok": false, "status_code": 409, "message": "Chat room cannot be changed to agent requested" } - Response ไม่พบ
{ "ok": false, "status_code": 404, "message": "Not found chat room" } - Response ไม่มีสิทธิ์
{ "ok": false, "status_code": 401, "message": "You do not have valid permission" }
curl --location --request POST '/chat/line/Uabcdef1234567890abcdef1234567890/user/U1234567890abcdef1234567890abcdef/request-agent' \ --header 'x-easyrobin-api-key: <your_app_api_key>' - Response ทำงานสำเร็จ
3.2 ปิดแชทของแอดมินและให้แชทบอทกลับมาตอบ
ปิดแชทที่แอดมินกำลังดูแลอยู่ แล้วให้แชทบอทกลับมาตอบตามปกติ
- Method : POST
- URL :
/chat/:platform/:platform_id/user/:user_id/close-chat - Authorization : API Key
- Path ParametersKeyDescription
platformenum :line,facebook,instagramplatform_idID ของบัญชีธุรกิจบนแพลตฟอร์มนั้น LINE OA: ใช้ Bot user ID หรือ Channel ID ของ provider ก็ได้ Facebook: ใช้ Facebook Page ID Instagram: ใช้ Instagram IDuser_idID ของรายชื่อบนแพลตฟอร์มนั้น (LINE User ID, Facebook User ID หรือ Instagram User ID) - ตัวอย่าง
- Response ทำงานสำเร็จ
{ "ok": true, "status_code": 200, "message": "Chat room session has been closed" } - Response สถานะห้องแชทไม่ตรงเงื่อนไข
{ "ok": false, "status_code": 409, "message": "Chat room session cannot be closed" } - Response ไม่พบ
{ "ok": false, "status_code": 404, "message": "Not found chat room" } - Response ไม่มีสิทธิ์
{ "ok": false, "status_code": 401, "message": "You do not have valid permission" }
curl --location --request GET '/chat/line/Uabcdef1234567890abcdef1234567890/user/U1234567890abcdef1234567890abcdef/close-chat' \ --header 'x-easyrobin-api-key: <your_app_api_key>' - Response ทำงานสำเร็จ