LogoLogo
Get support
  • Home
  • Make API
  • Make Bridge
  • White Label
  • MCP Server
  • Custom Apps Documentation
  • How to read the documentation
  • Make Apps Editor
    • Develop apps in Make UI
    • Develop apps in VS Code
      • Generate your API key
      • Configure VS Code
      • Create an app in VS Code
      • Set the app's icon in VS Code
      • Use general controls
      • Manage testing and production app versions
      • Develop apps collaboratively
      • Write IML tests
      • Local development for Apps
        • Clone Make app to local workspace
        • Develop app in a local workspace (offline)
        • Commit the changes in Git repository
        • Deploy changes from local app to Make app
        • Pull changes from Make app
        • Create a new app origin
        • Compare changes between local and Make app
  • Create your first app
    • Create your app
    • App's environment
    • Base
    • Module
    • Connection
    • Error handling
  • Debugging your app
    • Debugging of pagination in list/search modules
    • Debugging RPC
    • Debugging of Custom IML Functions
      • Debug IML in Web Browser
      • Debug IML in VS Code
  • Make DevTool
    • Live Stream
    • Scenario Debugger
    • Tools
  • Best practices
    • Names, labels & descriptions
    • Base
    • Connections
    • Modules
    • Action and search modules
    • Action modules
    • Search modules
    • Update modules
    • Trigger modules
    • Remote Procedure Calls
    • Static parameters
    • Mappable parameters
    • Processing of input parameters
    • Processing of output parameters
    • Groups
  • Useful resources
  • App logo
  • App visibility
  • App review
    • App review prerequisites
    • Request app review
    • Review status
    • Approved app
  • Terms of approved app maintenance
  • Updating your app
    • Private/Public apps
    • Approved apps
      • Tracking code changes
      • Approval of changes in approved app
      • Managing breaking changes
  • App structure
    • Base
      • Base URL
      • Authorization
      • Error handling
      • Sanitization
      • Advanced inheritance
    • Connections
      • Basic connection
      • JWT
      • OAuth 1.0
      • OAuth 2.0
    • Webhooks
      • Shared
      • Dedicated
        • Attached
        • Not attached
    • Modules
      • Action
        • Module Actions
        • Components
      • Search
      • Trigger (polling)
      • Instant Trigger (webhook)
      • Universal Module
        • REST
        • GraphQL
      • Responder
    • Remote Procedure Calls
      • Components
      • Types of RPCs
        • Dynamic Options RPC
        • Dynamic Fields RPC
        • Dynamic Sample RPC
      • Available IML Variables
    • Custom IML functions
      • Dynamic mappable parameters
      • Handling of full update approach in update modules
      • Removal of empty collections and nulls
    • Groups
  • App blocks
    • Communication
      • Making Requests
      • Multiple Requests
      • Handling Responses
        • Type
        • Valid
        • Error
        • Limit
        • Iterate
        • Temp
        • Output
      • Pagination
      • IML Variables
      • Request-less Communication
      • Multipart/form-data
      • Buffer
    • Static parameters
    • Mappable parameters
    • Interface
    • Epoch
    • Samples
    • Scope
    • Scope List
  • App components
    • Data Types
    • Parameters
      • Array
      • Boolean
      • Buffer
      • Cert
      • Collection
      • Color
      • Date
      • Email
      • Filename
      • Folder, File
      • Filter
      • Hidden
      • Integer, Uinteger
      • Number
      • Password
      • Path
      • Pkey
      • Port
      • Select
      • Text
      • Time
      • Timestamp
      • Timezone
      • URL
      • UUID
    • JavaScript in Make
  • Other
    • Processing of 'empty' Values
    • Processing of JSON strings inside a JSON object
  • Apps Marketplace Beta
    • About
    • How does it work
    • Terms and conditions
    • Tips and tricks
      • Control of access in apps using basic connection
Powered by GitBook

Resources

  • Academy
  • Community
  • Help Center

Useful links

  • Support
  • Privacy Notice
  • Status Page
  • make.com

Follow us

  • LinkedIn
  • X (Twitter)
  • Facebook
  • Instagram

© 2025 make.com

On this page
  • Components
  • Communication
  • ​Parameters​
  • ​Default Scope​
  • ​Scope List​
  • ​Common Data​
  • OAuth 2.0 Authentication Process
  • Available IML variables
  • Example
Export as PDF
  1. App structure
  2. Connections

OAuth 2.0

Connection is a link between Make and 3rd party service/app. OAuth 2.0 connection handles the token exchange automatically.

PreviousOAuth 1.0NextWebhooks

Last updated 4 months ago

Before you start configuring your OAuth 2.0 connection, you need to create an app on a 3rd-party service.

When creating an app, use:

  • https://www.make.com/oauth/cb/app as a callback URL together with oauth.makeRedirectUri, or:

  • https://www.make.com/oauth/cb/app as a callback URL together with oauth.localRedirectUri, if you are going to request approval of your app, or:

  • https://www.integromat.com/oauth/cb/app as an old callback URL together with oauth.redirectUri .

Components

Communication

  • aws directive is not available

  • pagination directive is not available

  • response.limit is not available

  • response.iterate directive is not available

  • response.output is not available

  • response is extended with data

  • response is extended with expires

response.data

The data directive saves data to the connection so that it can be later accessed from a module through the connection variable. It functions similarly to the temp directive, except that data is persisted to the connection.

Example:

{
    "response": {
        "data": {
            "accessToken": "{{body.token}}"
        }
    }
}

This accessToken can be later accessed in any module that uses this connection like so:

{
    "url": "http://example.com",
    "qs": {
        "token": "{{connection.accessToken}}"
    }
}

response.expires

The expires directive says, when the refresh token (or whole connection when there's no refresh token) will expire. Don't change this with response.data.expires which is telling you when the current access token will need to be refreshed**.** When the expires period is overdue, the connection needs to be reauthorized manually. This can be done either from a scenario or the "Connections" tab.

Example:

{
    "response": {
        "expires": "{{addDays(now, 30)}}"
    }
}

​Parameters​

Parameters that the user should fill while creating a new connection.

​Default Scope​

Default scope for every new connection.

​Scope List​

Collection of available scopes.

​Common Data​

Non-user-specific sensitive values like salts or secrets.

OAuth 2.0 Authentication Process

OAuth 2.0 authentication process consists of multiple steps. You are able to select the steps you need and ignore the steps that you don’t - just fill in the needed sections and delete unneeded ones.

Key

Type

Description

preauthorize

Request Specification

Describes a request that should be executed prior to authorize directive.

authorize

Request Specification

Describes authorization process.

token

Request Specification

Describes a request that exchanges credentials for tokens.

info

Request Specification

Describes a request that validates a connection. The most common way to validate the connection is to call an API’s method to get user’s information. Most of the APIs have such a method. info directive can be used to store account's metadata.

refresh

Request Specification

Describes a request that refreshes an access token.

invalidate

Request Specification

Describes a request that invalidates acquired access token.

Each section is responsible for executing its part in the OAuth 2.0 flow.

In short, you can describe the initial OAuth 2.0 flow as follows:

preauthorize => authorize => token => info

with preauthorize and info sections being optional, and refresh and invalidate not being a part of the initial OAuth 2.0 flow.

If the authorize directive isn't used, the condition in thetoken directive has to be set totrue.Otherwise, the token directive will not be successfully triggered.

Available IML variables

These IML variables are available for you to use everywhere in this module:

Name
Description

now

Current date and time.

environment

TBD

temp

Contains custom variables created via temp directive.

parameters

Contains connection’s input parameters.

common

Contains connection’s common data collection.

data

Contains connection’s data collection.

oauth.scope

Contains an array of scope required to be passed to OAuth 2.0 authorization process.

oauth.redirectUri

Contains redirect URL for OAuth 2.0 authorization process in this format: https://www.integromat.com/oauth/cb/app

oauth.localRedirectUri

Contains redirect URL for OAuth 2.0 authorization process in this format: https://www.make.com/oauth/cb/app or this format: https://www.private-instance.com/oauth/cb/app

oauth.makeRedirectUri

Contains redirect URL for OAuth 2.0 authorization process in this format: https://www.make.com/oauth/cb/app

Example

You can find the OAuth 2 connection example in one of our open-sourced apps, e.g. Smartsheet.

Parameters
Scope
Scope List
Connections
Communication
variable
variable
variable