WWebBuddyMarketplace
Integrations

Integrations

Set up Google sign-in, xAI, a mailbox, Stripe, PayPal, calendar import and exchange rates, and see every outside service YourDesk talks to.

3 min readUpdated Oct 17, 2026Applies to YourDesk 1.0.0

On this page

Every integration is optional. Clients, projects, proposals, invoices, the planner, time and client portals all work without any of them.

Integration Configured in Used for
Google sign-in Environment variables "Continue with Google"
xAI Environment variable, or each user's Settings → Agent The Agent and AI drafting
Email mailbox Each studio's Settings → Workspace → Mailbox Sending letters, reminders and follow-ups
Stripe Ops → Payments Selling plans
PayPal Ops → Payments Selling plans
Calendars The Planner One-off .ics import, and export
Exchange rates Settings → Workspace → FX rates Approximate home-currency amounts on invoices

Google sign-in

  1. In the Google Cloud console, create an OAuth client ID of type Web application.

  2. Add the authorised redirect URIs:

    Text
    https://desk.example.com/api/auth/callback/google
    http://localhost:8080/api/auth/callback/google
  3. Set both values in the server environment and restart (or redeploy):

    .env
    GOOGLE_CLIENT_ID=1234.apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=...

The "Continue with Google" button works once both are present at server start. A Google sign-in with the same email as an existing password account signs in to that account. Closed sign-up applies to Google too.

xAI

Create an API key in the xAI console. Either set it for everyone as XAI_API_KEY, or let each user paste their own under Settings → Agent. The Agent explains the order keys are used in, the models and the costs.

Email mailbox

Each studio connects its own IMAP and SMTP mailbox; there is no server-wide mail setting. Presets cover Gmail, Google Workspace, Outlook, Fastmail and iCloud, and "Other IMAP" takes any provider on the standard secure ports. Gmail needs an App Password. Details: Connecting a mailbox.

Stripe

Stripe sells YourDesk plans to studios through Stripe Checkout. You enter the secret key and the webhook signing secret in Ops → Payments, and add a webhook endpoint at https://<your-domain>/api/payments/stripe/webhook. Full steps: Stripe setup.

PayPal

PayPal takes a one-off payment for a plan through PayPal Checkout, using a REST app's Client ID and Secret in Ops → Payments, in sandbox or live mode. Full steps: PayPal setup.

Note

Stripe and PayPal here are for selling plans on your deployment. They are not connected to studio invoices: a studio's clients pay the studio directly using the bank details or PayPal handle printed on the invoice.

Calendars

The Planner imports .ics calendars from an https:// link or an uploaded file, and exports its own items as planner.ics. Import is a one-time copy, not a live subscription. See Calendar import and export.

Exchange rates

Settings → Workspace → FX rates accepts rates typed by hand, or refreshes them from the free Frankfurter API (European Central Bank reference rates, no key needed). Rates are only used to show an approximate home-currency amount on foreign-currency invoices.

Outside services the app contacts

For privacy notices and firewall rules, these are all the outside hosts involved:

Host Contacted by When
api.x.ai The server Agent runs and AI drafting, when a key is set
api.stripe.com The server Creating a checkout, verifying webhooks
api-m.paypal.com, api-m.sandbox.paypal.com The server Creating and capturing PayPal orders
api.frankfurter.app The server Refreshing FX rates
Your mail provider's IMAP and SMTP hosts The server Connecting a mailbox and sending mail
Calendar hosts you paste The server Importing a calendar
Google's OAuth servers Browser and server Google sign-in
fonts.googleapis.com, fonts.gstatic.com Every visitor's browser Loading the Bricolage Grotesque and IBM Plex Mono fonts, on every page including client portals
randomuser.me Browsers viewing the demo studio Sample avatar photos in the demo and seed data
mail.google.com The user's browser Only when a send falls back to opening a Gmail compose window

Tip

If you need to avoid Google Fonts (for example for GDPR reasons), download the two font families, serve them from public/, and replace the Google Fonts <link> tags in src/routes/__root.tsx.