Connectors
เชื่อมต่อแอปของคุณกับบริการภายนอก เช่น Slack, Resend และ ElevenLabs โดย credentials จะถูกเข้ารหัสและ actions ได้รับการ authenticate ล่วงหน้าแล้ว
Connectors ช่วยให้คุณผสานบริการภายนอกเข้ากับแอปได้โดยไม่ต้องจัดการ API key แบบ raw ในโค้ด คุณตั้งค่าการเชื่อมต่อเพียงครั้งเดียว ผูกกับโปรเจกต์ของคุณ แล้วเรียกใช้ actions ที่สร้างไว้ล่วงหน้าจากแอปผ่าน Proyecta SDK โดย credentials จะถูกเข้ารหัสขณะเก็บข้อมูลและจะไม่ถูกเปิดเผยต่อโค้ด frontend ของคุณเลย
Connectors ที่ใช้งานได้
หัวข้อที่มีชื่อว่า “Connectors ที่ใช้งานได้”| Connector | หมวดหมู่ | ประเภท Auth | สิ่งที่ทำได้ |
|---|---|---|---|
| Resend | Communications | API key | ส่งอีเมลแบบ transactional, ส่งอีเมลเป็นชุด, แสดงรายการโดเมนที่ยืนยันแล้ว |
| Slack | Communications | OAuth | โพสต์ข้อความ, แสดงรายการ channel และผู้ใช้, react ต่อข้อความ, อ่าน thread |
| ElevenLabs | AI | API key | แปลงข้อความเป็นเสียง, แสดงรายการเสียงที่มี, สร้างเอฟเฟกต์เสียง |
มี connectors ใหม่เพิ่มเข้ามาอย่างต่อเนื่อง
วิธีการทำงานของ Connectors
หัวข้อที่มีชื่อว่า “วิธีการทำงานของ Connectors”- คุณสร้างการเชื่อมต่อ — ระบุ credentials (API key หรือลงชื่อเข้าใช้ผ่าน OAuth)
- คุณผูกการเชื่อมต่อ กับโปรเจกต์ — เพื่อให้สิทธิ์โปรเจกต์ใช้ credentials ชุดนั้น
- แอปของคุณเรียกใช้ actions — SDK จะส่งคำขอผ่าน Proyecta Cloud ซึ่งจะฉีด credentials ฝั่ง server
โค้ดในแอปของคุณจะไม่สัมผัส API key หรือ OAuth token แบบ raw เลย ระบบ connector จัดการ authentication, rate limiting และการบันทึก audit log ทั้งหมด
ตั้งค่า Connector
หัวข้อที่มีชื่อว่า “ตั้งค่า Connector”- เปิดโปรเจกต์ของคุณใน Builder
- ไปที่ Settings > Connectors
- คลิก connector ที่ต้องการจากแคตตาล็อก (เช่น Resend)
- กรอก credentials ของคุณ:
- Connectors แบบ API key (Resend, ElevenLabs): วาง secret key ของคุณ
- Connectors แบบ OAuth (Slack): ลงชื่อเข้าใช้และอนุญาตการเข้าถึง
- ตั้งชื่อการเชื่อมต่อ (เช่น “Production Resend”)
- ระบบจะทดสอบการเชื่อมต่อโดยอัตโนมัติและแสดงสถานะ Active หากถูกต้อง
ใช้งาน Connector ในแอปของคุณ
หัวข้อที่มีชื่อว่า “ใช้งาน Connector ในแอปของคุณ”Connector actions จะถูกเรียกใช้จากโค้ดฝั่ง server (Convex actions) ผ่าน Proyecta SDK:
'use node';import { action } from './_generated/server';import { v } from 'convex/values';import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY ?? null });
export const notifySlack = action({ args: { message: v.string(), }, handler: async (ctx, args) => { const result = await proyecta.connectors.execute({ connectorId: 'slack', actionId: 'postMessage', input: { channel: '#general', text: args.message, }, }); return result.output; },});เมธอด execute จะคืนค่า:
| Field | คำอธิบาย |
|---|---|
output | ค่าที่ action คืนกลับมา (รูปแบบขึ้นอยู่กับ action ที่ใช้) |
durationMs | เวลาในการประมวลผลเป็นมิลลิวินาที |
invocationId | ID ของรายการใน audit log |
ให้ AI จัดการการเชื่อมต่อให้
หัวข้อที่มีชื่อว่า “ให้ AI จัดการการเชื่อมต่อให้”คุณไม่จำเป็นต้องเขียนโค้ด connector เอง AI Builder รู้ว่า connectors ใดถูกผูกกับโปรเจกต์ของคุณ และสามารถสร้างการผสานรวมให้คุณได้:
"ส่งอีเมลต้อนรับเมื่อผู้ใช้สมัครสมาชิก"— ใช้ Resend connector"โพสต์ข้อความ Slack เมื่อมีออเดอร์ใหม่เข้ามา"— ใช้ Slack connector"เล่นเสียงบรรยายในหน้าบทความ"— ใช้ ElevenLabs connector
อ้างอิง Connector Actions
หัวข้อที่มีชื่อว่า “อ้างอิง Connector Actions”| Action | Side effects | คำอธิบาย |
|---|---|---|
sendEmail | write | ส่งอีเมลแบบ transactional รายการเดียว |
sendBatch | write | ส่งอีเมลหลายรายการพร้อมกัน |
listDomains | read | แสดงรายการโดเมนสำหรับส่งอีเมลที่ยืนยันแล้ว |
| Action | Side effects | คำอธิบาย |
|---|---|---|
postMessage | write | โพสต์ข้อความไปยัง channel |
listChannels | read | แสดงรายการ channel ใน workspace |
listUsers | read | แสดงรายการสมาชิกใน workspace |
reactToMessage | write | เพิ่ม emoji reaction |
getThread | read | ดึงข้อความตอบกลับใน thread |
ElevenLabs
หัวข้อที่มีชื่อว่า “ElevenLabs”| Action | Side effects | คำอธิบาย |
|---|---|---|
textToSpeech | write | แปลงข้อความเป็นไฟล์เสียงพูด |
listVoices | read | แสดงรายการเสียงที่มีให้ใช้งาน |
generateSoundEffect | write | สร้างเอฟเฟกต์เสียงด้วย AI |
สถานะการเชื่อมต่อ
หัวข้อที่มีชื่อว่า “สถานะการเชื่อมต่อ”| สถานะ | ความหมาย |
|---|---|
| Active | Credentials ถูกต้องและการเชื่อมต่อพร้อมใช้งาน |
| Broken | Credentials หมดอายุหรือถูกยกเลิก — อัปเดต credentials เพื่อกู้คืนการเชื่อมต่อ |
ความปลอดภัย
หัวข้อที่มีชื่อว่า “ความปลอดภัย”- Credentials ถูกเข้ารหัสด้วย AES-256-GCM ขณะเก็บข้อมูล
- Actions มีการจำกัดอัตราการเรียกใช้ที่ 1,000 คำขอต่อนาทีต่อ connector ต่อโปรเจกต์
- ทุกการเรียกใช้ action จะถูกบันทึกพร้อม audit trail (การเชื่อมต่อ, action, ระยะเวลา, สถานะ)
- การเชื่อมต่อมีขอบเขตอยู่ในระดับ workspace ทั้งหมด
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”ใช้การเชื่อมต่อเดียวกันกับหลายโปรเจกต์ได้ไหม?
ได้ สร้างการเชื่อมต่อเพียงครั้งเดียวแล้วผูกกับโปรเจกต์ใดก็ได้ใน workspace เดียวกัน
จะเกิดอะไรขึ้นถ้า API key หมดอายุหรือถูกยกเลิก?
สถานะการเชื่อมต่อจะเปลี่ยนเป็น Broken อัปเดต credentials ใน Settings > Connectors เพื่อกู้คืนการเชื่อมต่อ
เรียกใช้ connector actions จาก frontend ได้ไหม?
ไม่ได้ Connector actions ต้องถูกเรียกใช้จากโค้ดฝั่ง server (Convex actions) เพื่อรักษาความปลอดภัยของ credentials โดย SDK จะส่งคำขอผ่าน Proyecta Cloud ซึ่งจะฉีด authentication ฝั่ง server
สามารถเพิ่ม connector แบบกำหนดเองได้ไหม?
ยังไม่ได้ในตอนนี้ การกำหนด connector แบบกำหนดเองอยู่ใน roadmap แล้ว
เร็วๆ นี้
หัวข้อที่มีชื่อว่า “เร็วๆ นี้”- Connectors เพิ่มเติม (Google, Twilio, SendGrid และอื่นๆ)
- Custom connector definitions — นำ API ของคุณเองมาใช้
- Webhook ingestion สำหรับ events ขาเข้าจากบริการที่เชื่อมต่อ
- OAuth gateway — เก็บ token ไว้ฝั่ง server แม้สำหรับ flow ที่เริ่มต้นจาก client