# Join a meeting Endpoint: N/A Granular Scopes: N/A ![](/img/create-user.png) This is the workflow to join a meeting using [Zoom Meeting Web SDK](/docs/meeting-sdk/web/). 1. After [creating a meeting](/docs/isv/workflows/create-meeting/), save the meeting's _id_ and _password_ to your database. You'll use the _id_ to generate the SDK signature and the password to join the meeting. 2. [Generate the signature](/docs/meeting-sdk/auth/) to authenticate the SDK. Take note of the following values: - For `role` key, use **0** for the participant value. - For `mn` key, use the value of the `meeting id`. - You can use this [sample code](https://github.com/zoom/meetingsdk-auth-endpoint-sample) to generate the signature. 3. Initialize the SDK using the `init` method. 4. [Join the meeting](/docs/meeting-sdk/web/client-view/meetings/#start-meeting) using the `client.join` method. Each `ZoomMtg join` method call needs to be inside `ZoomMtg init` method success callback. For the join method, take note of the following values: - For meetingNumber value, use the value of `meeting id`. The value **must be the same** used in the SDK signature. For more information, see the [code sample for join meeting](/docs/meeting-sdk/web/client-view/meetings/#join-meeting). ## Init SDK & Client.Join ```javaScript ZoomMtg.init({ leaveUrl: leaveUrl, // https://example.com/thanks-for-joining success: (success) => { ZoomMtg.join({ sdkKey: sdkKey, signature: signature, // role in SDK signature needs to be 0 meetingNumber: meetingNumber, passWord: passWord, userName: userName, success: (success) => { console.log(success) }, error: (error) => { console.log(error) } }) }, error: (error) => { console.log(error) } }) ```