Sessões para aplicativos
Coloque o colaborador de IA dentro de apps móveis, desktop e web sem nunca enviar a chave secreta.
Só para clientes. Este canal atende os clientes da empresa (perguntas, vendas, agendamentos) com o seu Brain, produtos e serviços. Nunca é uma interface do dono: não altera configurações, não lê Atividades nem aceita ordens do dono, mesmo que alguém diga que é o dono. O dono fala com a ORYKSA só no app ORYKSA oficial, no painel e na extensão do navegador. Saiba mais
Como funciona
- O seu servidor chama
POST /v1/sessionscom a chave secreta e recebe umclient_token(oryk_cs_...) válido de 5 a 1440 minutos (por padrão 60), ligado a uma conversa. - A sua app recebe apenas esse token e acessa os endpoints
/v1/client/*. Não consegue ler outras conversas, mudar o agente nem criar chaves. - Quando o token expira, a API responde
401 session_expired: solicite outro ao seu servidor (o SDK faz isso automaticamente comgetToken).
Criar uma sessão (servidor)
import { Oryksa } from "@oryksa/sdk";
const oryksa = new Oryksa(process.env.ORYKSA_API_KEY);
// e.g. GET /oryksa-token in YOUR backend, after your own user login
app.get("/oryksa-token", requireLogin, async (req, res) => {
const s = await oryksa.createSession({
conversationId: "user-" + req.user.id, // one conversation per app user
customerName: req.user.firstName,
ttlMinutes: 60,
});
res.json({ token: s.client_token });
});curl https://api.oryksa.com/v1/sessions \
-H "Authorization: Bearer oryk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"conversation_id": "user-4812", "customer_name": "Ana", "ttl_minutes": 60}'{
"object": "client_session",
"client_token": "oryk_cs_6sCKXnHtZMpCXVO5LgpWbPF4jcSqpcOe",
"conversation_id": "user-4812",
"expires_at": "2026-09-24T10:41:07+00:00"
}Usar na app
import { OryksaClient, mountChat } from "@oryksa/sdk";
const client = new OryksaClient({
// called again automatically when the token expires
getToken: async () => (await fetch("/oryksa-token").then(r => r.json())).token,
});
// ready-made chat UI (same look as the website chat)
mountChat({ client, lang: "en" });
// or headless, with your own UI
const agent = await client.agent(); // name, photo, greeting, suggestions
const r = await client.send("How do I reset my password?");
console.log(r.reply);# the app only uses the short-lived token
curl https://api.oryksa.com/v1/client/agent -H "Authorization: Bearer oryk_cs_..."
curl https://api.oryksa.com/v1/client/chat -H "Authorization: Bearer oryk_cs_..." \
-H "Content-Type: application/json" -d '{"message": "Hi!"}'
curl https://api.oryksa.com/v1/client/messages -H "Authorization: Bearer oryk_cs_..."Endpoints do cliente
Resposta: nome do agente, foto, saudação, sugestões e subtítulo por idioma, e se as respostas por voz estão incluídas.
Envie uma mensagem, com a mesma resposta de POST /v1/chat.
Antes de a IA responder a um cliente novo, ela pede o nome, o e-mail e o telefone na conversa (os campos que o dono deixa ativados em Conectores > Chat do site > Dados do visitante). Enquanto pede, a resposta traz "collecting": "name" | "email" | "phone" para o seu app mostrar o teclado certo; o cliente responde no chat e a primeira pergunta é respondida assim que os dados estão completos.
Mensagens desta conversa.
Ensinar ao Brain sua app
import { Oryksa } from "@oryksa/sdk";
const oryksa = new Oryksa(process.env.ORYKSA_API_KEY);
// Teach the AI employee about YOUR app, e.g. on every release (CI step)
await oryksa.learnApp({
name: "FitTrack",
agentName: "Nova",
description: "FitTrack is a fitness app to log workouts and follow training plans.",
languages: ["en", "pt"],
screens: [
{ title: "Workouts", content: "Tap + to log a workout: running, cycling, gym or yoga." },
{ title: "Plans", content: "5K beginner (6 weeks), Half marathon (12 weeks). Plans are Premium." },
],
settings: { units: "metric", sync: "Apple Health and Google Fit" },
faq: [{ question: "How do I cancel Premium?", answer: "Settings > Subscription > Cancel." }],
});
