How to start a Zoom Meeting from Rails ?

28 April
  • tutorial, programming, technical, tools

On a recent project at Azuki, we have been using the Zoom API and we thought that it would be a great idea to share how we did it. In this very simple tutorial, I am going to show you how to automatically create a zoom link automatically whenever you create a meeting (or a reunion, or even a pow-wow).

First thing first, who says Rails says gem ! and of course someone created a wonderful gem that we are going to use. Zoom_rb .

So we’re going to add the gem to our gemfile.rb

gem 'zoom_rb'

and then run bundle install

Follow this link : and click on ‘create’ in the JWT box.

Once you have your API key and secret, copy and paste them into your .env file (or whatever environment you are using) . Let’s create an initializer file that will load up with our app.

So into config/initializers, you can create a file called Zoom.rb and set the keys :

Zoom.configure do |c|
  c.api_key = ENV['ZOOM_API_KEY'] 
  c.api_secret = ENV['ZOOM_API_SECRET']` 

In your terminal, go in your console (type : rails c)

zoom_client =

This will return you with a hash of informations, just grab the “id” and copy and paste it into your .env file as ZOOM_USER_ID

To simplify here let’s imagine here you have a Meeting model (meeting.rb). first thing you want to do is to run a migration to add a Zoom link to your model.

rails g migration AddZoomLinkToMeetings zoom_link:string

don’t forget to rails db:migrate

Inside our model, we are going to create two methods. The first one is going to create the meeting on Zoom and fetch the URL for you.

def create_zoom_meeting(topic)
 zoom_client =
 response = zoom_client.meeting_create(topic: topic, user_id: ENV['ZOOM_USER_ID'])

The second method will save the newly created zoom link in your database

def save_zoom_link(meeting_topic)
  return if zoom_link.present?
  _zoom_link = create_zoom_meeting(meeting_topic)
  update(zoom_link: _zoom_link)

Now that we have our methods, we need to call them.

What we want is to have a link when we create a meeting. So let’s head to our meetings_controller.rb

Now let’s call the methods in our create actions

def create 
  @meeting =
  redirect_to meeting_path(@meeting)

You can set the meeting_topic to whatever you want.

Let’s double check in the console

rails c

If it worked you should see a zoom link for your meeting !

I hope this tutorial was useful, the process is quite simple but some bits can be a bit tricky.

Have fun !

Our little BONUS for enthusiast reader :

You can set recurrent meeting if you want and allow some extra options. Here’s an example :

topic: topic, 
 type: 8,
 user_id: zoom_account.user_id,
 duration: 120,
  recurrence: {
 type: 1,
  end_times: 5,}, 
  settings: {
  host_video: true,
  participant_video: true, 
  mute_upon_entry: true,

Photo by iyus sugiharto on Unsplash