clickSomo
เปิด ClickSomo

API

ไม่มี endpoint ส่วนตัว แม้แต่สำหรับตัวอินเทอร์เฟซเอง

ผลิตภัณฑ์ส่วนใหญ่มีสอง API: ตัวที่มีเอกสารให้คุณใช้ และตัวที่น่าสนใจซึ่งหน้าจอของพวกเขาเองใช้ ตัวที่สองมักดีกว่าเสมอ และคุณไม่มีวันได้ใกล้ชิดมัน ที่นี่มีเพียงตัวเดียว และอินเทอร์เฟซเป็นไคลเอนต์ของมันเหมือนอย่างอื่นทุกประการ — ซึ่งเป็นข้อจำกัดของเรา และเป็นเหตุผลว่าทำไมทุกอย่างที่คุณต้องการสร้างจึงเป็นไปได้

กฎนี้มีต้นทุนจริงแค่ไหน

หมายความว่าบางครั้งหน้าจอต้องรอให้ API ถูกต้อง แทนที่จะลัดเลาะไปหาฟิลด์ที่สะดวก วันที่หน้าจอต้องการสิ่งที่ API สาธารณะให้ไม่ได้ คือวันที่ API ผิด และทางแก้คือแก้ที่ API

ผลตอบแทนคือไคลเอนต์ที่แตกต่างกันมากสามตัวแทบไม่เสียค่าใช้จ่ายเพิ่มเติม เซิร์ฟเวอร์ MCP เป็นไคลเอนต์ ไทล์ dash-b เป็นไคลเอนต์ สคริปต์ของคุณเองก็เป็นไคลเอนต์ ไม่มีตัวใดเป็นพลเมืองชั้นสองที่ต้องอ้อมพื้นผิวที่ออกแบบมาสำหรับคนอื่น เพราะไม่มีพื้นผิวอื่นให้ต้องเป็นรอง

มีเอกสาร และถูกทดสอบจริง

OpenAPI ถูกสร้างที่ /docs และทุกเส้นทางมีเทสต์ที่คือตัวอย่างในเอกสาร เอกสารที่เขียนแยกจากโค้ดจะคลาดเคลื่อนภายในหนึ่งเดือน ส่วนเอกสารที่ทำให้บิลด์ล้มเหลวเมื่อผิดจะไม่คลาดเคลื่อน

การลงชื่อเข้าใช้

บัญชี castomo ของคุณ ผ่าน authorization code flow พร้อม PKCE — บัญชีเดียวกับที่คุณใช้กับ dash-b และตระกูลผลิตภัณฑ์อื่น ๆ หน้าเว็บที่ไม่มีเซิร์ฟเวอร์ของตัวเองก็รัน flow นี้ได้ดี ซึ่งเป็นสิ่งที่ flow นี้ถูกออกแบบมาเพื่อ สำหรับงานแบบ machine-to-machine ใช้ API key ที่ผูกกับโปรเจกต์

พื้นผิวของ APIapi.clicksomo.com
  • 1ผู้คน/v1/contacts · /lists · /segments · /tags · /imports
  • 2เนื้อหา/v1/creatives พร้อมการตรวจสอบ พรีวิว และเรนเดอร์ต่อเป้าหมาย
  • 3การทำงานอัตโนมัติ/v1/funnels · /funnels/:id/versions · /runs · /simulate
  • 4บรอดแคสต์/v1/campaigns พร้อมกลุ่มเป้าหมาย การ materialise การตั้งเวลา และการส่ง เป็นขั้นตอนแยกกัน
  • 5อีเวนต์เข้า/v1/events — อีเวนต์จากแอปพลิเคชันของคุณเอง ใช้เป็นทริกเกอร์
  • 6การส่งมอบ/sender-identities · /domains · /apps · /webhooks
  • 7ตัวเลข/v1/reports/* และ /track/* บนโฮสต์ติดตาม

OpenAPI ที่ /docs/mcp บนโปรเซสเดียวกัน

ข้อกำหนดร่วม

รูปแบบเดียวกับบริการ castomo อื่นทุกตัว

ซึ่งสำคัญกว่าที่ฟังดู หากคุณเรียกใช้ตัวใดตัวหนึ่งจากเหล่านี้อยู่แล้ว คุณก็รู้อยู่แล้วว่าตัวนี้ตอบ ล้มเหลว และแบ่งหน้าอย่างไร

รูปแบบข้อผิดพลาดเดียว

ทุกความล้มเหลวมีรูปแบบเดียวกัน มีรหัสที่คงที่ และข้อความที่เขียนสำหรับคนอ่าน ไม่มีเส้นทางใดแต่งวิธีบ่นเอง

การแบ่งหน้าแบบ cursor

ไม่ใช่แบบ offset รายการที่เปลี่ยนแปลงระหว่างที่คุณกำลังไล่ดูจะไม่เงียบ ๆ ข้ามหรือซ้ำแถว ซึ่งต่างจากการแบ่งหน้าแบบ offset ที่ทำแบบเงียบ ๆ และเกิดขึ้นตลอด

Idempotency keys

บนทุกเส้นทางที่เปลี่ยนแปลงข้อมูล ลองส่งคำขอซ้ำเมื่อไม่แน่ใจว่าไปถึงหรือไม่ แล้วจะได้คำตอบเดิม แทนที่จะได้ผู้ติดต่อคนที่สอง แคมเปญที่สอง หรือการส่งที่สอง

ผูกกับโปรเจกต์

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

Webhooks ออก

มีการลงลายเซ็น ลองใหม่แบบถอยหลังทีละช่วง และส่งอย่างน้อยหนึ่งครั้ง — ดังนั้น endpoint ของคุณก็ควรเป็น idempotent ด้วย โดยเหตุการณ์เหล่านี้ใช้คำศัพท์ชุดเดียวกับที่รายงานใช้

การลบข้อมูลและการส่งออก

สามารถส่งออกหรือลบข้อมูลผู้ติดต่อได้ผ่าน API และการลบข้อมูลจะไปถึงทุกบริการพี่น้องที่เก็บสำเนาไว้ ผ่านช่องทางภายในของตระกูลผลิตภัณฑ์เอง

ทุกอย่างที่หน้าจอทำได้ POST ก็ทำได้

เหตุการณ์คือส่วนที่น่าสนใจ

สิ่งอื่นทั้งหมดในหน้านี้เป็นเพียงระบบพื้นฐานที่คุณคาดหวังได้ POST /v1/events คือเส้นทางที่เปลี่ยนวัตถุประสงค์ของผลิตภัณฑ์นี้

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

ส่วนที่เหลือตามมาจากโมเดลผู้ติดต่อ เหตุการณ์ถูกเพิ่มต่อท้าย ไม่มีวันแก้ไข มันคือบันทึกที่ผลิตภัณฑ์ทั้งหมดพาดพิงอยู่ กระบวนการที่ทริกเกอร์จากเหตุการณ์ที่คุณกำหนดเองไม่ใช่การเชื่อมต่อภายนอก — มันคือกลไกเดียวกับที่ message_opened ใช้ เพียงแค่เปลี่ยนชื่อในนั้น

เหตุการณ์ของคุณกลายเป็นกระบวนการapi_event
  • 1คุณส่งมันเข้ามาPOST /v1/events — ชื่อหนึ่ง ผู้ติดต่อหนึ่ง ข้อมูล payload หนึ่ง และคีย์ idempotency หนึ่ง
  • 2มันถูกรับเข้าเพิ่มต่อท้ายบันทึกของผู้ติดต่อ ไม่มีส่วนอื่นต้องรู้ว่ามันมีอยู่
  • 3กระบวนการเริ่มต้นกระบวนการใดก็ตามที่จุดเริ่มต้นระบุชื่อเหตุการณ์นั้น สำหรับผู้ติดต่อทุกรายที่มีสิทธิ์ตามเงื่อนไขการเข้าของกระบวนการนั้น
  • 4กระบวนการอื่นแยกเส้นทางตามมัน"เหตุการณ์นี้เกิดขึ้นใน 14 วันที่ผ่านมาหรือไม่" เป็นเพียงเงื่อนไขเซกเมนต์ธรรมดาหนึ่ง
  • iและมันจบการรันได้ด้วยโหนดเป้าหมายที่ระบุเหตุการณ์เดียวกันจะหยุดลำดับการส่งทันทีที่บุคคลนั้นทำสิ่งนั้น

คำศัพท์ของคุณโทเคนของคุณ

ขอบเขตที่ควรรู้ก่อนเริ่มสร้าง

ClickSomo เก็บตัวระบุสามตัวเกี่ยวกับคุณ — tenant, project และ user ในรูปแบบ id ที่อ่านไม่ได้ — และไม่มีอะไรอื่นอีก ไม่มีรหัสผ่าน ไม่มีโปรไฟล์ ไม่มีบัตร ไม่มีใบแจ้งหนี้ ขีดจำกัดของแพ็กเกจมาในรูปตัวเลข: ผู้ติดต่อกี่ราย ส่งกี่ครั้ง สร้างกี่ครั้ง คำศัพท์ด้านการชำระเงินไม่ข้ามเส้นนั้นไปมาทั้งสองทิศทาง

ผู้ติดต่อของคุณเป็นของคุณ คุณคือผู้ควบคุมข้อมูล เราคือผู้ประมวลผล ไม่มีเส้นทางใดที่ผลิตภัณฑ์อื่นในตระกูลจะอ่านหรือเขียนรายชื่อผู้ติดต่อของคุณได้ และไม่มีช่องทางนำเข้าข้อมูลให้ใช้

หากคุณกำลังพิจารณาอย่างจริงจัง: ให้อ่าน /docs ก่อนอ่านส่วนอื่นของเว็บไซต์นี้ต่อ API คือคำอธิบายที่ตรงไปตรงมาที่สุดว่าผลิตภัณฑ์นี้ทำอะไร และทุกข้ออ้างในหน้าเหล่านี้มีเส้นทางหรือชนิดโหนดที่คุณค้นพบได้ในนั้น เมื่อ schema เปลี่ยน หน้าเหล่านี้ก็เปลี่ยน