# Join a meeting

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

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)
  }
})
```
