“When a task is assigned, send the assignee an email via Resend.”That’s the entire integration request. vly creates the Convex action, prompts you for
RESEND_API_KEY, and wires it up.
What’s a vly integration?
Three things, working together:1
A managed credential
The integration’s API keys live in vly’s secret store, scoped per-environment, never exposed to client code.
2
A code template the agent uses
When you mention the service in a prompt, the agent writes the integration code following a tested pattern.
3
Webhook plumbing if needed
For services that send webhooks (Stripe, Twilio, etc.), vly auto-registers a webhook URL and routes events to a Convex action.
Browse by category
Payments
Stripe (the default), LemonSqueezy, Paddle, Plaid, Polar.
Auth providers
Clerk, Auth0, WorkOS, Firebase Auth, Supabase Auth.
Email & messaging
Resend, SendGrid, Postmark, Mailchimp, Twilio, WhatsApp, Telegram.
AI & ML
OpenAI, Anthropic, Google AI, Replicate, ElevenLabs, Pinecone, Qdrant, Hugging Face.
Data & search
Supabase, MongoDB, Algolia, Meilisearch, BigQuery, Snowflake.
Storage & media
Cloudinary, Mux, AWS S3, Cloudflare R2, UploadThing.
Video & voice
LiveKit, Daily, Agora.
Analytics & monitoring
PostHog, Mixpanel, Amplitude, Sentry, Datadog, LogSnag.
Dev tools & CI
GitHub, GitLab, Vercel, Netlify.
Productivity & CRM
Linear, Asana, Notion, Slack, Discord, HubSpot.
Most-used integrations
Convex
The default backend. Built-in, no setup needed.
Stripe
The standard for payments — subscriptions, one-time charges, marketplaces, billing portals.
OpenAI
Chat, embeddings, image generation. The default LLM provider for AI features.
Resend
Transactional and marketing email. Generous free tier.
GitHub
Sync your project to a repo. Issues, PRs, actions.
Stripe + PostHog
Product analytics with deep funnel tracking.
How to add one
- By prompt (recommended)
- From the integrations dashboard
- Manually in code
Just mention the service. Examples:
- “Send a welcome email via Resend when a user signs up.”
- “Use Stripe to charge $10/month for the Pro plan.”
- “When the form is submitted, post to our team’s Slack channel
#leads.” - “Generate a summary of each task description using OpenAI when the task is created.”
Custom integrations
Any third-party REST or GraphQL API can be called from a Convex action. The pattern:convex/myIntegration.ts
vly secrets set MY_API_KEY ... or in the integrations dashboard.
For OAuth-based integrations (where the user authorizes once and you store an access token per user), follow the OAuth pattern in the authentication architecture guide.
Where credentials live
vly enforces the split: when you connect an integration, the secret key goes to the secrets store and the publishable key goes to public env vars. You don’t have to remember which is which.
See Secrets management for the full reference.
Webhook handling
Services that push events (Stripe payments, Resend deliveries, Twilio messages) need a webhook URL to call. vly handles this automatically when you ask:“When a Stripe subscription is created, mark the team as ‘active’ in our database.”vly:
- Creates a Convex HTTP action at
/api/stripe-webhook. - Verifies the Stripe signature using
STRIPE_WEBHOOK_SECRET. - Routes the event to a handler that updates your data.
- Tells you to register the URL
https://your-app.vly.app/api/stripe-webhookin the Stripe dashboard.
Testing integrations locally
vly’s preview deployments are fully functional — your integration code runs against the real third-party API in preview mode. For services that don’t have a sandbox, use:- Stripe — test mode keys (
sk_test_...) and the Stripe CLI for local webhook forwarding. - Resend — test API keys and
delivered@resend.devtest address. - Twilio — magic test phone numbers for free SMS.
- OpenAI — there’s no “test mode,” but small
gpt-4o-minicalls are cheap.
Tips
Related
Stripe
The most-used integration. Worked example.
OpenAI
Chat, embeddings, image generation.
Directory
The full searchable catalog.
