# How to build a Video SDK join link The Zoom Video SDK allows developers to build custom video experiences with Zoom's core technology. Once you have [built your implementation](/docs/video-sdk/), how do you get your users into your session? Well since your it's your webpage or app that your users are using, it's up to you to decide your user experience. Users could open your app when it's time to join the session and navigate to your join session flow. Or, you could build a join link and send that to your users or add it to your calendar invites, so users can join into your Video SDK session easier. Here is an example of how to build a Video SDK join link: 1. Define your [Video SDK session details](/docs/video-sdk/web/sessions/#start-and-join-sessions) like the session name and passcode. Since the Video SDK does not require you to "pre create/define" the session name and passcode, you may choose a name and passcode of your choice. For this particular session, let's say we want the session name to be `joinlink` and the passcode to be `abc123`. 1. Now that we have the session name and passcode, let's define a URL convention. This URL should link to your join flow, with the session and passcode information. - Location: `https://videosdk.dev/uitoolkit/` - URL Params: `?session={SESSION_NAME}&passcode={SESSION_PASSCODE}` 1. Once the user lands on this URL, we need to abstract the session name and passcode from the URL, and pass the values into our Video SDK join function. Make sure to validate the URL parameters. ```js import ZoomVideo from "@zoom/videosdk"; var client = ZoomVideo.createClient(); var stream; const urlParams = new URLSearchParams(window.location.search); const preSetSession = urlParams.get("session"); const preSetpasscode = urlParams.get("passcode"); if (!preSetSession || !preSetpasscode) { console.log("invalid join link"); } else { // get Video SDK JWT TOKEN // pass in the join link values, token, and username to the join function client.init("en-US", "Global", { patchJsMedia: true }).then(() => { client .join(preSetSession, TOKEN, "Tommy", preSetpasscode) .then(() => { stream = client.getMediaStream(); }); }); } ``` > You'll see I am hard coding `Tommy` as the user's name. You could also add a user name URL parameter, or if your application knows the who the user is, simply pass in their name to the join function. 1. If successful, the user will now be in a session. This same concept can be applied to native applications using custom URL schemes. Here is an [example for iOS](https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app).