Aller au contenu

Connecteurs

Connectez votre app à des services tiers comme Slack, Resend et ElevenLabs. Les identifiants sont chiffrés et les actions sont pré-authentifiées.

Les connecteurs te permettent d’intégrer des services externes dans ton app sans avoir à gérer des clés API brutes dans le code. Tu configures une connexion une seule fois, tu la lies à ton projet, puis tu appelles des actions préconstruites depuis ton app via le SDK Proyecta. Les identifiants sont chiffrés au repos et ne sont jamais exposés à ton code frontend.

ConnecteurCatégorieType d’authCe qu’il fait
ResendCommunicationsClé APIEnvoyer des emails transactionnels, envoyer des emails en lot, lister les domaines vérifiés
SlackCommunicationsOAuthPublier des messages, lister les canaux et les utilisateurs, réagir à des messages, lire des fils de discussion
ElevenLabsIAClé APISynthèse vocale, liste des voix disponibles, génération d’effets sonores

De nouveaux connecteurs sont ajoutés régulièrement.

  1. Tu crées une connexion — fournis tes identifiants (une clé API ou connecte-toi via OAuth)
  2. Tu lies la connexion à un projet — cela autorise le projet à utiliser ces identifiants
  3. Ton app appelle des actions — le SDK envoie la requête via Proyecta Cloud, qui injecte les identifiants côté serveur

Le code de ton app ne touche jamais la clé API brute ni le token OAuth. Le système de connecteurs gère l’authentification, la limitation de débit et la journalisation des audits.

  1. Ouvre ton projet dans le builder
  2. Va dans Settings > Connectors
  3. Clique sur un connecteur dans le catalogue (par ex., Resend)
  4. Saisis tes identifiants :
    • Connecteurs à clé API (Resend, ElevenLabs) : colle ta clé secrète
    • Connecteurs OAuth (Slack) : connecte-toi et autorise l’accès
  5. Donne un nom à la connexion (par ex., « Production Resend »)
  6. La connexion est testée automatiquement et marquée Active si elle est valide

Les actions des connecteurs sont appelées depuis du code côté serveur (actions Convex) à l’aide du SDK Proyecta :

'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;
},
});

La méthode execute retourne :

ChampDescription
outputLa valeur de retour de l’action (la forme dépend de l’action)
durationMsDurée d’exécution en millisecondes
invocationIdIdentifiant de l’entrée dans le journal d’audit

Tu n’as pas à écrire le code des connecteurs à la main. Le builder IA sait quels connecteurs sont liés à ton projet et peut générer l’intégration pour toi :

  • "Send a welcome email when users sign up" — utilise le connecteur Resend
  • "Post a Slack message when a new order comes in" — utilise le connecteur Slack
  • "Play audio narration on the article page" — utilise le connecteur ElevenLabs
ActionEffets de bordDescription
sendEmailécritureEnvoyer un seul email transactionnel
sendBatchécritureEnvoyer plusieurs emails en une seule fois
listDomainslectureLister les domaines d’envoi vérifiés
ActionEffets de bordDescription
postMessageécriturePublier un message dans un canal
listChannelslectureLister les canaux de l’espace de travail
listUserslectureLister les membres de l’espace de travail
reactToMessageécritureAjouter une réaction emoji
getThreadlectureObtenir les réponses d’un fil de discussion
ActionEffets de bordDescription
textToSpeechécritureConvertir du texte en audio vocal
listVoiceslectureLister les voix disponibles
generateSoundEffectécritureGénérer un effet sonore par IA
StatutSignification
ActiveLes identifiants sont valides et la connexion est prête à l’emploi
BrokenLes identifiants ont expiré ou ont été révoqués — mets-les à jour pour rétablir la connexion
  • Les identifiants sont chiffrés avec AES-256-GCM au repos
  • Les actions sont limitées à 1 000 requêtes par minute par connecteur et par projet
  • Chaque appel d’action est journalisé avec une piste d’audit (connexion, action, durée, statut)
  • Les connexions sont limitées à l’ensemble de l’espace de travail

Puis-je utiliser la même connexion sur plusieurs projets ?

Oui. Crée la connexion une seule fois et lie-la à autant de projets que tu le souhaites dans le même espace de travail.

Que se passe-t-il si ma clé API expire ou est révoquée ?

Le statut de la connexion passe à Broken. Mets à jour les identifiants dans Settings > Connectors pour rétablir la connexion.

Puis-je appeler des actions de connecteurs depuis le frontend ?

Non. Les actions de connecteurs doivent être appelées depuis du code côté serveur (actions Convex) pour garantir la sécurité des identifiants. Le SDK achemine les requêtes via Proyecta Cloud, qui injecte l’authentification côté serveur.

Puis-je ajouter mes propres connecteurs personnalisés ?

Pas encore. Les définitions de connecteurs personnalisés sont prévues dans la feuille de route.

  • Des connecteurs supplémentaires (Google, Twilio, SendGrid, et bien d’autres)
  • Définitions de connecteurs personnalisés — apporte ta propre API
  • Ingestion de webhooks pour les événements entrants des services connectés
  • Passerelle OAuth — conserve les tokens côté serveur même pour les flux initiés par le client