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

Connectors

เชื่อมต่อแอปของคุณกับบริการภายนอก เช่น Slack, Resend และ ElevenLabs โดย credentials จะถูกเข้ารหัสและ actions ได้รับการ authenticate ล่วงหน้าแล้ว

Connectors ช่วยให้คุณผสานบริการภายนอกเข้ากับแอปได้โดยไม่ต้องจัดการ API key แบบ raw ในโค้ด คุณตั้งค่าการเชื่อมต่อเพียงครั้งเดียว ผูกกับโปรเจกต์ของคุณ แล้วเรียกใช้ actions ที่สร้างไว้ล่วงหน้าจากแอปผ่าน Proyecta SDK โดย credentials จะถูกเข้ารหัสขณะเก็บข้อมูลและจะไม่ถูกเปิดเผยต่อโค้ด frontend ของคุณเลย

Connectorหมวดหมู่ประเภท Authสิ่งที่ทำได้
ResendCommunicationsAPI keyส่งอีเมลแบบ transactional, ส่งอีเมลเป็นชุด, แสดงรายการโดเมนที่ยืนยันแล้ว
SlackCommunicationsOAuthโพสต์ข้อความ, แสดงรายการ channel และผู้ใช้, react ต่อข้อความ, อ่าน thread
ElevenLabsAIAPI keyแปลงข้อความเป็นเสียง, แสดงรายการเสียงที่มี, สร้างเอฟเฟกต์เสียง

มี connectors ใหม่เพิ่มเข้ามาอย่างต่อเนื่อง

  1. คุณสร้างการเชื่อมต่อ — ระบุ credentials (API key หรือลงชื่อเข้าใช้ผ่าน OAuth)
  2. คุณผูกการเชื่อมต่อ กับโปรเจกต์ — เพื่อให้สิทธิ์โปรเจกต์ใช้ credentials ชุดนั้น
  3. แอปของคุณเรียกใช้ actions — SDK จะส่งคำขอผ่าน Proyecta Cloud ซึ่งจะฉีด credentials ฝั่ง server

โค้ดในแอปของคุณจะไม่สัมผัส API key หรือ OAuth token แบบ raw เลย ระบบ connector จัดการ authentication, rate limiting และการบันทึก audit log ทั้งหมด

  1. เปิดโปรเจกต์ของคุณใน Builder
  2. ไปที่ Settings > Connectors
  3. คลิก connector ที่ต้องการจากแคตตาล็อก (เช่น Resend)
  4. กรอก credentials ของคุณ:
    • Connectors แบบ API key (Resend, ElevenLabs): วาง secret key ของคุณ
    • Connectors แบบ OAuth (Slack): ลงชื่อเข้าใช้และอนุญาตการเข้าถึง
  5. ตั้งชื่อการเชื่อมต่อ (เช่น “Production Resend”)
  6. ระบบจะทดสอบการเชื่อมต่อโดยอัตโนมัติและแสดงสถานะ Active หากถูกต้อง

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เวลาในการประมวลผลเป็นมิลลิวินาที
invocationIdID ของรายการใน audit log

คุณไม่จำเป็นต้องเขียนโค้ด connector เอง AI Builder รู้ว่า connectors ใดถูกผูกกับโปรเจกต์ของคุณ และสามารถสร้างการผสานรวมให้คุณได้:

  • "ส่งอีเมลต้อนรับเมื่อผู้ใช้สมัครสมาชิก" — ใช้ Resend connector
  • "โพสต์ข้อความ Slack เมื่อมีออเดอร์ใหม่เข้ามา" — ใช้ Slack connector
  • "เล่นเสียงบรรยายในหน้าบทความ" — ใช้ ElevenLabs connector
ActionSide effectsคำอธิบาย
sendEmailwriteส่งอีเมลแบบ transactional รายการเดียว
sendBatchwriteส่งอีเมลหลายรายการพร้อมกัน
listDomainsreadแสดงรายการโดเมนสำหรับส่งอีเมลที่ยืนยันแล้ว
ActionSide effectsคำอธิบาย
postMessagewriteโพสต์ข้อความไปยัง channel
listChannelsreadแสดงรายการ channel ใน workspace
listUsersreadแสดงรายการสมาชิกใน workspace
reactToMessagewriteเพิ่ม emoji reaction
getThreadreadดึงข้อความตอบกลับใน thread
ActionSide effectsคำอธิบาย
textToSpeechwriteแปลงข้อความเป็นไฟล์เสียงพูด
listVoicesreadแสดงรายการเสียงที่มีให้ใช้งาน
generateSoundEffectwriteสร้างเอฟเฟกต์เสียงด้วย AI
สถานะความหมาย
ActiveCredentials ถูกต้องและการเชื่อมต่อพร้อมใช้งาน
BrokenCredentials หมดอายุหรือถูกยกเลิก — อัปเดต 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