Nylas Docs

The Nylas Developer Hub

Welcome to the Nylas developer hub. You'll find comprehensive guides and documentation to help you start working with Nylas as quickly as possible, as well as support if you get stuck. Let's jump right in!

Developer Guide

Creating a Google Project and Client ID for Internal Use

This workflow is intended for configuring Google account access for development or production applications that are internal-only. An "Internal"-type Google application that is created using this guide will only allow access to users from your organization (@your-organization.com). This type of application allows you to entirely skip the App Verification and Security Review processes required by Google for public-access applications, but limits which accounts can authenticate to your application.

If you have any trouble creating a Google Project and OAuth Client ID for internal use, get in touch with support@nylas.com and we'd be happy to help you out!

Create a Google Project

To get started, head over to https://console.developers.google.com/. You will be prompted to log in with a Google account if you're not already logged in with one. Make sure you log in with the Google account associated with the organization whose accounts you want to be able to connect to the application (e.g. you@your-organization.com to create an app that allows connections from @your-organization.com accounts).

Click on the project drop-down in the top left corner (usually labeled "Select a project"), and on the following screen click "NEW PROJECT":

Name your project and make sure the "Organization" drop-down has the correct Google Organization selected. Double-check this, as it can't be changed later!

Then select click "CREATE" in the bottom left corner:

It may take up to a minute or two to for Google to finish creating the project, after which you'll see a screen like this:

You've now created your Google Project! The next step is to enable the APIs needed to connect to Google via Nylas.

Enable APIs

From the dashboard, click "Go to APIs Overview.

Click the "ENABLE APIS AND SERVICES" button in the center of the screen

You'll be presented with the following search box:

Type "gmail" into the search box and click on the "Gmail API" card once it appears:

Click the large blue "ENABLE" button next to the Gmail logo

You'll find yourself on the following page. Click the search box in the center of the top bar:

Type "calendar" and click on "Google Calendar API" once it appears:

Click "ENABLE" for the Google Calendar API:

Do the same for the Contacts API ("contacts" is a good search term):

As well as the People API (search "people"):

If your app needs access to Room Resources, you'll need to enable the "Admin SDK API" as well.

You've now enabled all of the APIs that Nylas needs to sync data.

Create OAuth Client Credential

The last step to do in the Google Developer Console is to create a credential for OAuth. Click the "CREATE CREDENTIALS" button that you should see as below after enabling the People API:

On the next screen, you'll want to click the "client ID" word:

Then click "configure consent screen":

On the following page, fill out the "Application name" field and select "Internal" as the application type.

You'll need to determine what Google scopes you add to your consent screen based on your application's behavior, and how this maps to Nylas API scopes. Please reference this mapping to determine which Nylas scopes you'll need to use during the authentication process.

Google Scope Nylas Scope(s)
gmail.compose email.drafts, email.send
gmail.modify email.modify, email.send
gmail.labels email.folders_and_labels
gmail.metadata email.metadata
gmail.send email.send
gmail.readonly email.read_only
calendar calendar
calendar.readonly calendar.read_only
contacts contacts
contacts.readonly contacts.read_only
admin.directory.resource.calendar.readonly room_resources.read_only

Using Room Resources?

If your app is using room resources, you'll need to manually paste the scope in during this step.

  1. Click ‘manually paste your scopes’, this will open a box
  2. In the text at the bottom, click manually paste and in the input field that appears, paste: https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly

Finally, add "nylas.com" to the "Authorized domains" field. Your consent screen should look like this when you're done:

Scroll down to the bottom of the page and click the blue "Save" button!

Create an OAuth Credential

Navigate to the Credentials page for your project.

Click "Create credentials" and select "OAuth client ID" from the drop-down menu.

You should see the following screen. Select "Web application" as your "Application type", name your credential, and fill in the value "https://api.nylas.com/oauth/callback" for "Authorized redirect URLs":

Then click the blue "Create" button at the bottom of the screen.

You'll be presented with a page that shows your new OAuth Client ID and Secret. Save these values for use later.

Add Nylas as a Project Owner

The final step is to add Nylas as a Project Owner on your new project.

To do this, click the hamburger icon in the top left-hand corner of the screen and then click on the "IAM" submenu under "IAM & admin":

Once through to the IAM page, click the "ADD" button near the middle top.

Enter "support@nylas.com", select "Owner" as the Role, and click the blue "SAVE" button:

Configure Nylas to use your new Google OAuth Client ID and Secret

Head on over to https://dashboard.nylas.com/ and log in.

From the front page of the dashboard, click "View all applications" on the right-hand side of the "Application and API Key" section:

On the following page, click "Edit" on your application. You'll be presented with the Application Settings page and you'll want to click on the "Google OAuth" tab:

Copy-paste your Google OAuth Client ID and Secret from the Google Developer Console and click "Update Google OAuth Settings":

You are now all set to start connecting Google accounts to Nylas! Happy developing!

Creating a Google Project and Client ID for Internal Use


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.