arrow-left

Only this pageAll pages
gitbookPowered by GitBook
triangle-exclamation
Couldn't generate the PDF for 173 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Connector Configuration

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Connector Configuration

Guides to Configuring OAuth2 Applications

A universal guide outlining the common steps involved in setting up any OAuth2 application, including registering your application, obtaining client credentials, and defining redirect URIs.

ActiveCampaign

https://www.activecampaign.com/

  • Sign-in to to your ActiveCampaign account. Once you are logged in, locate the "Settings" option. This can be found in the bottom left corner of the homepage.

  • Within the settings page, you will see a section labeled 'Developer'. Click on this section to navigate to the Developer page. On the 'Developer' page, you will see your API URL and your API key.

  • use the API Key to authenticate ActiveCampaign components in the Appmixer Designer.

Authenticate
ActiveCampaign API Key

Utilities

Controls

Controls

AWS

hashtag
Authentication

hashtag
Lambda, S3 and SNS

To authenticate with AWS services Lambda, S3, and SNS, you need to provide Access Key Id and Secret Access Key. You can create a new user in the AWS IAM console () and assign the necessary permissions to that user.

The neccessary permissions depend on the services and components you want to use. For example, if you want to use the New S3 Object component, you need to assign the AmazonS3ReadOnlyAccess policy to your user. If you want to use the Send SNS Message component, you need to assign the AmazonSNSFullAccess policy.

Azure Cognitive Services

In order to offer the Azure Cognitive Services components to your customers, you have to set an Azure key and endpoint through the Backoffice first.

Azure Cognitive Services
Setting the endpoint and key under appmixer:azureCognitiveServices

DocuSign

Go to the Apps and Keysarrow-up-right page (you can also get there from the Docsarrow-up-right)

Add a new app:

Get the ClientId, ClientSecret and set the redirect URI:

clientId: Integration Key

clientSecret: Secret Keys

set the Redirect URI to https://[YOUR_API_BASE]/auth/docusign/callback, for example

And set the clientId, clientSecret to the service configuration in the Backoffice.

Freshdesk

hashtag
1. Create Freshdesk account

Sign up with Freshdesk: https://www.freshdesk.comarrow-up-right

hashtag
2. Obtain API key

Navigate to Profile Settings -> API. Copy the API token on the right side. If you don't see the API key, please refer to the for more information.

Use the copied token as API key along with Domain when connecting Freshdesk components in Appmixer. In this example the domain is acme-help and the API key is the copied token.

Cloudflare Lists

Cloudflare List Integrations allow you to manage IP lists efficiently. You can add or remove IPs from Cloudflare IP Lists and specify the TTL (Time To Live), which automatically removes the IP after a set time period.

hashtag
Custom IPs list

You can access custom lists in your Cloudflare account by navigating to Manage Account > Configurations > Lists. Cloudflare Lists connector only supports IP lists.

DeepAI

https://deepai.org/

hashtag
Sign-up at DeepAI

Visit https://deepai.org and sign-up:

Copy api-key from your profile dashboard:

Cloudflare WAF

Cloudflare WAF integrations allows you to actively block attacker IP by using Cloudflare WAF infrastructure.

hashtag
Authentication

Cloudflare WAF connector support authentication via Account API Token or User API Token

Typeform

When creating Typeform Oauth2 application (), you can choose between access tokens that do expire in a week and access tokens that do not expire.

The token expiration is new in Typeform. Appmixer components before version 4.2 cannot handle it.

If you're registering the Oauth application for version 4.2 or newer, you can decide if you want to use tokens that do expire or not. If you decide to go with Unlimited then you don't have to set anything in the Backoffice, it is the default behavior. On the other hand, if you want to use tokens that expire, you have to go to the Backoffice and set the useRefreshToken to true for the appmixer:typeform service.

Open AI

https://platform.openai.com

  • OpenAI Account: The first thing you need to do is have an OpenAI account. You can sign up for free.

  • After signing up, go to https://platform.openai.com/api-keys.

  • Create a New API Key: You would find a button or link labeled "Create a new key" or "Generate API keys". Click on it.

Pipedrive

hashtag
1. Create Pipedrive account

Sign up with Pipedrive:

hashtag
2. Obtain API key

Jotform

Configure the Jotform.

hashtag
Log In to JotForm

  • Go to the .

Monday

hashtag
1. Create Monday account

Sign up with Monday:

hashtag
2. Obtain API key

Trello

Since version 4.2.1 you can configure the string that appears on the Trallo Oauth page.

If you don't do this, the Oauth page will show Appmixer by default.

https://console.aws.amazon.com/iam/homearrow-up-right
Freshdesk documentationarrow-up-right
Copy API token
Use API key and Domain in Appmixer
Setting the Oauth page name in the Backoffice
https://api.appmixer.com/auth/docusign/callbackarrow-up-right

Converters

CSV

XLSX to JSON

XLSX2JSON Component

Description: Convert an XLSX (Excel 2007+ XML format) file to JSON.

Input Parameters:

  • fileId (string, required): The ID of the file to be converted.

Output Parameters:

  • fileId (string): The unique ID of the converted JSON file.

  • fileName (string): The name of the generated JSON file.

HTTP

HTTP CONNECTOR

hashtag
Authentication

Cloudflare Lists connector support authentication via Account API Token, User API Token, or Global API Key (deprecated).

hashtag
Account API Token

To create the Account API Token, go to the Manage Accounts > Account API Tokens, click on "Create Token". On the next screen, select the "Create Custom Token" option.

Name the token and select the permission:

  • Account | Account Filter Lists | Edit

Account API Token

hashtag
User API Token

To create the User API Token, go to the Profile > API Tokens, click on "Create Token". On the next screen, select the "Create Custom Token" option.

Name the token and select the permission:

  • Account | Account Filter Lists | Edit

User API Token

hashtag
Global API Key (deprecated)

My Profile > API Tokens. Click on "View" to get the token:

Global API Key

In the Cloudflare connector authentication window, use your Cloudflare account email and the Global API Key or your API Token to log in. Please note that when you use the API Token (User or Account), don't enter the email, just leave the email input empty.

Custom IP list
Set the API key via the the Backoffice Connector Configuration page:

And then add you own apiKey value:

hashtag
Account API Token

To create the Account API Token, go to the Manage Accounts > Account API Tokens, click on "Create Token". On the next screen, select the "Create Custom Token" option.

Name the token and select the permission:

  • Account | Rule Rulesets | Edit

Account API Token

hashtag
User API Token

To create the User API Token, go to the Profile > API Tokens, click on "Create Token". On the next screen, select the "Create Custom Token" option.

Name the token and select the permission:

  • Account | Rule Rulesets | Edit

In the Cloudflare connector authentication window, use your API Token to log in.

Then you can use the One Week configuration.
https://admin.typeform.com/account#/section/appsarrow-up-right
Token expiration settings.

Keep this key safe and secure. It should not be shared with anyone or exposed in client-side code, as it could be used to misuse your OpenAI services.

  • use the API Key to authenticate OpenAI components in the Appmixer Designer.

  • Navigate to My Account -> Personal Preferences -> API. Copy the API token.
    Copy API token

    Use the copied token as apiKey when connecting Pipedrive components in Appmixer.

    https://www.pipedrive.comarrow-up-right
    Log in with your JotForm account credentials.

    hashtag
    Generate a New API Key

    • Navigate to Account Settings: Click on your avatar/initials in the top right corner of the page. Choose "Settings" from the dropdown menu. Or go directly to the https://jotform.com/myaccount/apiarrow-up-right

    • Here, you might see a list of existing API keys if you've created any before. To generate a new one, click the “Create New Key” button

    Create a new API key

    hashtag
    Use the API key in the Appmixer

    • In the authentication pop-up enter your API key.

    JotForm websitearrow-up-right
    Navigate to your Monday Developer Center -> My access tokens. Create a new token and copy it.
    Navigate to Developer Center
    Click Show and then Copy the token

    Use the copied token as apiKey when connecting Monday components in Appmixer.

    https://auth.monday.com/users/sign_up_newarrow-up-right

    Asana

    hashtag
    1. Create Asana account

    Sign up with Asana: https://app.asana.comarrow-up-right

    hashtag
    2. Register OAuth app

    To create an OAuth app with Asana, follow the oficial documentation: .

    Take note of the application's client ID and the client secret (which should be protected as a password)

    You will need to specify the App name and Redirect URL in this step.

    • The App name can be anything you want.

    • The Redirect URL should be the URL where Asana will redirect the user after they authorize your app. This depends on your environment, usually in the following format: https://api.qa.appmixer.com/auth/asana/callback

    hashtag
    Set clientId and clientSecret into Appmixer Backoffice.

    The last step is to configure clientId and clientSecret in the Appmixer Backoffice for appmixer:asana

    Hubspot

    hashtag
    Register OAuth2 app

    You need to create a developer account first (more about different Hubspot accounts can be found herehttps://developers.hubspot.com/docs/api/account-typesarrow-up-right)

    Create a new application.

    In order to get rid of a warning that your users will see before installing Hubspot module, you have to verify your identity as an app provider.

    You can manage the Contact & Support settings.

    Or skip for now.

    Set the application name, logo, and description.

    Go to the Auth tab and copy&paste these values into the .

    Create Hubspot configuration in the .

    Go back to Hubspot and set the redirect URL, replace acme.com with your domain and keep the suffix /auth/hubspot/callback

    Adding scopes.

    Hit Save.

    One more thing that you will need is the Hubspot, go back to the Apps page and hit the Get HubSpot API key button.

    Then copy&paste the generated key and put it into the .

    hashtag
    Hubspot App verification

    Your domain is unverified Until your domain is set and verified, users will see a warning when installing your app.

    Users will encounter this warning during the installation or management of the app. To eliminate this warning, the verification process must be completed. HubSpot mandates the configuration of a DNS TXT record as the sole method for verification.

    To configure and verify a custom HubSpot app for a hosted instance of Appmixer, such as ACME.appmixer.cloud, you will need to establish a custom domain for the Appmixer instance (for example, ACME.com). Without this custom domain, domain verification will not be possible.

    Jira

    hashtag
    Register OAuth app

    You can find all the necessary information on how to register an OAuth app in Jira in their official guidearrow-up-right.

    Access Attlassian Developer Consolearrow-up-right and create a new app. Click Create and select OAuth 2.0 integration.

    Click on the "Register an app" button.

    hashtag
    Set up distribution

    When you create an OAuth 2.0 (3LO) app, it's private by default. This means that only you can install and use it. If you want to distribute your app to other users, you must enable sharing.

    Please follow the instructions in the to set up distribution.

    hashtag
    Specify scopes

    You need to specify the scopes that your app will use. For Jira, you will need to select the following scopes:

    • read:me

    • read:jira-work

    • write:jira-work

    • manage:jira-project

    This is how the permissions should look like:

    hashtag
    Specify Callback URL

    hashtag
    Overview

    After you have created the app, you will see the overview of the app. Here you can find the client ID and client secret.

    hashtag
    Set clientId, clientSecret into Appmixer Backoffice.

    The last step is to configure clientId and clientSecret in the Appmixer Backoffice for appmixer:jira connector.

    Snowflake

    hashtag
    Account

    You'll need a Snowflake account. If you don't have one, you can sign up for a free trial on the Snowflake websitearrow-up-right.

    hashtag
    Obtain Credentials and Configuration

    You will need the following details to connect to your Snowflake database:

    • Account Name: This is often part of your Snowflake URL. You can find it in the Snowflake web interface after logging into your account.

    • Username: The username of the Snowflake user account you wish to use.

    • Password: The password for that Snowflake user.

    hashtag
    How to Find This Information:

    • Account:

      • Your account identifier is usually part of your Snowflake URL.

      • When you log into Snowflake, the URL looks like https: //abc12345.us-east-1.snowflakecomputing.com.

    Dropbox

    Configure the Dropbox.

    hashtag
    Access the Dropbox App Console

    • Open the Dropbox App Consolearrow-up-right.

    • Log in with your Dropbox account credentials.

    hashtag
    Create OAuth app

    hashtag
    Settings page

    • Set the Redirect URI to https://[YOUR_API_BASE]/auth/dropbox/callback, for example https://api.appmixer.com/auth/dropbox/callback

    • To allow additional users, click on "Enable Additional Users.

    • Configure the App Key as clientId and the App Secret as

    hashtag
    Permissions page

    Ensure that the following permissions are selected:

    • account_info.read

    • files.content.read

    • files.content.write

    Microsoft Dynamics 365 CRM

    Register an OAuth2 application in a similar way as usual Microsoft Azure App with few changes:

    • you don't need to configure OneDrive file picker

    • configure API permissions for Dynamics 365, see below

    Go to the API permissions section:

    Choose Dynamics CRM:

    Delegated permissions:

    The final set of permissions:

    Creating CRM Dataverse environment

    In order to use the Microsoft Dynamics 365 CRM connector, you'll need a Dataverse environment alongside your Microsoft account. You can review your environments in . If you don't have any environment there, you can start with a . From the list of available apps, select Dynamics 365 Sales. Once you complete the sign-up process, the CRM environment will be created.

    Once created you can view details of the environment and see Environment URL address which you will need when connecting a Microsoft Dynamics 365 CRM component to your account.

    Note that in order to interact with Lead entities, you'll need to install Sales module into your Dataverse environment. Some entities like Contact or Account come with a Dataverse environment by default, but it is not the case for Lead entity.

    Addition configuration

    Microsoft Dynamics 365 CRM connector has additional settings when it comes to caching Dataverse environment schema and data. These settings can be configured in the Backoffice the same way as clientId or clientSecret:

    • listLookupOptionsCacheTTL - Cache TTL for inspector variables in milliseconds. Default value 1 minute. Determines how long the values of various Lookup fields are stored in Appmixer cache. This affects values fetched into select boxes in the inspector for fields like Currency, Contact, etc.

    • listOutportCacheTTL - Cache TTL for outports in milliseconds. Default 1 hour. Determines how long Appmixer caches the structure of the Dataverse instance (environment) for output ports. In case you add a new table or change an existing table (eg. by changing column type), this is the time you need to wait before the changes are propagated into components outPort schema.

    Mailchimp

    hashtag
    Setup Mailchimp account

    Sign up with Mailchimp: https://mailchimp.com/arrow-up-right

    hashtag
    2. Register OAuth app

    Now you need to add an OAuth application. Navigate to: Profile > Extras > Registered apps.

    Click on the "Register an app" button.

    hashtag
    Specify client details

    hashtag
    Generate client secret

    Now save the OAuth client and copy the client ID and secret. You will need them later.

    hashtag
    Set clientId, clientSecret and subdomain into Appmixer Backoffice.

    The last step is to configure clientId and clientSecret in the Appmixer Backoffice for appmixer:mailchimp connector.

    Quickbooks

    First, you need to set an Quickbooks key and endpoint through the Backoffice in order to provide the Quickbooks components to your customers.

    Go to the https://developer.intuit.com/app/developer/dashboardarrow-up-right to create a new app.

    Select the name and scope:

    Then you receive your clientID and clientSecret.

    Also add the redirect URL. Example: https://api.YOUR_SUBDOMAIN.appmixer.cloud/auth/quickbooks/callback.

    Go the Appmixer BackOffice -> Configuration. Add new configuration: appmixer:quickbooks Add your clientId and clientSecret keys.

    hashtag
    Webhooks

    All trigger components (for example NewInvoice) use QuickBooks webhooks. In order to use this component(s) in Appmixer, you have to register Appmixer's QuickBooks URI in QuickBooks first and set the webhook key in the Appmixer BackOffice.

    Go to then choose your Appmixer app. Navigate to the "Webhooks" section either for the sandbox or production environment and add a new webhook.

    Fill the field Endpoint URL with https://api.acme.appmixer.cloud/plugins/appmixer/quickbooks/webhooks (replace acme with your subdomain) and select the events you want to listen to. Configure the event triggers you want to listen to.

    For detailed steps, see .

    Make sure to copy the Verifier Token and paste it to the Appmixer BackOffice -> Configuration -> appmixer:quickbooks -> webhookVerifierToken field.

    AI

    appmixer.utils.ai

    Appmixer AI utilities allows you to introduce AI functionality in your integrations, automations or simply extend your product with AI capabilities via Appmixer's No-Code Studio.

    Pre-built integration template.
    End-user can just actiavte the integration without any other configurations.

    After installing the appmixer.utils.ai module, go to the Backoffice to configure the OpenAI apiKey for the module:

    appmixer:utils:ai connector configuration
    apiKey is a mandatory setting, pointing to your OpenAI api key

    Additionally, you can also override the default OpenAI models for the SendPrompt (default is "gpt-4o") and GenerateImage (default is "dall-e-3") components:\

    CSV to HTML

    hashtag
    Overview

    The CSV2HTML component converts a CSV file into an HTML table. This allows for easier visualization and sharing of structured data.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Select the CSV File:

      • Provide the fileId of the CSV file to be converted.

    2. Processing:


    On Start

    hashtag
    Overview

    The OnStart Component is a trigger that fires once when the flow starts. It emits a timestamp indicating when the flow was initiated.

    hashtag
    Usage

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Output Data for out Port

    Field
    Description

    hashtag
    Instructions

    1. Automatic Trigger

      • The component automatically fires when the flow begins execution.

    2. Start Time Emission

    hashtag
    Notes

    • One-Time Execution: Triggers only once per flow execution.

    • Useful for Logging: Can be used to capture flow start times for analytics or debugging purposes.

    Twilio

    https://twilio.com

    • First, you'll need to create an account on the Twilio website.

    • After signing up, go to https://console.twilio.com/

    • Copy the Account SID and Auth Token from the "Account Info". Alternatively you can navigate to the "API Keys & Tokens" section, SID and Auth Token are available there.

    • use the Auth Token and Account Token to authenticate the Twilio components in the Appmixer Designer.

    Screenshot API

    Appmixer offers a built-in component for taking Screenshots.

    It uses https://screenshotapi.net/arrow-up-right API. If you want to have this module on the platform you have to create your own Screenshot account and set the API token in the Backoffice.

    Setting Screenshot API token in the Backoffice.

    Imperva

    hashtag
    Authentication

    To authenticate Imperva connector, an API Key is required. To obtain this key, log in to your Imperva account and navigate to Account > My Profile > API Keys. Click on "Add API Key" to generate a new key. Enter a name (and optionally otherparameters) for the API Key and click on "Create".

    API Keys

    Take note of the API ID and API Key. You will need these to authenticate the connector.

    API Keys

    You can also view the API Key details in the API Keys section.

    In the Imperva connector authentication window, use your Imperva API ID and API Key to log in.

    hashtag
    Configuration

    There are three optional configuration parameters for the SetBlockIPRule action of the Imperva connector. See the table below for more information.

    Parameter
    Required
    Default
    Description

    HTML to CSV

    Overview

    The HTML to CSV Converter component allows you to transform an HTML table file into a CSV format. This is useful for extracting structured data from HTML documents into a tabular format.

    Input Parameters

    Parameter
    Type
    Required
    Description

    fileId

    string

    Output Parameters

    Parameter
    Type
    Description

    Instructions

    1. Select the HTML File:

      • Provide the fileId of the HTML document that contains a table.

    2. Processing:

    Blackboard

    hashtag
    Create Blackboard App in the Developer portal

    The first thing you need is an app created in the developer portal. Navigate to https://developer.blackboard.com arrow-up-rightand signup for an account. When you are logged in, you can see a dashboard with a list of your applications and a button to create a new one:

    Note that listed applications have an Application ID. We will need it when we register our application in the blackboard instance. Click on the + button to create a new application. A simple form appears with your Application name and description inputs, and a domains input, for your domains. After you fill in the fields, create the new application.

    hashtag
    Register your application on Blackboard

    hashtag
    Self-managed instances

    Log in with admin privileges, and go to the System Admin tab in the top menu. After that, look under Integrations for REST API Integrations:

    Next, you will see a list with all your API Integrations. Click on Create Integration to add a new one:

    After that, you will show a small form. One of the inputs is the Application ID which as we showed in the first step, is available in the applications list at the developer portal. Next, browse and select a user. We recommend using the same user you are logged in with. On the End User Access and Authorized To Act As User, select Yes in both options. After that click on Submit to finish the registration.

    hashtag
    Configure the Backoffice

    Finally, we need to set the OAuth clientId and clientSecret in the to finish the integration. To obtain these values, go to the applications list in the developer portal. Find your application and click on the 3 dots at the end of the row. Then click on the Manage Keys option:

    After you will see a list of your application keys. Click on the + sign to create a new key. Your key will be created and its information will be shown to you:

    Be sure to store this information somewhere safe, as you won't be able to get it again.

    Next, log into the Backoffice and go to Services. Next create a configuration for appmixer:blackboard. Finally, add your Application ID as clientId and Secret as clientSecret. Also set serverUrl to your instance URL:

    And you are done! You are ready to use the Blackboard module.

    Highrise

    Unfortunately, since August 20, 2018 Highrisearrow-up-right no longer accepts signups.

    We keep the module in Appmixer for the older customers who have their Oauth2 application. If you are a new Appmixer customer, you won't be able to create the OAuth2 application and therefore use the Highrise module. In that case, you should remove it from the platform.

    hashtag
    User-Agent

    Requests to the Highrise API contain headers with User-Agent property. This is set by default to Appmixer, but it can be overwritten using Backoffice:

    JSON to XLSX

    JSON2XLSX Component

    Overview

    The JSON2XLSX component converts a JSON file into an XLSX (Excel 2007+ XML Format) file.

    Input Parameters

    Parameter
    Type
    Required
    Description

    Output Parameters

    Parameter
    Type
    Description

    Instructions

    1. Select the Input JSON File:

      • Upload or provide the fileId of the JSON file to be converted.

    2. Processing:

    Add Row

    Overview

    The AddRow component allows adding a single row to a dataset.

    Input Parameters

    Parameter
    Type
    Required
    Description

    dataset

    array

    Output Parameters

    Parameter
    Type
    Description

    Instructions

    1. Provide the Dataset:

      • Ensure the dataset is passed in the correct array format.

    2. Add Row Data:


    Delete Rows

    Description: The DeleteRows component removes specific rows from a CSV file based on a defined filter.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Use Column Names (Optional):

      • If the first row of the CSV file contains column names, enable the Use Column Names toggle.

      • Otherwise, columns will be identified by their index.

    Data URI to File

    hashtag
    Overview

    The DataUri2File component converts a Data URI into a file. It extracts the file content and metadata from the Data URI and generates a downloadable file.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Provide a Data URI

      • Input a valid Data URI string that represents a file.

    2. Specify a File Name (Optional)

    LinkedIn

    https://linkedin.com

    hashtag
    Register OAuth app

    • You need to start by creating a new app on the LinkedIn Developer platform. Visit https://developer.linkedin.com/ and log into your account. Once logged in, navigate to "MyApps", then click on "Create App". Fill in all necessary information like app name, app logo, app description, app privacy policy URL etc. You also need to fill the "Associated LinkedIn page". This is the LinkedIn page that will be associated with the app. If you don't have a LinkedIn page, you can create one by clicking on the "Create a LinkedIn Page" link.

    • Navigate to the "Auth" section where you will find OAuth 2.0 settings. Here, you can set the "Authorized Redirect URLs". Take note of the application's client ID and the client secret (which should be protected as a password)

      You will need to specify the Redirect URL in this step.

      The Redirect URL should be the URL where LinkedIn will redirect the user after they authorize your app. This depends on your environment, usually in the following format: https://api.ACME.com/auth/asana/callback

    • Configure scopes: Navigate to the "Products" section, request access to "Share on LinkedIn" and "Sign In with LinkedIn using OpenID Connect", once approved (it's instant approval), you will be able to see them on the top of the screen:

    hashtag
    Appmixer Backoffice.

    Set clientId and clientSecret into Appmixer Backoffice for appmixer:linkedin

    hashtag
    Verification

    Verification will enable scopes to be used in the LinkedIn Appmixer connector: "Advertising API", "Lead Sync API", "Conversions API" and "LinkedIn Ad Library". These scopes are not used in the current version of the LinkedIn connector, therefore it's not required. You can still perform the verification by sending the verification link generated in the "Settings" tab to the Super Admin of the page associated with the App.

    Process estimated time: instant approval.

    JSON to CSV

    JSON2CSV Component

    Overview

    The JSON2CSV component converts a JSON file into a CSV format. This enables easier data handling for spreadsheet applications and data processing tools that require CSV input.

    Input Parameters

    • fileId (string, required): The ID of the JSON file to be converted.

    Output Parameters

    • fileId (string): The ID of the newly generated CSV file.

    • fileName (string): The name of the generated CSV file.

    Instructions

    1. Upload JSON File: Provide the fileId of the JSON file you wish to convert.

    2. Processing: The component processes the input JSON and converts it into a structured CSV format.

    3. Retrieve Output: The resulting CSV file's fileId and fileName

    Add Column

    Overview

    The AddColumn component allows adding a new column to an existing dataset.

    Input Parameters

    Parameter
    Type
    Required
    Description

    dataset

    array

    Output Parameters

    Parameter
    Type
    Description

    Instructions

    1. Provide the Dataset:

      • Ensure the dataset is passed in the correct array format.

    2. Specify Column Details:


    Get Cell

    Description: The GetCell component finds the first row that matches the provided filter and returns the row value under the specified column.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Use Column Names (Optional):

      • If the first row of the CSV file contains column names, enable the Use Column Names toggle.

      • Otherwise, columns will be identified by their index.


    Join

    hashtag
    Overview

    The Join Component is used to merge multiple input connections. It forwards every received message to the output port without modification.

    hashtag
    Usage

    hashtag
    Input Ports

    Port
    Description

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Instructions

    1. Connect Multiple Inputs

      • Attach multiple input sources to the in port.

    2. Forward Messages

    hashtag
    Notes

    • Does Not Modify Messages: Messages are forwarded exactly as received.

    • Useful for Routing: Can be used to merge multiple data streams into one processing path.

    Email

    appmixer.utils.email

    Appmixer offers a built-in component for sending emails from the platform.

    The default SendEmail component.

    The SendEmail component uses our Mandrill API KEY by default. It is recommended to change that to your own Mandrill API KEY if you want to keep using Mandrill as the email service provider. You can do that from the Backoffice. The service ID is appmixer:utils:email in this case. You can also change the default from email address which is set to [email protected].

    The SendEmail component is an example, how sending emails from Appmixer can be done. You can have your own mailing system which you would like to use or you would like to use a different third-party application. In such a case, you should remove the SendEmail component from the system and offer your users your own implementation.

    Discord

    hashtag
    Register OAuth2 app

    Go to the Discord Developer Portal: https://discord.com/developers/applications and create a new Application.

    1. Click “New Application”

    Airtable

    hashtag
    Setup the App and Administrator account

    Sign up with Airtable:

    hashtag

    Counter

    hashtag
    Overview

    The Counter Component maintains an internal counter that increments with each received message. It can also be reset to a specified value.

    hashtag
    Usage

    Redmine

    You will need to create a new Redmine installation. Go to and follow the instructions. Alternatively, you can use a Docker image: or a hosted solution.

    Once you have your Redmine application make sure you have the REST API enabled. Go to Administration -> Settings -> API and check the "Enable REST web service" option.

    After that, you will need to create a new API key. Go to Administration -> Users -> Edit user and create a new API key.

    You will enter this API key and also the URL of your Redmine installation in when connecting each Redmine component.

    Set Variable

    hashtag
    Overview

    The SetVariable Component assigns variables dynamically based on input type and value. It allows storing values in various formats such as text, numbers, dates, booleans, and files.

    hashtag

    Rename Column

    hashtag
    Overview

    The RenameColumn component renames a column in a CSV file. This is useful for standardizing column names before processing or integrating CSV data with other systems.

    hashtag

    CSV to JSON

    hashtag
    Overview

    The CSV2JSON component converts a CSV file into a JSON file.

    hashtag
    Input Parameters

    Create CSV

    Description

    Create a new CSV file with an initial text content.

    Input Parameters

    Parameter
    Type
    Required
    Description

    Delete Columns

    hashtag
    Overview

    The DeleteColumns component removes specific columns from a CSV file. It allows users to define which columns to delete, using either column names (if headers exist) or column indices.

    hashtag

    HTML to JSON

    HTML to JSON Converter

    Description Convert an HTML table file into a JSON file.

    Input Parameters

    • fileId (string) - The ID of the file to be converted.

    Output Parameters

    Update Rows

    hashtag
    Overview

    The UpdateRows component updates all rows in a CSV file that match a provided filter. It allows users to modify values while maintaining the integrity of the dataset.

    hashtag

    Schoology

    hashtag
    Get your consumer key and secret

    Log in to your Schoology server. Look at the top navigation bar and go to Tools > School Management.

    In the new screen, click on Integrations in the left menu. Now click on the API tab. You should see your consumer key and secret. The secret is hidden, so you have to use the Reveal Existing Secret option.

    Database Name: The name of the database you want to connect to.
  • Warehouse: The name of the virtual warehouse to use for running queries.

  • Here, abc12345.us-east-1 is your account identifier.

  • Username and Password:

    • The credentials you use to log into the Snowflake web interface.

  • Database and Warehouse:

    • After logging into Snowflake, navigate to the Databases and Warehouses tabs to see available options.

    • Choose the appropriate database and warehouse for your needs.

  • are returned as output.
    hashtag
    Input Parameters
    Parameter
    Type
    Description

    count

    number

    The initial counter value (default: 0).

    increment

    number

    The amount by which the counter increments (default: 1, can be negative for decrement).

    hashtag
    Input Ports

    Port
    Description

    item

    Triggers the counter increment.

    reset

    Resets the counter to a specified value or its initial value if not provided.

    hashtag
    Output Ports

    Port
    Description

    count

    Emits the updated counter value after each increment.

    hashtag
    Instructions

    1. Set Initial Value and Increment

      • Configure the count parameter for the starting value.

      • Set increment to define how much the counter increases or decreases.

    2. Increment Behavior

      • Each time a message arrives at the item port, the counter increases by the increment value.

    3. Reset Counter

      • Sending a message to the reset port resets the counter to the specified value or its initial value if no value is provided.

    hashtag
    Notes

    • Supports both increment and decrement operations.

    • State is maintained: The counter retains its value across executions until reset.

    • Useful for tracking counts in loops, event occurrences, or rate-limiting scenarios.

    Usage

    hashtag
    Input Ports

    Port
    Description

    in

    Accepts an object containing variables and their values.

    hashtag
    Output Ports

    Port
    Description

    out

    Emits the assigned variables as an object.

    hashtag
    Supported Variable Types

    • Text (text) – Stores a string value.

    • Textarea (textarea) – Stores a longer text value.

    • Number (number) – Stores a numeric value.

    • Date-Time (date-time) – Stores a date and time.

    • Boolean (toggle) – Stores a true/false value.

    • File (filepicker) – Stores a selected file reference.

    hashtag
    Instructions

    1. Provide Variables

      • Send an object containing variable names, types, and values to the in port.

    2. Processing Variables

      • The component assigns the variables dynamically based on their types.

    3. Retrieve Output

      • The processed variables are sent as an object through the out port.

    hashtag
    Notes

    • Flexible Variable Storage: Supports multiple data types for dynamic variable assignments.

    • Useful for Workflow Automation: Allows temporary storage of values for later processing.

    • Outputs in Key-Value Format: The output is structured as an object containing assigned values.

    Parameter
    Type
    Required
    Description

    fileId

    string

    ✅

    The ID of the CSV file to convert.

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The unique ID of the generated JSON file.

    fileName

    string

    The name of the generated JSON file.

    hashtag
    Instructions

    1. Provide File ID:

      • Select or upload the CSV file to be converted.

    2. Processing:

      • The component processes the CSV file and converts it into JSON format.

    3. Output:

      • The converted JSON file is available with its unique fileId and fileName.

    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify columns.

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The ID of the processed CSV file.

    hashtag
    Instructions

    1. Determine Column Identification Method

      • If the first row contains column names, set withHeaders to true. This ensures the correct columns are deleted based on their names.

      • If column names are not available, columns are identified by index.

    2. Select Columns to Remove

      • Specify the columns you want to delete.

      • Ensure the correct format is used for column identification.

    3. Processing

      • The component removes the selected columns and generates a new CSV file.

      • The modified file is returned with a new fileId.

    4. Output

      • The processed file can be downloaded or used as input for further data processing.


    fileId (string) - The ID of the newly created JSON file.

  • fileName (string) - The name of the converted JSON file.

  • Input Parameters
    Parameter
    Type
    Required
    Description

    withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify the columns.

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The ID of the updated CSV file.

    hashtag
    Instructions

    1. Enable Column Header Usage (Optional)

      • If your CSV file contains column headers in the first row, enable withHeaders to update rows based on column names.

      • Otherwise, updates will be performed based on column indices.

    2. Specify Filters and Updates

      • Define conditions that identify which rows should be updated.

      • Provide new values for selected columns.

    3. Processing

      • The component updates all matching rows in the CSV file.

      • The modified file is outputted with a new fileId.


    The component will transform the CSV file into an HTML table.

  • Retrieve Output:

    • The converted HTML file’s fileId and fileName will be returned.

  • fileId

    string

    ✅

    The unique identifier of the CSV file.

    fileId

    string

    The ID of the generated HTML file.

    fileName

    string

    The name of the generated file.

    Outputs a started timestamp that can be used for logging, tracking, or scheduling purposes.

    out

    Fires when the flow starts, providing the start time.

    started

    The timestamp (ISO 8601 format) indicating when the flow started.

    The component extracts the table data from the HTML file and converts it into a structured CSV format.

  • Retrieve Output:

    • The component returns a new file with fileId and fileName in CSV format.

  • ✅

    The ID of the HTML file to convert.

    fileId

    string

    The unique ID of the converted file.

    fileName

    string

    The name of the generated CSV file.

    The component converts the JSON file into an XLSX format.

  • Retrieve the XLSX File:

    • The output provides the new file's fileId and fileName.

  • fileId

    string

    ✅

    The ID of the JSON file to convert.

    fileId

    string

    The ID of the generated XLSX file.

    fileName

    string

    The name of the XLSX file.

    Provide the new row as an object where keys match column names.

  • Process & Output:

    • The component adds the row and outputs the updated dataset.

  • ✅

    The dataset to which the row will be added.

    row

    object

    ✅

    The row object containing column values.

    dataset

    array

    The updated dataset with the new row.

    Processing:

    • The component scans the CSV file for rows that match the given filter.

    • Any matching rows are removed, and a new CSV file is generated.

    withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify columns.

    fileId

    string

    The ID of the processed CSV file.

    Enter a desired file name with or without an extension.

  • If omitted, the extension is inferred from the file type.

  • Processing

    • The component extracts the file content from the Data URI and saves it as a downloadable file.

    • Returns the fileId and fileName of the newly created file.

  • dataUri

    string

    ✅

    A Data URI representation of a file.

    fileName

    string

    ❌

    The desired name of the output file. If omitted, a default name (result.[EXT]) is assigned based on the file type.

    fileId

    string

    The unique ID of the generated file.

    fileName

    string

    The name of the resulting file.

    Enter the column name.

  • Optionally, provide a default value for all rows.

  • Process & Output:

    • The component adds the column and outputs the updated dataset.

  • ✅

    The dataset to which the column will be added.

    columnName

    string

    ✅

    The name of the new column.

    defaultValue

    any

    ❌

    Default value for the new column (optional).

    dataset

    array

    The updated dataset with the new column.

    Processing:

    • The component scans the CSV file for a row that matches the given filter.

    • Once found, it returns the value of the specified column in that row.

    withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify columns.

    fileId

    string

    The ID of the processed CSV file.

    cell

    string

    The value found in the specified column.

    Every received message is immediately sent to the out port.

    in

    Receives messages from multiple sources.

    out

    Emits the received input messages as output.

    https://developers.asana.com/docs/oauth#register-an-applicationarrow-up-right
    Backoffice Airtable connector configuration

    manage:jira-configuration

  • read:jira-user

  • report:personal-data

  • official guidearrow-up-right
    Specify scopes
    Specify callback URL
    Settings with clientId and clientSecret
    Overview of the new app
    Backoffice JIRA connector configuration
    clientSecret
    in the service settings within the Backoffice, under the configuration ID
    appmixer:dropbox
    .
  • To learn more about configuring connectors, please visit the Connector Configurationarrow-up-right section.

  • files.metadata.read

    Create new OAuth app
    settings
    permissions
    Navigate to Profile
    Navigate to Registered apps
    Specify app details
    Copy Client ID and Client secret
    Backoffice Mailchimp connector configuration
    Scopes
    https://www.redmine.org/projects/redmine/wiki/RedmineInstallarrow-up-right
    https://hub.docker.com/_/redminearrow-up-right
    Authenticate
    Authenticate
    Twilio Account Inof
    User API Token
    Backofficearrow-up-right
    Backofficearrow-up-right
    Backofficearrow-up-right
    appmixer:hubspot
    listInspectorCacheTTL - Cache TTL for inspector in milliseconds. Default 1 hour. Similar to listOutportCacheTTL. Determines how long Appmixer caches the structure of the Dataverse instance (environment) for the inspector. In case you add a new table or change an existing table (eg. by changing column type), this is the time you need to wait before the changes are propagated into the component's inspector.
    PowerPlatform administrationarrow-up-right
    trialarrow-up-right
    https://developer.intuit.com/app/developer/dashboardarrow-up-right
    QuickBooks documentationarrow-up-right
    QuickBooks Webhooks configuration
    QuickBooks Webhooks event triggers
    Appmixer BackOffice configuration for QuickBooks Webhooks
    Backofficearrow-up-right
    REST API Integrations option
    REST API Integrations list
    Manage Keys in developer portal
    Key information
    Blackboard configuration
    Change user agent.

    blockIpMaxIpsPerRule

    No

    20

    The maximum number of IP addresses that can be added to a block rule.

    blockIpMaxParallelRequests

    No

    5

    The maximum number of parallel requests that can be made to block IP addresses.

    blockIpMaxRulesInImperva

    No

    500

    API Keys
    API Keys

    The maximum number of custom rules that can be added to Imperva. See https://docs.imperva.com/bundle/cloud-application-security/page/rules/create-rule.htm

    initialContent

    string

    ✅

    CSV formatted content to initialize the new file.

    delimiter

    string

    ✅

    A character to use as a delimiter between columns.

    Output Parameters

    Parameter
    Type
    Description

    out

    object

    Generates an output port with headers.

    Instructions

    1. Provide File Name: Enter the desired CSV file name.

    2. Set Delimiter: Define a delimiter (default: ,).

    3. Enter Initial Content: Add pre-formatted CSV content.

    4. Process CSV Creation: The component generates a CSV file.


    filename

    string

    ✅

    The name of the CSV file.

    Give it a name, accept their Terms of Service and click “Create”

  • Open your new application

  • hashtag
    Basic Information

    To obtain your OAuth credentials, go to OAuth2 tab:

    • Client ID: shown on the “Client information” card as “Client ID”

    • Client Secret: click “Reset Secret” to generate a secret and copy it

    You’ll paste these into the Appmixer Backoffice later.

    hashtag
    OAuth2 & Redirect URL

    You must add the redirect/callback URL so Discord can return users to Appmixer after authorization.

    • Go to OAuth2 tab

    • In “Redirects”, add your Appmixer URL. Example:

      https://api.YOUR_SUBDOMAIN.appmixer.cloud/auth/discord/callback

    Note: Replace YOUR_SUBDOMAIN with your actual Appmixer subdomain. The path “/auth/discord/callback” follows the same pattern as other Appmixer connectors.

    hashtag
    Add a Bot and get the Bot Token

    To make the events (sending messages, reacting to events) be from a bot, add one:

    • Click “Reset Token” to reveal the Bot Token and copy it

    Keep the token secure. You’ll paste it in the Backoffice as well.

    Check the settings below in Authorization Flow, recommended set up is:

    • Public Bot: ON

    • Requires OAuth2 Code Grant: ON

    • Server Members Intent: ON

    Rest can be turned off.

    hashtag
    Scopes and Permissions

    How you configure scopes:

    • Installation → Default Install Settings:

      • User Install: applications.commands

      • Guild Install: applications.commands, bot

    hashtag
    Backoffice (Appmixer admin)

    Copy and paste the values into the Backoffice under the Discord connector configuration (appmixer:discord):

    • clientId → "Client ID" from Discord

    • clientSecret → “Client Secret” from Discord

    • botToken → “Bot Token”

    After saving, return to your flow in Appmixer. Click “Connect account” for the Discord connector, complete the authorization, and you’re ready to use Discord components in your flows.

    Specify Base name
    Specify base name

    Specify Table name

    Specify table name

    hashtag
    Specify Table details (fields)

    Specify table details
    Airtable workspace created

    Now the Airtable workspace/base is prepared. Let's configure the OAuth app.

    hashtag
    2. Register OAuth app

    hashtag
    Specify name

    hashtag
    Specify name and callback url

    hashtag
    Generate client secret

    hashtag
    Specify scopes

    hashtag
    Set clientId and clientSecret into Appmixer Backoffice.

    The last step is to configure clientId and clientSecret in the Appmixer Backoffice for appmixer:airtable

    Backoffice Airtable connector configuration
    https://airtable.com/signuparrow-up-right
    Input Parameters
    Parameter
    Type
    Required
    Description

    fileId

    string

    ✅

    The ID of the CSV file where the column should be renamed.

    delimiter

    string

    ✅

    The character used to separate columns (default: ,).

    columnName

    string

    ✅

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The ID of the CSV file with the renamed column.

    hashtag
    Instructions

    1. Specify CSV File and Delimiter

      • Provide the fileId of the CSV file containing the column to be renamed.

      • Set the correct delimiter (e.g., ,, ;, \t).

    2. Rename the Column

      • Enter the current column name in columnName.

      • Specify the new column name in newColumnName.

    3. Processing

      • The component will rename the specified column in the CSV file.

      • The modified file will be outputted with a new fileId.


    hashtag
    Configure the authentication values in Appmixer

    Log into the Backoffice and go to the Services section. Add a new service configuration named appmixer:schoology. After it is created, add the following configuration values:

    Configuration values for Schoology

    Here is the explanation for each value:

    • baseUrl: The API base URL. Usually is https://api.schoology.com/v1, but there are some cases where it could be different.

    • consumerKey and consumerSecret: The consumer key and secret we got from the Schoology server.

    • domain: The subdomain part from your server. For example, if your server URL is https://example.schoology.com, then the domain value is just an example.

    Integrations screen with the consumer key and secret.

    AWS SNS

    hashtag
    Overview

    The AWS SNS Connector allows you to send SMS messages using Amazon Simple Notification Service (SNS). However, there are certain limitations and prerequisites that must be met for successful message delivery.

    hashtag
    Prerequisites

    Before using the AWS SNS Connector to send SMS messages, ensure the following:

    1. SNS Sandbox Registration:

      • If your AWS account is in SNS SMS Sandbox Mode, SMS messages can only be sent to verified phone numbers added in the AWS Console.

      • To register a phone number, follow .

    hashtag
    Important Considerations

    hashtag
    ✅ 200 OK Response Does Not Guarantee SMS Delivery

    • When an SMS is published via SNS, a 200 OK response is returned.

    • However, this only confirms that SNS received the request. It does not confirm message delivery.

    • To track the status of an SMS:

    hashtag
    ✅ Common Issues and Solutions

    Issue
    Cause
    Solution

    hashtag
    Debugging Steps

    1. Verify Phone Number:

      • Check if the recipient's number is added in the AWS SNS SMS sandbox.

    2. Check Spend Limit:

    hashtag
    References

    hashtag
    Conclusion

    The AWS SNS Connector itself functions correctly. However, message delivery depends on AWS account settings, sandbox verification, spending limits, region settings, and logging permissions. By following the prerequisites and debugging steps above, users can ensure successful SMS delivery through AWS SNS.


    For further assistance, consult AWS support or refer to the official SNS documentation.

    Salesforce

    hashtag
    Create a Salesforce application

    To integrate Appmixer with Salesforce, you are going to need an app in your Salesforce account. You can either create a new one or use one that already exists.

    To create an app, you have to login into Salesforce Developer portalarrow-up-right. Once logged in, on the left menu, look up Platform Tools -> Apps -> App Manager. This will show you a list of your existing apps and provide the option to create a new one via the New Connected App on the top right side:

    App manager

    In the next screen, you will be requested to fill out some basic data about your new app. Look out for the API (Enable OAuth Settings) section. Tick the Enable OAuth Settings checkbox, and fill out the callback URL and scopes as shown in this screenshot:

    Check the Require Secret for Web Server Flow, Require Secret for Refresh Token Flow and Enable Authorization Code and Credentials Flow checkboxes.

    hashtag
    Getting client id and secret

    With your app ready, you can get the client id and secret required for integrate Salesforce into Appmixer. Go to the App Manager and search for your app in the list. On the dropdown in the right side, click the View option.

    In the next screen, look out for API (Enable OAuth Settings) section and click on the Manage Consumer Details button. You should see now your client id (shown as Consumer Key) and secret (shown as Consumer Secret):

    Now we can provide these values to Appmixer. Log into the Backoffice and go to the Configuration section. Create a configuration service for Salesforce as follows:

    Finally, set the clientId (Consumer Key in Salesforce) and the clientSecret (Consumer Secret in Salesforce) like this:

    hashtag
    Authentication configuration

    The Salesforce OAuth authentication offers several behaviors when users try to authenticate. This is the summary of the available options (taken from Salesforce ):

    • login—The authorization server must prompt the user for reauthentication, forcing the user to log in again.

    • consent—The authorization server must prompt the user for reapproval before returning information to the client.

    • select_account—If present, take one of the following actions.

    By default, we use the login option, but you can configure it through the Backoffice.

    1. Login into the Backoffice, and go to the Services module. Then add a new service like this:

    2. Add a promptType key, and set it to one of the supported values by Salesforce:

    hashtag
    Login URL

    The default login URL is , this can be changed with a baseUrl.

    Facebook Business

    hashtag
    Create Facebook OAuth Application

    1. Visit https://developers.facebook.com/arrow-up-right and create a new OAuth application (or use your existing one).

    2. Add Facebook Login for Business and Marketing API products.\

    3. Copy the App ID and App Secret a and paste it to your Appmixer Backoffice -> Connector Configuration page under the appmixer:facebookbusiness configuration ID as clientId and clientSecret, respectively:\

    4. Add your Appmixer tenant domains as your App domains:\

      Note: replace YOUR_TENANT with the name of your hosted tenant. If you're a customer on an Appmixer Self-Managed plan, you can have a completely custom domains that Appmixer runs on. Use your own domains instead.

    5. Set the OAuth redirect URI under Facebook Login for Business / Settings to https://api.YOUR_TENANT.appmixer.cloud/auth/facebookbusiness/callback:\

    Twitter

    Configure the Twitter.

    hashtag
    Access the Twitter App Console

    • Navigate to the Twitter Developer Platformarrow-up-right and sign up if you haven't already.

    • You might be required to apply for a developer account where you'll need to provide some information about your intended use of Twitter’s API.

    hashtag
    Create OAuth app

    • After logging in to your Twitter Developer account, navigate to the .

    • Twitter should automatically create a default project and application for you. If it doesn't, click "Create Project" and follow the prompts to set up a new one. After creating the project, you'll be able to create an application. Navigate to your project and select "Add App."

    • Update application details, such as the name, description, and icon, by clicking the "Edit" button. Next, configure the authentication settings.

    hashtag
    User Authentication Settings

    • Set the "App permissions" to "Read and write" and "Type of App" to "Web App"

    • Set the Redirect URI to https://[YOUR_API_BASE]/auth/twitter/callback, for example https://api.appmixer.com/auth/titter/callback

    hashtag
    Keys and Tokens

    • Get the Client Id and Client Secret from the Keys and Tokens page

    • Configure the App Key as clientId and the App Secret as clientSecret in the service settings within the Backoffice, under the configuration ID appmixer:twitter.

    • To learn more about configuring connectors, please visit the section.

    Each

    hashtag
    Overview

    The Each Component iterates over a list and outputs a new message for each item. It allows processing list elements individually, enabling sequential execution of subsequent actions.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Input Ports

    Port
    Description

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Output Data for item Port

    Field
    Description

    hashtag
    Output Data for done Port

    Field
    Description

    hashtag
    Instructions

    1. Provide a List

      • Ensure the input list is an array or a valid JSON string representing an array.

    2. Processing Items

    hashtag
    Notes

    • Supports JSON Parsing: If list is a string, it will attempt to parse it as JSON.

    • State Persistence: Keeps track of progress and resumes processing if interrupted.

    • Efficient for Iteration: Useful for batch processing workflows requiring individual handling of list elements.

    Shopify

    Configure the Shopify.

    hashtag
    Setting Up a Shopify Partner Account

    Sign Up or Log In: If you haven’t already, go to the Shopify Partners pagearrow-up-right and sign up for an account. If you have an account, just log in.

    hashtag
    Create a New App

    Create a New App: Once logged in, navigate to the "Apps" section using the dashboard menu. Click on "Create app" to get started, select the "Create app manually"

    Note the clientId and clientSecret. Next, click on the "Choose distribution"

    Select the "Public distribution" option

    Go to the "Configuration" section from the main menu

    • set the Redirect URI to https://[YOUR_API_BASE]/auth/twitter/callback, for example https://api.appmixer.com/auth/titter/callback

    • event version to the latest (2024-01)

    • Embed app in Shopify admin: false

    Go to the "API Access" section from the main menu. In the "Access requests" request access for the "Protected customer data access" Fill details in the "Select your data use and reasons" section:

    Fill the form in the "Provide your data protection details" section:

    hashtag
    Configuration in the Backoffice

    • Configure the App Key as clientId and the App Secret as clientSecret in the service settings within the Backoffice, under the configuration ID appmixer:shopify. Also, add the appStoreInstallRedirectUri pointing to your instance, for example https://my.master-hamster-87765.appmixer.cloud/

    • To learn more about configuring connectors, please visit the section.

    Please note that only a 'developer' shop instance can be authenticated with your OAuth application unless your app is verified. 'Production' shop instances cannot authenticate with an unverified app. This guide does not cover all the requirements for the app verification process.

    Export CSV

    Description: The ExportCSV component exports structured data into a CSV file.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Define Data Source:

      • Provide structured data in an array format, ensuring proper key-value mapping.

    2. Set Output File Name:


    Get Rows

    hashtag
    Overview

    The GetRows component retrieves rows from a CSV file. It allows filtering of rows based on conditions and supports column headers for structured data extraction.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Use Column Headers (Optional)

      • If the first row of the CSV file contains column names, enable the Use Column Names toggle.

      • Otherwise, columns will be identified by their index.


    CSV to XLSX

    hashtag
    Description

    Convert a CSV file to XLSX (Excel 2007+ XML Format).

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Provide File ID:

      • Select the CSV file to be converted using its fileId.

    2. Processing:

    XLSX to CSV

    XLSX2CSV Component

    hashtag
    Overview

    The XLSX2CSV component converts an XLSX Excel 2007+ XML format file into a CSV file.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Provide File ID:

      • Select an XLSX file using its fileId.

    2. Conversion Process:

    This component is useful for extracting tabular data from Excel files into a widely used CSV format for further processing.

    AppEvents

    Visit the Use App Eventsarrow-up-right tutorial for more information.

    hashtag
    Overview

    The On App Event Component triggers when an event is received from an external application, allowing automation workflows to respond dynamically to incoming app events.

    hashtag
    Usage

    This component listens for app events and processes incoming data, making it ideal for integrating external systems and event-driven workflows.

    hashtag
    Properties

    Property
    Type
    Description

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Processing Logic

    1. Registers Webhook: Subscribes to the specified event using the Appmixer API.

    2. Receives Event Data: Waits for an event from the external system.

    3. Processes Data:

    hashtag
    Output Data Schema

    Property
    Type
    Description

    hashtag
    Notes

    • Webhook-Based Execution: Efficiently listens for app events using webhooks.

    • Dynamic Event Handling: Supports various app events based on configurations.

    • Ideal for Integrations: Enables event-driven automation between external apps and workflows.

    This component is essential for workflows requiring real-time event processing and seamless app integration.

    JSON to HTML

    hashtag
    Overview

    The JSON2HTML component converts a JSON file into an HTML table.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Provide the JSON File:

      • Select or upload a JSON file using its fileId.

    2. Processing:

    XLSX to HTML

    XLSX2HTML Component

    hashtag
    Overview

    The XLSX2HTML component converts an XLSX (Excel 2007+ XML) file into an HTML table format.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Select the XLSX File

      • Choose an existing XLSX file by providing its fileId.

    2. Processing

    Calendly

    hashtag
    Calendly – Connector Configuration

    hashtag
    Step 1: Create a Developer Account & First Application

    Switch

    hashtag
    Overview

    The Switch component allows conditional branching of messages based on predefined expressions. It evaluates up to five conditions (out1 to out5) and routes messages accordingly. If none of the conditions match, the message is sent to the else output.

    Condition

    hashtag
    Overview

    The Condition Component evaluates expressions and directs data to either the true or false output port based on the result. It supports logical conditions using multiple operators and can process complex logical groupings.

    PATCH

    hashtag
    Overview

    The HTTP PATCH component allows sending HTTP PATCH requests to external services. It is typically used to partially update resources via API calls. The connector processes the request and returns the response details, including body, headers, and status code.

    hashtag

    HTML to XLSX

    hashtag
    Overview

    The HTML2XLSX component converts an HTML table file into an XLSX (Excel 2007+ XML Format) file.

    hashtag
    Input Parameters

    Import CSV

    hashtag
    Overview

    The ImportCSV component allows users to import a CSV file into a workflow. It supports specifying a delimiter and can process files from user input.

    hashtag

    Parameter
    Type
    Required
    Description

    fileId

    string

    ✅

    The ID of the HTML file containing the table to convert.

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The unique ID of the converted XLSX file.

    fileName

    string

    The name of the generated XLSX file.

    hashtag
    Instructions

    1. Provide the File ID:

      • Select or upload an HTML file containing a table.

    2. Conversion Process:

      • The component extracts tabular data from the HTML file and converts it into an Excel spreadsheet.

    3. Retrieve the Output:

      • The resulting XLSX file is provided as output with a unique fileId and fileName.


    The name of the column to be renamed.

    newColumnName

    string

    ✅

    The new name for the column.

    Each item in the list is sent separately to the item port.

  • The done port is triggered after all items are processed.

  • Handling Index and Correlation ID

    • Each item is assigned an index and a correlationId to track processing.

  • list

    array / string

    The list to iterate over. If a string is provided, it must be a valid JSON array.

    in

    Receives the list to iterate over.

    item

    Emits each item from the list with additional metadata.

    done

    Fires after all items have been processed, providing the total count and correlation ID.

    index

    The index of the current item in the list.

    value

    The value of the current item.

    count

    Total number of items in the list.

    correlationId

    Unique identifier for tracking batch processing.

    count

    The total number of processed items.

    correlationId

    Unique identifier for tracking batch execution.

    Choose a name for the CSV file, including the .csv extension.

  • Include Headers (Optional):

    • Enable Use Headers if the first row should contain column headers.

  • Processing:

    • The component processes the structured data and creates a CSV file.

    • The newly generated file is output with its fileId and fileName.

  • data

    array

    ✅

    The structured data to be converted into CSV format.

    fileName

    string

    ✅

    The name of the output CSV file, including the .csv extension.

    withHeaders

    boolean

    ✅

    Set to true if the first row should contain column headers.

    fileId

    string

    The ID of the generated CSV file.

    fileName

    string

    The name of the exported CSV file.

    Apply Row Filters (Optional)
    • Enable Filter Rows if you want to return only the rows matching specific criteria.

    • Filters can be defined based on column values.

  • Processing

    • The component extracts rows based on the provided criteria.

    • The processed data is returned as an array of rows.

  • Output

    • The retrieved rows can be used for further processing or stored for reference.

  • withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify columns.

    filterRows

    boolean

    ✅

    Enable filtering to return only rows that match specified conditions.

    fileId

    string

    The ID of the processed CSV file.

    rows

    array

    The extracted rows from the CSV file.

    The component processes the file and converts it into an XLSX format.

  • Retrieve Output:

    • The converted file is returned with a fileId and fileName for further use.

  • fileId

    string

    ✅

    The ID of the file to convert.

    fileId

    string

    The unique ID of the converted XLSX file.

    fileName

    string

    The name of the converted file.

    The component processes the XLSX file and converts it into CSV format.

  • Retrieve Output:

    • The converted file is returned with its fileId and fileName.

  • fileId

    string

    ✅

    The ID of the XLSX file to convert.

    fileId

    string

    The unique ID of the newly created CSV file.

    fileName

    string

    The name of the converted CSV file.

    Parses the received JSON payload.

  • Extracts structured data based on eventDataExample.

  • Emits Structured Output: Sends the processed event data to the out port.

  • event

    string

    The name of the event to listen for.

    eventDataExample

    string

    An example JSON structure representing the event data.

    out

    Emits the received app event data.

    data

    object

    The JSON payload received from the app event.

    The component reads the JSON file and converts it into an HTML table.

  • Retrieve the Output:

    • The output file is provided as an HTML file with a fileId and fileName.

  • fileId

    string

    ✅

    The ID of the JSON file to be converted.

    fileId

    string

    The unique ID of the converted HTML file.

    fileName

    string

    The name of the output HTML file.

    The component will convert the XLSX file into an HTML table.

  • Output

    • The resulting file ID and name will be returned for further use.

  • fileId

    string

    ✅

    The ID of the XLSX file to convert.

    fileId

    string

    The unique ID of the converted file.

    fileName

    string

    The name of the generated HTML file.

    Region Compatibility:

    • The SNS SMS service may be region-dependent. Ensure the selected region supports SNS SMS services.

    • Messages might only be delivered if the selected region matches your AWS account’s region.

  • Spending Limit:

    • AWS imposes a default spending limit of $1 USD for SMS.

    • If the limit is reached, no SMS will be sent.

    • Check and increase the limit in the AWS SNS console under SMS settings.

  • IAM Permissions:

    • To enable SMS delivery logs, you must have the necessary IAM permissions.

    • Without proper permissions, viewing SMS failures or debugging will not be possible.

    • Check IAM policies and request permissions if needed.

  • Enable CloudWatch Logs for SNS SMS (requires permissions).

  • Use AWS SNS Delivery Status Logs to check failures.

  • Go to AWS SNS Console → Text Messaging (SMS) → Spend Limit.

  • Enable Logs for Debugging:

    • Navigate to AWS CloudWatch Logs and enable SNS delivery status logs.

    • Ensure IAM permissions allow access to logs.

  • Confirm Region Settings:

    • Use a region that supports SNS SMS delivery.

  • SMS not received

    Phone number not verified in sandbox

    Add number to SNS sandbox

    200 OK but no SMS

    No balance in the AWS SNS SMS spend limit

    Increase spending limit in AWS console

    SMS delivery failure

    Region mismatch

    Use the correct region for SMS service

    Unable to view logs

    Insufficient IAM permissions

    Request permissions to enable CloudWatch logs

    AWS documentationarrow-up-right
    Publishing SMS messages to a mobile phone using Amazon SNSarrow-up-right
    Adding and verifying phone numbers in the Amazon SNS SMS sandboxarrow-up-right
    Use App ID as clientId and App Secret as clientSecret
    Developer Dashboardarrow-up-right
    Connector Configurationarrow-up-right

    set the compliance webhooks (it's required for the submission)

    • Customer data request endpoint: https://[YOUR_API_BASE]/plugins/appmixer/shopify/customers/data_request

    • Customer data erasure endpoint: https://[YOUR_API_BASE]/plugins/appmixer/shopify/customers/redact

    • Shop data erasure endpoint: https://[YOUR_API_BASE]/plugins/appmixer/shopify/shop/redact

  • Connector Configurationarrow-up-right
    Specify base name
    • If zero or one hint is available and the user is logged in, show the approval page without prompting for login.

    • If zero or one hint is available and the user isn’t logged in, prompt for login.

    • If more than one hint is available, show the account chooser.

    Oauth docsarrow-up-right
    https://login.salesforce.comarrow-up-right
    Filling OAuth settings for your application
    Configure additional properties
    Navigating to your app details
    Salesforce client id (Consumer Key) and secret (Consumer Secret)
    Creating configuration for Salesforce in the Backoffice
    Adding clientId and clientSecret to Appmixer

    Create a Calendly Developer account: Create a Developer Accountarrow-up-right

  • Go to Calendly Console Appsarrow-up-right and sign up.

  • ⚠️ Note: This is not your Calendly user account. It’s a separate developer account.


    hashtag
    Step 2: Register Your OAuth Application

    1. Create a new OAuth application:

      • Provide a name for your application.

      • Select the kind of application:

        • Web

      • Select your environment:

        • Sandbox (recommended for development)

        • Production (use when going live with customer data)


    hashtag
    Step 3: Set Redirect URI

    • Sandbox: HTTP with localhost domain allowed Example:

    • Production: Must use HTTPS.

    👉 You can add multiple redirect URIs, separated by commas. 👉 For Appmixer, set the redirect URI to:

    Example:

    alt text

    hashtag
    Step 4: Copy Your Credentials

    Once the app is created, you’ll see:

    • Client ID

    • Client Secret

    ⚠️ Important: These values will only be shown once. Copy them immediately!


    hashtag
    Step 5: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:calendly .

    3. Add your clientId and clientSecret keys with values.

    alt text
    alt text

    hashtag
    Step 6: Edit Your Application

    • To edit an existing OAuth app in Calendly:

      • Click the menu icon → Edit.

    • Editable attributes:

      • Application Name

      • Kind of App

      • Environment Type

      • Redirect URI

    ⚠️ Note: Client Secret and Webhook Signing Key cannot be retrieved again after creation.


    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    expression1 - expression5

    expression

    Conditional expressions for respective outputs (out1 to out5).

    else

    default

    Messages that do not match any condition are sent here.

    Each expression supports AND/OR logic, allowing complex conditions.

    hashtag
    Supported Operators

    Operator
    Description

    =

    Equal to

    !=

    Not equal to

    >

    Greater than

    >=

    Greater than or equal to

    <

    Less than

    <=

    Less than or equal to

    hashtag
    Output Parameters

    Output
    Description

    out1 - out5

    Message is sent to the first matching output based on conditions.

    else

    If no conditions are met, the message is sent to this output.

    hashtag
    Instructions

    1. Define Conditions

      • Configure up to 5 expressions (expression1 to expression5) for routing messages.

    2. Set Operators

      • Use supported operators to define comparison logic.

    3. Handle Default Cases

      • If none of the conditions match, the message is sent to else.


    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    expression

    object

    A structured condition with logical operators (AND, OR) and comparison rules.

    hashtag
    Supported Operators

    Operator
    Description

    =

    Checks if two values are equal.

    !=

    Checks if two values are not equal.

    >

    Checks if a value is greater than another.

    >=

    Checks if a value is greater than or equal to another.

    <

    Checks if a value is less than another.

    <=

    Checks if a value is less than or equal to another.

    hashtag
    Output Ports

    Port
    Description

    true

    Fires if the condition evaluates to true.

    false

    Fires if the condition evaluates to false.

    hashtag
    Instructions

    1. Define Conditions

      • Create conditions using logical grouping (AND, OR).

      • Choose an operator and provide a comparison value.

    2. Evaluate Inputs

      • Inputs are compared using selected operators.

      • Logical groups (AND, OR) allow complex expressions.

    3. Direct Output

      • If the condition evaluates to true, data is sent to the true port.

      • If the condition evaluates to false, data is sent to the false

    hashtag
    Notes

    • Logical Groups: Conditions can be grouped using AND and OR for flexible logic handling.

    • Range Handling: Use rangeMin and rangeMax to check if a value is within a range.

    • Regex Support: Allows pattern matching for advanced validation.

    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    url

    string

    Fully qualified URI of the target resource (required).

    headers

    object

    JSON object containing request headers.

    body

    string / object

    Data sent as the request body for updating the resource.

    bodyBase64Encode

    boolean

    If enabled, encodes request body in Base64 format.

    hashtag
    Output Parameters

    Parameter
    Description

    body

    The response body from the external service.

    headers

    The response headers.

    request

    Request metadata.

    statusCode

    The HTTP status code of the response.

    hashtag
    Instructions

    1. Ensure API Endpoint Supports PATCH Requests

      • The url must be a valid API endpoint accepting PATCH requests.

    2. Set Necessary Headers

      • If authentication is required, pass headers (e.g., Authorization token).

    3. Provide Request Body

      • Use the body parameter to define the data that needs to be updated.

    4. Configure Response Encoding

      • Use utf8 (default) or other supported encodings.

    5. Review API Response

      • Check statusCode and body for success or failure messages.

    Input Parameters
    Parameter
    Type
    Required
    Description

    fileId

    string

    ✅

    The ID of the CSV file to be imported.

    filename

    string

    ❌

    The name of the CSV file.

    content

    string

    ❌

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The ID of the imported CSV file.

    hashtag
    Instructions

    1. Select a CSV File

      • Use the file picker to choose a CSV file for import.

      • Alternatively, specify the file ID if it's already stored.

    2. Define the Delimiter (Optional)

      • If the CSV file uses a delimiter other than a comma (,), specify it in the Delimiter field.

    3. Processing

      • The component will parse the CSV file and make it available for further processing.


    ServiceNow

    hashtag
    Setup the App administrator account

    App admin url: https://developer.servicenow.com/dev.do#!/homearrow-up-right

    Once the app admin account is created and verified you need to create an instance.

    It will take a minute or two or three or five to complete.

    Now your developer instance is ready and accessible: . Note that when creating a new account, your instance ID (dev180380 in this case) will be different.

    hashtag
    Setup Webhooks

    To configure webhooks in ServiceNow to receive notifications when a new record is created, follow these steps. This involves creating an Outbound REST Message, setting up a Business Rule to capture record creation, and configuring the webhook.

    hashtag
    Create an Outbound REST Message

    • Navigate to System Web Services > Outbound > REST Message.

    • Click on the New button to create a new REST Message.

    • Fill in the fields such as:

    hashtag
    Create a Business Rule

    • Navigate to the table for which you want to capture new record creation. For example, if it’s the Incident table, go to Incident > All.

    • Right-click on the form header and select Configure > Business Rules.

    • Alternatively, you can navigate to Activity Subscriptions -> Administration -> Business Rules.

    You need to be a user with admin permissions to perform this step.

    • In the Script section, add the following code. Please note that AppmixerNotifications must match the name of the Outbound REST Message specified in the previous step, and events should correspond to the event name defined in the Outbound REST Message.

    hashtag
    Debug

    To see messages triggered by the Business Rule go System Logs > System Log > All

    To see messages triggered by the sn_ws.RESTMessageV2 within the Business Rule, go to System Logs > Outbound HTTP Requests

    hashtag
    Setup API Key

    Follow steps on: https://www.servicenow.com/docs/bundle/zurich-platform-security/page/integrate/authentication/task/configure-api-key.html

    After that is done, you should have:

    1. Created Inbound Authentication Profile

    2. Created REST API Key

    3. Created REST API Access Policy

    Main requirements in the set up:

    • Inbound Authentication Profile

    The Auth Parameter should be set to Type: Auth Header (Parameter Name: x-sn-apikey)

    • REST API Access Policy

    1. All checkboxes except for Global and Apply to all versions should be checked

    2. The Inbound authentication profile table should have these two Authentication profiles:

      1. API Key

    The names of the authentication profiles can vary if you called them differently during their creation, the main point is that this REST API Access Policy should work with both API Key AND Basic Authentication otherwise you will receive error 401.

    Slack

    hashtag
    Register OAuth2 app

    Go to https://api.slack.com/appsarrow-up-right and create a new app.

    Name your application and select a workspace.

    hashtag
    Basic Information

    Then you receive your clientID, clientSecret and signingSecret.

    After that create an App-Level Token with the following scopes: authorizations:read. This token is used verify authorization of the user for incoming Events API requests from Slack.

    Copy and paste those values into the Backoffice.

    • clientID is the Client ID from the Slack app.

    • clientSecret is the Client Secret from the Slack app.

    hashtag
    OAuth & Permissions

    hashtag
    Redirect URL

    The next thing is adding the redirect URL and scopes.

    Example redirect URL: https://api.YOUR_SUBDOMAIN.appmixer.cloud/auth/slack/callback

    hashtag
    Bot Scopes

    In order to be able to send messages as bot to channels, you have to add these scopes in the OAuth & Permissions section, specifically in the Bot Token Scopes section.


    Scope
    Description

    hashtag
    User Scopes

    In order to be able to work with channels and groups as user, you have to add these scopes in the OAuth & Permissions section, specifically in the User Token Scopes section.

    In order to use the application accross workspaces you have to distribute it.

    hashtag
    Events API

    Some components (New Channel Message or New User) use Slack Events API (). In order to use this components in Appmixer, you have to register Appmixer's Slack URI in Slack first.

    Go to then choose your Appmixer app.

    Go to your app settings ()

    The Request URL has to point to your Appmixer backend server. The rest of the URL /plugins/appmixer/slack/events has to remain like this. Your Appmixer backend server has to be running before you enter the URL. Slack will immediately try to connect to that URL.

    Then you need to subscribe to these events:

    • messages.channels, message.groups for the New Channel Message component

    • team_join for the New User component

    hashtag

    Don't forget to hit Save Changes:

    You can now use the appmixer.slack.list.NewChannelMessageRT component in a flow.

    hashtag
    Slack app migration

    In Appmixer 4.2 the Slack module was upgraded. We did remove all the legacy API and switched to their newest API. For some time, it was possible to use the Appmixer Slack module with both legacy Slack apps and the new Slack apps. But the legacy apps are deprecated and will retire in August 2021 (). If you use the legacy Slack app, you either have to create a new Slack app or migrate the existing one.

    In order to migrate your Slack legacy app, go to Oauth & Permission section.

    Then scroll down to Scopes and hit the Update Scopes button.

    Ignore the first page, because that's all about scopes for bots.

    Scroll all the way down and hit continue. You get to a second page with user scopes.

    Select channels:read, channels:history, channels:write, groups:read, groups:write, groups:history, chat:write and users:read.

    Verify the scopes and migrate the app.

    And confirm. The Appmixer Slack module since version 4.2.1 is already updated and ready for the new Slack apps.

    Flows that use the SendPrivateChannelMessage component won't work. The component will appear unauthenticated. The reason is a different Oauth scope in the new Slack app version. In this case, the user has to authenticate the component again.

    Digest

    hashtag
    Overview

    The Digest Component collects incoming data entries and releases them as a batch based on a threshold, a schedule, or a manual trigger via a webhook. This component is useful for aggregating data over time and sending it at controlled intervals.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Input Ports

    Port
    Description

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Instructions

    1. Set a Threshold (Optional)

      • Define the threshold parameter to release data when a certain number of entries are reached.

    2. Schedule Batch Processing (Optional)

    hashtag
    Notes

    • Supports multiple trigger methods: Data is released either via count (threshold), time (schedule), or manually (webhook).

    • Flexible scheduling: Uses cron-like syntax for precise control over execution times.

    Archive

    hashtag
    Overview

    The Archive component allows you to create a ZIP or TAR archive from a set of files. You can also append files to an existing archive, provided it matches the specified format.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    hashtag
    Instructions

    1. Select Output Format:

      • Choose between zip or tar as the output format.

    2. Provide File Name:

    hashtag
    Use Cases

    • Batch File Compression: Combine multiple files into a single ZIP or TAR archive.

    • Incremental Archiving: Append files to an existing archive for ongoing data collection.

    • Data Backup & Export: Store or transfer multiple files efficiently as a single archive.


    Dynamic Webhook

    hashtag
    Overview

    The Dynamic Webhook component allows users to subscribe to a webhook URL, triggering the connector when a request is received at that URL. It can be used to listen for incoming HTTP requests and process their data in real time.

    hashtag
    Usage

    hashtag
    Features

    • Automatically generates a webhook URL upon activation.

    • Supports HTTP methods for subscribing (POST, PUT, GET, PATCH) and unsubscribing (DELETE, POST, PUT,

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Output Parameters

    Parameter
    Description

    hashtag
    Instructions

    1. Configure Webhook Subscription

      • Provide the onStartRequestUrl and onStartRequestMethod to define how the webhook should be registered.

      • Set necessary headers and request body for subscription if required.

    Join Each

    hashtag
    Overview

    The JoinEach Component is designed to work with the Each Component. It collects multiple incoming messages based on a specified count and outputs them as a single batch when all expected messages have arrived. If some messages do not arrive within a timeout period, it outputs the partial batch along with count information.

    hashtag
    Usage

    hashtag
    Input Ports

    Port
    Description

    hashtag
    Output Ports

    Port
    Description

    hashtag
    Output Data for out Port

    Field
    Description

    hashtag
    Output Data for timeout Port

    Field
    Description

    hashtag
    Instructions

    1. Set Up with Each Component

      • Ensure messages sent to in contain a correlationId matching the one from the Each component.

    2. Define Expected Count

    hashtag
    Notes

    • Works with Correlation IDs: Ensures messages from the same batch are correctly joined.

    • Timeout Handling: Prevents indefinite waiting if some messages fail to arrive.

    • Batch Processing: Useful for grouping messages into structured outputs for further processing.

    Delete

    hashtag
    Overview

    The HTTP DELETE component allows sending HTTP DELETE requests to external services, enabling users to remove resources via API calls. It provides response details, including body, headers, and status code.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Output Parameters

    Parameter
    Description

    hashtag
    Instructions

    1. Ensure API Endpoint Supports DELETE Requests

      • The url must be a valid API endpoint accepting DELETE requests.

    2. Set Necessary Headers

    POST

    hashtag
    Overview

    The HTTP POST Component sends HTTP POST requests to external services. It supports both raw body and form-data submissions, making it suitable for various API interactions.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Output Parameters

    Parameter
    Description

    hashtag
    Notes

    • Supports both raw and form-data body types.

    • form-data mode allows file uploads along with other input types.

    • Proper headers must be set for application/json

    PUT

    hashtag
    Overview

    The HTTP PUT Component sends HTTP PUT requests to external services. It is commonly used for updating or replacing resources via API calls.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Output Parameters

    Parameter
    Description

    hashtag
    Instructions

    1. Ensure API Endpoint Supports PUT Requests

      • The url must be a valid API endpoint accepting PUT requests.

    2. Set Necessary Headers

    hashtag
    Notes

    • PUT requests typically replace entire resources: Ensure that the provided data includes all necessary fields.

    • Proper headers must be set: Use Content-Type: application/json for JSON payloads.

    GET

    hashtag
    Overview

    The HTTP GET component allows sending HTTP GET requests to external services. It is useful for retrieving data from APIs and other web resources. The connector processes the request and returns the response details, including body, headers, and status code.

    hashtag
    Usage

    hashtag
    Input Parameters

    Parameter
    Type
    Description

    hashtag
    Output Parameters

    Parameter
    Description

    hashtag
    Instructions

    1. Ensure API Endpoint Supports GET Requests

      • The url must be a valid API endpoint accepting GET requests.

    2. Set Necessary Headers

    Add Rows

    Overview

    The AddRows component allows adding multiple rows to an existing dataset.

    Input Parameters

    Parameter
    Type
    Required
    Description

    dataset

    array

    Output Parameters

    Parameter
    Type
    Description

    Instructions

    1. Provide the Dataset:

      • Ensure the dataset is passed in the correct array format.

    2. Add Rows Data:


    Pinterest

    hashtag
    Pinterest – Connector Configuration

    hashtag
    Step 1: Create a Pinterest Business Account & Access Developer Portal

    Strava

    hashtag
    Strava – Connector Configuration

    hashtag
    Step 1: Create a Strava Account & Access API Settings

    Microsoft

    hashtag
    1. Register Oauth2 applications

    Follow the next link:

    http://localhost:1234
    https://[YOUR_API_BASE]/auth/docusign/callback
    https://api.appmixer.com/auth/docusign/callback

    %

    Modulo operation (divisibility check)

    empty

    Checks if the value is empty

    notEmpty

    Checks if the value is not empty

    contains

    Checks if a value contains a substring

    range

    Checks if a value falls within a specified range

    regex

    Matches a value against a regular expression

    port.

    %

    Checks if a number is divisible by another (modulo).

    empty

    Checks if a value is empty.

    notEmpty

    Checks if a value is not empty.

    contains

    Checks if a value contains another value.

    range

    Checks if a value falls within a specified range.

    regex

    Validates if a value matches a given regular expression.

    responseEncoding

    string

    Encoding format for the response (default: utf8). Supported values: ascii, utf8, utf16le, base64, latin1, binary, hex, null (binary mode).

    The content of the CSV file in raw string format.

    delimiter

    string

    ❌

    A character used to separate columns in the CSV file. Default is ,.

    dayMonth

    string

    Specifies on which days of the month the digest should run. Supports cron-like syntax.

    dayWeek

    string

    Specifies on which days of the week the digest should run. Supports cron-like syntax.

    timezone

    string

    Timezone for scheduling, defaults to GMT.

    outputType

    string

    Format of the output data. Options: first (first entry), array (all entries as an array), object (one entry at a time), file (CSV file).

    Configure minute, hour, dayMonth, and dayWeek to process batches at specific times.

  • Manual Trigger via Webhook (Optional)

    • Use the webhookUrl to release entries manually at any time.

  • Select Output Type

    • Choose how the collected data should be sent (first, array, object, or file).

  • Different output formats: Users can choose between receiving data as an array, a single entry, or a downloadable CSV file.

    threshold

    number

    Number of entries required to trigger output. If set, output is triggered when this count is reached.

    webhookUrl

    string

    A generated webhook URL that allows manual triggering of output.

    minute

    string

    Specifies at which minutes of the hour the digest should run. Supports cron-like syntax.

    hour

    string

    Specifies at which hours of the day the digest should run. Supports cron-like syntax.

    in

    Receives data entries for aggregation.

    out

    Emits the aggregated data based on the configured condition (threshold, schedule, or webhook trigger).

    GET
    ,
    PATCH
    ).
  • Can capture request data, headers, query parameters, and method details.

  • Allows configuring immediate response behavior.

  • onStopRequestUrl

    string

    URL to unsubscribe the webhook when the flow stops.

    onStopRequestMethod

    string

    HTTP method to use when unsubscribing. Options: DELETE, POST, PUT, GET, PATCH.

    onStopRequestHeaders

    object

    HTTP headers to send when unsubscribing.

    onStopRequestBody

    object

    Request body data to send when unsubscribing.

    immediateResponse

    boolean

    Whether to send an immediate response when a request is received. Defaults to true.

    Listen for Incoming Requests

    • The webhook will trigger whenever a request is sent to the generated URL.

    • Captured request details (method, headers, body, query) will be forwarded to the output port.

  • Configure Webhook Unsubscription

    • Provide onStopRequestUrl and onStopRequestMethod to define how to remove the webhook upon stopping.

    • Use runtime expressions to pass response data from the start request.

  • Immediate Response Option

    • Enable immediateResponse if you want to return an automatic response to incoming requests.

    • If disabled, use a Response component later in the flow.

  • onStartRequestUrl

    string

    URL to subscribe the webhook when the flow starts.

    onStartRequestMethod

    string

    HTTP method to use when subscribing. Options: POST, PUT, GET, PATCH.

    onStartRequestHeaders

    object

    HTTP headers to send when subscribing.

    onStartRequestBody

    object

    Request body data to send when subscribing.

    method

    The HTTP method of the incoming request.

    data

    The body of the incoming request.

    query

    Query parameters from the request URL.

    headers

    HTTP headers of the incoming request.

    • Send a message to the count port specifying how many messages the component should wait for.

  • Processing Messages

    • The component collects messages based on the correlationId.

    • When all expected messages arrive, they are sent as an array to the out port.

    • If not all messages arrive before the timeout, the timeout port emits the partial batch.

  • in

    Receives individual messages to be aggregated. Each message must contain a correlationId.

    count

    Specifies the total number of messages expected. Must be provided before aggregation begins.

    out

    Fires when all expected messages arrive, emitting an array of collected messages.

    timeout

    Fires when the timeout is reached before all expected messages arrive, providing the partial batch and counts.

    items

    The array of collected messages.

    items

    The array of messages that arrived before the timeout.

    count

    The number of expected messages.

    arrived

    The number of messages that actually arrived.

    responseEncoding

    string

    Encoding format for the response (default: utf8). Supported values: ascii, utf8, utf16le, base64, latin1, binary, hex, null (binary mode).

    If authentication is required, pass headers (e.g., Authorization token).

  • Provide Optional Request Body

    • Some APIs accept a request body in DELETE requests.

  • Configure Response Encoding

    • Use utf8 (default) or other supported encodings.

  • Review API Response

    • Check statusCode and body for success or failure messages.

  • url

    string

    Fully qualified URI of the target resource (required).

    headers

    object

    JSON object containing request headers.

    body

    string / object

    Optional data sent as the request body.

    bodyBase64Encode

    boolean

    If enabled, encodes request body in Base64 format.

    body

    The response body from the external service.

    headers

    The response headers.

    request

    Request metadata.

    statusCode

    The HTTP status code of the response.

    bodyFormData

    object

    Key-value pairs for form-data submissions.

    bodyBase64Encode

    boolean

    If enabled, encodes request body in Base64 format.

    responseEncoding

    string

    Encoding format for the response (default: utf8). Supported values: ascii, utf8, utf16le, base64, latin1, binary, hex, null.

    or
    multipart/form-data
    depending on the request type.

    url

    string

    Fully qualified URI of the target resource (required).

    headers

    object

    JSON object containing request headers.

    bodyType

    string

    Specifies the format of the request body. Options: raw, form-data.

    body

    string / object

    Request body content for raw mode.

    body

    The response body from the external service.

    headers

    The response headers.

    request

    Request metadata.

    statusCode

    The HTTP status code of the response.

    responseEncoding

    string

    Encoding format for the response (default: utf8). Supported values: ascii, utf8, utf16le, base64, latin1, binary, hex, null.

    If authentication is required, pass headers (e.g., Authorization token).

  • Provide Request Body

    • Use the body parameter to define the data being sent.

  • Configure Response Encoding

    • Use utf8 (default) or other supported encodings.

  • Review API Response

    • Check statusCode and body for success or failure messages.

  • url

    string

    Fully qualified URI of the target resource (required).

    headers

    object

    JSON object containing request headers.

    body

    string / object

    Data sent as the request body.

    bodyBase64Encode

    boolean

    If enabled, encodes request body in Base64 format.

    body

    The response body from the external service.

    headers

    The response headers.

    request

    Request metadata.

    statusCode

    The HTTP status code of the response.

    responseEncoding

    string

    Encoding format for the response (default: utf8). Supported values: ascii, utf8, utf16le, base64, latin1, binary, hex, null (binary mode).

    If authentication is required, pass headers (e.g., Authorization token).

  • Provide Query Parameters

    • Use the body parameter to define query parameters as a JSON object.

  • Configure Response Encoding

    • Use utf8 (default) or other supported encodings.

  • Review API Response

    • Check statusCode and body for success or failure messages.

  • url

    string

    Fully qualified URI of the target resource (required).

    headers

    object

    JSON object containing request headers.

    body

    object

    Query parameters as a JSON object of key/value pairs.

    bodyBase64Encode

    boolean

    If enabled, encodes request body in Base64 format.

    body

    The response body from the external service.

    headers

    The response headers.

    request

    Request metadata.

    statusCode

    The HTTP status code of the response.

    Provide multiple rows in an array where each object represents a row.

  • Process & Output:

    • The component adds the rows and outputs the updated dataset.

  • ✅

    The dataset to which rows will be added.

    rows

    array

    ✅

    An array of row objects to be added.

    dataset

    array

    The updated dataset with the new rows.

    authToken is the App-Level Token from the Slack app.
  • signingSecret is the Signing Secret from the Slack app (just under Client Secret).

  • chat:write

    Send messages as @BOT

    chat:write.customize

    Send messages as @BOT with a customized username and avatar

    chat:write.public

    Send messages to channels @BOT isn't a member of

    https://api.slack.com/events-apiarrow-up-right
    https://api.slack.com/appsarrow-up-right
    https://api.slack.com/apps/{your-app-id}/event-subscriptionsarrow-up-right
    https://api.slack.com/legacy/workspace-appsarrow-up-right
    Setting the redirect URL
    Activate Public Distribution
    Slack Event Subscription.
    Ignore bot scopes
    User scopes

    archiveFileID

    string

    ❌

    The ID of an existing archive file. If provided, new files will be appended to this archive.

  • Specify a name for the archive file, ensuring it includes the appropriate extension (.zip or .tar).

  • Add Files to Archive:

    • Upload or select files using their fileId.

    • If an archiveFileID is provided, new files will be appended to the existing archive.

  • Processing:

    • The component processes and creates the archive, returning the generated file’s fileId and fileName.

  • outputFormat

    string

    ✅

    The format of the archive file. Options: zip, tar.

    fileName

    string

    ✅

    The name of the output archive file, including the extension.

    files

    object

    ❌

    fileId

    string

    The unique ID of the newly created or updated archive file.

    fileName

    string

    The name of the archive file.

    List of files to be added to the archive. Each file is represented by its fileId.

    Name: e.g., AppmixerNotifications.
  • Endpoint: https://<YOUR_API_BASE>/plugins/appmixer/servicenow/events for example https://api.appmixer.com/plugins/appmixer/servicenow/events

  • Click Submit and then open the newly created REST Message.

  • Click on the HTTP Methods tab and create a new HTTP Method.

  • Fill in the details such as:

    • Name: e.g., events.

    • HTTP Method: POST.

    • Endpoint: Ensure this is filled with your webhook listener’s URL.

  • Optionally, add default HTTP Request Headers (e.g., Content-Type) and customize the Request Body or Query Parameters if needed.

  • Save the HTTP Method.

  • Click on the New button to create a new Business Rule.

    • Set the fields as follows:

    • Name: e.g., incident events.

    • Table: Select the appropriate table (e.g., Incident).

    • When: after, Insert, Update, Delete. This setting will trigger an event in Appmixer whenever a record is inserted, updated, or deleted in the table.

  • Under Advanced, check the box Advanced to open the script editor.

  • On-call subscription basic authentication

    https://dev180380.service-now.com/arrow-up-right
    Outbound REST
    Log Message Screenshot
    Log Message Screenshot
    Inbound Authentication Profile
    REST API Access Policy

    Create or upgrade to a Pinterest Business account at Pinterest Businessarrow-up-right

  • Navigate to the Pinterest Developers Portalarrow-up-right

  • Sign in with your Pinterest Business account credentials

  • ⚠️ Note: You need a Pinterest Business account to access the Pinterest API. Personal accounts cannot create apps.


    hashtag
    Step 2: Create Your App

    1. Create a new app:

      • Go to My Appsarrow-up-right in the developer portal

      • Click "Create app"

      • Fill in the application details:

        • App name (e.g., "My Pinterest Integration")

        • App description - Describe what your integration does

        • Website URL - Your application's website

    2. App Configuration:

      • App type: Choose between "Public" or "Internal"

      • Linked Business Account: Link to your Pinterest Business account


    hashtag
    Step 3: Configure OAuth Settings

    1. Navigate to App Settings:

      • In your app dashboard, go to "OAuth" or "Settings" section

      • Configure OAuth redirect URIs

    2. Set Redirect URIs:

      • Add your callback URL in the "Redirect URIs" field

      • For Appmixer, set the redirect URI to:

    Example:

    1. Configure Scopes:

      • Select the permissions your app needs:

        • read_public - Read public boards and pins

        • write_public - Create public boards and pins

        • read_secret - Read secret boards and pins (if authorized)

        • write_secret - Create secret boards and pins (if authorized)

        • read_users - Read user profile information

        • write_users - Update user profile information


    hashtag
    Step 4: Copy Your Credentials

    After configuring your app, you'll find your API credentials:

    • App ID (Client ID) - Your application's unique identifier

    • App secret (Client Secret) - Your application's secret key

    ⚠️ Important: Keep your App Secret secure and never expose it in client-side code!


    hashtag
    Step 5: App Review Process

    For Public Apps:

    1. Submit for Review:

      • Public apps require Pinterest review before going live

      • Provide detailed use case description

      • Include screenshots and flow documentation

      • Specify which scopes you need and why

    2. Review Requirements:

      • Your app must comply with Pinterest's API policies

      • Demonstrate legitimate use of requested permissions


    hashtag
    Step 6: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:pinterest.

    3. Add your clientId (App ID) and clientSecret (App Secret) keys with values.


    hashtag
    Step 7: Rate Limits

    Rate Limits:

    • Pinterest implements rate limiting per user and per app

    • Specific limits depend on your app's approval status and usage

    • Rate limit information is included in API response headers


    hashtag
    Important Notes

    ⚠️ Business Account Required:

    • Only Pinterest Business accounts can create and manage apps

    • Personal accounts cannot access the Pinterest API

    • Convert your personal account to business if needed

    ⚠️ Content Policy:

    • Pinterest has strict content policies and community guidelines

    • All programmatically created content must comply with these rules

    • Violations can result in API access suspension

    ⚠️ Token Management:

    • Access tokens have expiration times

    • Implement proper token refresh logic

    • Store tokens securely and never expose them

    ⚠️ Attribution:

    • Display appropriate Pinterest branding when required

    • Follow Pinterest's brand guidelines

    • Include proper attribution for Pinterest content


    hashtag
    Useful Links

    • Pinterest Developers Documentationarrow-up-right

    • API Referencearrow-up-right

    • OAuth Guidearrow-up-right


    Sign in to your Strava account at Stravaarrow-up-right

  • Navigate to Strava API Settingsarrow-up-right

  • You need an existing Strava athlete account to create API applications

  • ⚠️ Note: API applications are tied to your Strava athlete account.


    hashtag
    Step 2: Create Your API Application

    1. Create a new application:

      • Click "Create & Manage Your App"

      • Fill in the application details:

        • Application Name (e.g., "My Fitness Integration")

        • Category - Select the most appropriate category for your app

        • Club - Optional, select a club if applicable

        • Website - Your application's website URL

        • Application Description - Describe what your integration does

    2. Application Icon:

      • Upload an icon for your application (optional but recommended)

      • Supported formats: PNG, JPG (recommended size: 124x124 pixels)


    hashtag
    Step 3: Configure OAuth Settings

    1. Authorization Callback Domain:

      • Enter your callback domain in the "Authorization Callback Domain" field

      • For Appmixer, use your API domain without the full path:

    Example:

    1. OAuth Redirect URI:

      • Strava will construct the full callback URL

      • The complete redirect URI will be:

    Example:


    hashtag
    Step 4: Copy Your Credentials

    After creating your application, you'll see your API credentials:

    • Client ID - Your application's unique identifier

    • Client Secret - Your application's secret key

    ⚠️ Important: Keep your Client Secret secure and never expose it in client-side code!


    hashtag
    Step 5: Understand Strava Scopes

    Strava uses the following OAuth scopes:

    • read - Read public profile information

    • read_all - Read all profile information (including private activities)

    • profile:read_all - Read all profile information

    • profile:write - Update profile information

    • activity:read - Read public activities

    • activity:read_all - Read all activities (including private)

    • activity:write - Create and update activities

    ⚠️ Note: Strava has strict guidelines about data usage. Ensure you comply with their API Agreementarrow-up-right.


    hashtag
    Step 6: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:strava.

    3. Add your clientId and clientSecret keys with values.

    alt text
    alt text

    hashtag
    Step 7: Rate Limits

    Rate Limits:

    • Default: 100 requests per 15 minutes, 1000 requests per day

    • Higher limits: Available upon request for approved applications

    • Rate limit headers are included in API responses


    hashtag
    Step 8: Going Live & App Review

    For Public Applications:

    1. Submit for Review:

      • Applications requesting higher rate limits need approval

      • Provide detailed information about your use case

      • Include screenshots and documentation

    2. Compliance Requirements:

      • Follow Strava's

      • Implement proper data handling and privacy measures


    hashtag
    Useful Links

    • Strava Developers Documentationarrow-up-right

    • API Referencearrow-up-right

    • OAuth Guidearrow-up-right


    hashtag
    OneDrive file picker

    You need to register one more URL in order to use the OneDrive Javascript file picker:

    /plugins/appmixer/microsoft/onedrive/picker

    And select both of these options:

    And save the changes:

    The next step is creating clientId and clientSecret:

    Add new client secret

    Unfortunately, the secret has an expiration, you're going to have to create a new one in 2 years:

    Use the furthest date possible:

    You will get a new secret, copy the Value into the clipboard:

    This is the clientSecret, the Microsoft Secret ID is the Appmixer clientId. These secrets need to be added into the Backoffice:

    appmixer:microsofr

    And add new keys:

    The clientId is the _Application (client) ID f_rom the main page:

    Then go to the API permissions section:

    Choose Microsoft Graph:

    Delegated permissions:

    Type-in Files:

    And select these two:

    Then type-in offline and select this permission:

    The final set of permissions:

    hashtag
    2. Allowing Custom Tenant

    To enable custom tenant functionality for Microsoft connections, follow these steps:

    hashtag
    Step 1: Access Appmixer Admin

    Navigate to your Appmixer admin panel (back office) and go to Connector Configuration.

    hashtag
    Step 2: Locate Microsoft Connector

    • Find the "appmixer:microsoft" connector in the list

    • If it doesn't exist, add it by clicking the Add Configuration button

    • Click on "Show Configuration Values"

    hashtag
    Step 3: Add Tenant Configuration

    1. Click "Add Item" to create a new configuration entry

    1. Set the following values:

    • Key: microsoftTenant

    • Value: true

    1. Click Confirm to save the configuration

    Note: This configuration enables the tenant field in the Microsoft connection interface.

    hashtag
    Step 4: Connect with Custom Tenant

    1. Return to your flow and locate a Microsoft connector

    2. Click "Connect account"

    3. You should now see a "Tenant" field in the connection form

    1. Enter your Tenant ID in the field

    hashtag
    Tenant Value Options

    • Custom Tenant ID: Enter your organization's specific tenant identifier

    • Default Behavior: Enter common to use Microsoft's default multi-tenant behavior

    💡 Tip: If you're unsure about your Tenant ID, you can find it in the Azure Active Directory overview page in the Azure portal.

    hashtag
    Disable Custom Tenant

    • Simply remove the "microsoftTenant" from the Configuration Values or set its value to false

    + New registration

    Apigee

    The Apigee connector allows you block requests from specific IP addresses. To make the integration work, you need to

    1. register Google OAuth2 application

    2. perform setup in Apigee instance

    hashtag
    Google OAuth2 application registration

    hashtag
    Application verification

    In 2020 Google introduced Application verification If an app uses Google APIs to access Google users’ data. This makes it impossible to use the Appmixer Google modules in production without the verification process. Such a verification process has to be done by you.

    Most of the Google modules need what Google marks as Sensitive or Restricted Scope in order to work. For example, the Gmail module needs scope to create a new email and to get new emails.

    hashtag
    Required scopes

    • www.googleapis.com/auth/cloud-platform (sensitive scope)

    hashtag
    Required user roles

    The connector requires the following IAM permission. This is the end-user permission needed to use the connector:

    • apigee.keyvaluemapentries.get

    • apigee.keyvaluemapentries.create

    • apigee.keyvaluemapentries.update

    hashtag
    Register Oauth2 app

    Go to the Google developer console at and create a new project.

    Next, enable the required APIs for your project. Go to you project APIs & Services > Enable APIs & service and click on the Enable APIs and Services button. Enable the following APIs:

    • Apigee API: apigee.googleapis.com

    • Api HUB API: apihub.googleapis.com

    • Service Networking: servicenetworking.googleapis.com

    source:

    hashtag
    OAuth consent screen

    The next step is the OAuth consent screen.

    User Type - Internal vs External. The Internal user type allows you to use the Google modules without the app verification process mentioned at the beginning of this page. However, the modules will work only for accounts within your organization.

    We are going to choose External for the purpose of this tutorial.

    On the next page, leave the scopes empty.

    You can add test users, but you can do this later. Only users added as test users will be able to authenticate!

    Here is the Oauth consent screen configured. The app is in the testing mode, it is external (for users outside your organization). No more than 100 accounts (user cap) can be used with this application.

    hashtag
    Client ID and Client Secret

    We need a client ID and a client secret.

    Choose the Web application type and give it a name and authorize redirect URI.

    For the purpose of this tutorial, we are going to use localhost:2200 which is the default port for the Appmixer API when running on localhost. If you are creating an Oauth application for your production/QA, the URI of your server will be here. The suffix /auth/google/callback will remain there.

    You will get your Client ID and Client Secret.

    They have to be inserted into the Appmixer. You can use the to do that.

    hashtag
    Custom callback URL

    By default the callback URL passed to Google is in the form of <your-api-url>/auth/apigee/callback. However in some cases, you could need to pass a different callback URL. You can do this by inserting a callbackUrl value in the service configuration:

    hashtag
    Domain verification

    In order to use Google API Webhooks, you have to verify your domain ownership. More about domain verification can be found . If you use the Appmixer Self-Managed package and you run Appmixer on your own servers using your custom domain, you can use records to verify your domain ownership. Otherwise, if you are an Appmixer Hosted customer, you can use the to verify your Appmixer tenant domain (api.YOUR_TENANT.appmixer.cloud) at Google.

    circle-info

    When you use a Google Webhook component without a verified domain, you will receive the Unauthorized WebHook callback channel error.

    First, open the Google developers console and your Appmixer project and follow the instructions in the next picture.

    Add your Appmixer tenant API URL (api.YOUR_TENANT.appmixer.cloud) and continue to verify the domain ownership. Click 'Take me there' and then 'Add a property'.

    Again, use api.YOUR_TENANT.appmixer.cloud. Then download the HTML verification file.

    After you download your HTML verification file, upload it via the Appmixer Backoffice interface to the Public Files section on the left. When you are done you should see your file listed:

    Click the 'Verify' button to finish the verification process.

    Now, you can go back to the developer console and add the api.YOUR_TENANT.appmixer.cloud domain once more. But this time, because it's already verified, it will appear in the list of your domains.

    The new domain has to be added to the OAuth consent screen as well.

    hashtag
    Apigee setup

    hashtag
    Blocking IP Shared Flow Installation Guide

    Shared flows in Apigee allow you to create reusable policies that can be applied across multiple API proxies. Blocking IP Shared Flow is a shared flow that blocks requests from specific IP addresses.

    To install the Blocking IP Shared Flow and apply the Shared flow in any Proxy API, follow these steps:

    Get the bundle:

    Upload bundle Go to Apigee and navigate to the Shared Flows section, then click on the Upload Bundle icon to upload a new shared flow bundle.

    Deploy the shared flow

    Once deployed, go to you API proxy and add the shared flow to the preflow of the proxy endpoint.

    • API Proxy > Open your proxy > DEVELOP

    • Navigate to Policies and click on the plus icon to add a policy.

    • Select the Flow Callout

    To apply the policy, go to Proxy Endpoints and select the PreFlow tab.

    Click on the plus icon to add the policy step.

    Select the policy you just created: FC-blocking-ip-shared-flow

    • Save the changes, deploy the API proxy and you are done.

    hashtag
    Configure KVM storage

    The Blocking IP Shared Flow uses the Apigee Key Value Map (KVM) to store the blocked IP addresses.

    to create a KVM, follow these steps:

    • Go to Management > Environments > {env} > Key Value Maps

    • click on the Create Key Value Map button

    • name the KVM as apigee-blocked-ips

    Figma

    hashtag
    Figma – Connector Configuration

    hashtag
    Step 1: Access Figma & Developer Platform

    • Sign in to your Figma account at

    • Navigate to the

    • You need a Figma account to create applications (free account works)

    ⚠️ Note: Some API features require a Figma Professional or Organization plan.


    hashtag
    Step 2: Create Your Application

    1. Access Developer Settings:

      • Go to Account Settings → Connected apps

      • Or visit: https://www.figma.com/developers/apps


    hashtag
    Step 3: Configure OAuth Settings

    1. OAuth Configuration:

      • In your app settings, configure OAuth details

      • Set your callback URL for OAuth flow

    Example:

    1. OAuth Scopes:

      • Figma OAuth provides access to:

        • File access - Read and write files


    hashtag
    Step 4: Copy Your OAuth Credentials

    After creating your application, you'll find:

    • Client ID - Your OAuth application identifier

    • Client Secret - Your OAuth application secret

    ⚠️ Important: Keep your Client Secret secure and never expose it in client-side code!


    hashtag
    Step 5: Personal Access Token (Alternative)

    For server-to-server integrations, you can use personal access tokens:

    1. Generate Personal Access Token:

      • Go to Account Settings → Personal access tokens

      • Click "Create new token"


    hashtag
    Step 6: Webhook Configuration (Optional)

    Figma supports webhooks for real-time file updates:

    1. Create Webhook:

      • Use the

      • POST to https://api.figma.com/v2/webhooks


    hashtag
    Step 7: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:figma.

    3. Add your clientId and clientSecret keys with values from Figma.


    hashtag
    Step 8: Rate Limits

    Rate Limits:

    • Personal tokens: 1000 requests per hour

    • OAuth apps: 1000 requests per hour per user

    • Burst limit: 120 requests per minute


    hashtag
    Important Notes

    ⚠️ File Access:

    • OAuth apps can only access files the user has permission to view

    • Team files require appropriate team membership

    • Private files require explicit sharing

    ⚠️ API Limitations:

    • Read-only API (cannot modify file content via API)

    • Comments and dev resources can be modified

    • File exports have size and complexity limits

    ⚠️ Webhook Delivery:

    • Webhooks may be delayed during high traffic

    • Implement proper retry logic for failed deliveries

    • Validate webhook signatures for security


    hashtag
    Useful Links


    Linear

    hashtag
    Linear – Connector Configuration

    hashtag
    Step 1: Access Linear & Create Developer Account

    • Sign in to your Linear workspace at

    • You need admin permissions in your Linear workspace to create applications

    • Navigate to your workspace settings

    ⚠️ Note: Only workspace administrators can create OAuth applications in Linear.


    hashtag
    Step 2: Create Your OAuth Application

    1. Navigate to API Settings:

      • Go to Settings → Account → API

      • Or visit: https://linear.app/[your-workspace]/settings/api


    hashtag
    Step 3: Configure OAuth Settings

    1. Set Callback URLs:

      • Add your OAuth callback URL in the "Callback URLs" field

      • For Appmixer, set the redirect URI to:

    Example:

    1. Configure Scopes:

      • Linear uses specific scopes to control access:

        • read - Read access to issues, projects, teams, and users


    hashtag
    Step 4: Copy Your OAuth Credentials

    After creating your application, you'll receive:

    • Client ID - Your OAuth application identifier

    • Client Secret - Your OAuth application secret (keep this secure!)

    ⚠️ Important: Store your Client Secret securely and never expose it in client-side code!


    hashtag
    Step 5: Webhook Configuration (Optional)

    Linear supports webhooks for real-time updates:

    1. Create Webhook:

      • In API settings, go to "Webhooks" section

      • Click "Create webhook"


    hashtag
    Step 6: Personal API Key (Alternative)

    For server-to-server integrations, you can use personal API keys:

    1. Generate Personal API Key:

      • Go to Settings → Account → API

      • Click "Create key" under Personal API keys

    ⚠️ Note: Personal API keys have the same permissions as your user account.


    hashtag
    Step 7: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:linear.

    3. Add your clientId and clientSecret keys with values from Linear.


    1. Test OAuth Flow:

      • Linear authorization URL: https://linear.app/oauth/authorize

      • Required parameters: client_id, redirect_uri


    hashtag
    Step 8: GraphQL API Overview

    Linear uses GraphQL exclusively:

    Common Queries:

    • Issues: issues, issue

    • Teams: teams, team

    Common Mutations:

    • Create Issue: issueCreate

    • Update Issue: issueUpdate

    • Create Comment: commentCreate

    Example Issue Query:


    hashtag
    Step 9: Rate Limits

    Rate Limits:

    • Complexity-based limiting: Each query has a complexity score

    • Maximum complexity: 1000 points per query

    • Rate limit: 2000 requests per hour per access token


    hashtag
    Useful Links


    Square

    hashtag
    Square – Connector Configuration

    hashtag
    Step 1: Create a Square Developer Account & Access Developer Portal

    • Sign in to your Square account at

    • Navigate to the

    • Create a developer account if you don't have one already

    ⚠️ Note: You need a Square business account to access production features. Sandbox is available for development.


    hashtag
    Step 2: Create Your Application

    1. Create a new application:

      • Go to

      • Click "Create your first application" or "+" to add a new app


    hashtag
    Step 3: Configure OAuth Settings

    1. Navigate to OAuth Tab:

      • In your application dashboard, click on "OAuth"

      • Configure OAuth settings for secure authentication

    Example:

    1. Configure Permissions:

      • Select the Square API permissions your app needs:

        • PAYMENTS_READ - Read payment information


    hashtag
    Step 4: Copy Your Credentials

    After configuring your application, you'll find your API credentials:

    • Application ID - Your OAuth application identifier

    • Application Secret - Your OAuth application secret

    • Access Token - For server-to-server API calls (if using personal access token)

    ⚠️ Important: Keep your Application Secret secure and never expose it in client-side code!


    hashtag
    Step 5: Webhook Configuration (Optional)

    If your integration needs real-time updates:

    1. Navigate to Webhooks:

      • In your application dashboard, click on "Webhooks"

      • Click "Add Endpoint"


    hashtag
    Step 6: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:square.

    3. Add your clientId (Application ID) and clientSecret (Application Secret) keys with values.


    1. Test OAuth Flow:

      • Use your Application ID to initiate OAuth authorization

      • Square authorization URL: https://connect.squareup.com/oauth2/authorize


    hashtag
    Step 7: Rate Limits

    Rate Limits:

    • API calls: 10 requests per second per access token

    • Webhooks: No specific rate limits, but implement proper handling

    • Payment processing: Additional limits may apply based on your Square account


    hashtag
    Useful Links


    Google

    hashtag
    Application verification

    In 2020 Google introduced Application verification If an app uses Google APIs to access Google users’ data. This makes it impossible to use the Appmixer Google modules in production without the verification process. Such a verification process has to be done by you.

    Most of the Google modules need what Google marks as Sensitive or Restricted Scope in order to work. For example, the Gmail module needs https://www.googleapis.com/auth/gmail.composearrow-up-right scope to create a new email and https://www.googleapis.com/auth/gmail.readonlyarrow-up-right to get new emails.

    Originally, the Gmail module was the only one affected by this new Google policy. But new scopes are being marked as restricted. Later, they shut down the older Spreadsheets API, and with the new API, the only way to get a list of users Spreadsheets is to use the Drive API and restricted scope .

    The last (up to now) module affected by this policy is the Drive module.

    hashtag
    Register Oauth2 app

    Go to the Google developer console at and create a new project.

    When the project is created, add some APIs.

    Add the Gmail API.

    The Google Sheets API.

    The Google Drive API.

    The Google Calendar API.

    The Analytics API.

    The YouTube API.

    hashtag
    OAuth consent screen

    The next step is the OAuth consent screen.

    User Type - Internal vs External. The Internal user type allows you to use the Google modules without the app verification process mentioned at the beginning of this page. However, the modules will work only for accounts within your organization.

    We are going to choose External for the purpose of this tutorial.

    On the next page, leave the scopes empty.

    You can add test users, but you can do this later. Only users added as test users will be able to authenticate!

    Here is the Oauth consent screen configured. The app is in the testing mode, it is external (for users outside your organization). No more than 100 accounts (user cap) can be used with this application.

    hashtag
    Client ID and Client Secret

    We need a client ID and a client secret.

    Choose the Web application type and give it a name and authorize redirect URI.

    For the purpose of this tutorial, we are going to use localhost:2200 which is the default port for the Appmixer API when running on localhost. If you are creating an Oauth application for your production/QA, the URI of your server will be here. The suffix /auth/google/callback will remain there.

    You will get your Client ID and Client Secret.

    They have to be inserted into the Appmixer. You can use the to do that.

    hashtag
    Custom callback URL

    By default the callback URL passed to Google is in the form of <your-api-url>/auth/appmixer:google/callback. However in some cases, you could need to pass a different callback URL. You can do this by inserting a callbackUrl value in the service configuration:

    hashtag
    Domain verification

    In order to use Google API Webhooks, you have to verify your domain ownership. More about domain verification can be found . If you use the Appmixer Self-Managed package and you run Appmixer on your own servers using your custom domain, you can use records to verify your domain ownership. Otherwise, if you are an Appmixer Hosted customer, you can use the to verify your Appmixer tenant domain (api.YOUR_TENANT.appmixer.cloud) at Google.

    circle-info

    When you use a Google Webhook component without a verified domain, you will receive the Unauthorized WebHook callback channel error.

    First, open the Google developers console and your Appmixer project and follow the instructions in the next picture.

    Add your Appmixer tenant API URL (api.YOUR_TENANT.appmixer.cloud) and continue to verify the domain ownership. Click 'Take me there' and then 'Add a property'.

    Again, use api.YOUR_TENANT.appmixer.cloud. Then download the HTML verification file.

    After you download your HTML verification file, upload it via the Appmixer Backoffice interface to the Public Files section on the left. When you are done you should see your file listed:

    Click the 'Verify' button to finish the verification process.

    Now, you can go back to the developer console and add the api.YOUR_TENANT.appmixer.cloud domain once more. But this time, because it's already verified, it will appear in the list of your domains.

    The new domain has to be added to the OAuth consent screen as well.

    Intercom

    hashtag
    Intercom – Connector Configuration

    hashtag
    Step 1: Create a Developer Account & Access Developer Hub

    Get Row

    Description: The GetRow component finds the first row that matches the provided filter and returns the entire row.

    hashtag
    Input Parameters

    Parameter
    Type
    Required
    Description
    (function executeRule(current, previous /*null when async*/) {
    
        function serializeGlideRecordToJSON(gr) {
            const obj = {};
            const fields = gr.getFields();
    
            for (let i = 0; i < fields.size(); i++) {
                const field = fields.get(i);
                const fieldName = field.getName();
    
                // skipping sys_id and other sensitive fields if necessary
                if (fieldName !== 'sys_id' && fieldName !== 'sys_updated_on' && fieldName !== 'sys_created_on') {
                    obj[fieldName] = gr.getValue(fieldName);
                }
            }
    
            return obj;
        }
    
        const operation = current.operation();
        
        // Uncomment this line for tracing
        // messages can be seen in System Logs > System Log > All
        //gs.info("Webhook Rule Fired for " + gs.getProperty('instance_name'));
    
        const instance = gs.getProperty('instance_name');
        const tableName = current.getTableName();
        
        // Make sure this matches the name of your Outbound REST Message
        // `AppmixerNotifications` is the name of the Outbound REST Message
        // `events` is the name of the HTTP method within the `AppmixerNotifications` REST Message mapped to the Appmixer plugin url  
        const rq = new sn_ws.RESTMessageV2('AppmixerNotifications', 'events');
        const requestBody = {
            'type': instance + '.' + tableName + '.' + operation,
            'data': serializeGlideRecordToJSON(current)
        };
    
        rq.setRequestBody(JSON.stringify(requestBody));
        rq.execute();
    
    })(current, previous);    
    https://[YOUR_API_BASE]/auth/pinterest/callback
    https://api.appmixer.com/auth/pinterest/callback
    [YOUR_API_DOMAIN]
    api.appmixer.com
    https://[YOUR_API_DOMAIN]/auth/strava/callback
    https://api.appmixer.com/auth/strava/callback

    withHeaders

    boolean

    ✅

    Set to true if the first row represents column names (CSV header) and should be used to identify columns.

    hashtag
    Output Parameters

    Parameter
    Type
    Description

    fileId

    string

    The ID of the processed CSV file.

    row

    object

    The full row that matches the filter.

    hashtag
    Instructions

    1. Use Column Names (Optional):

      • If the first row of the CSV file contains column names, enable the Use Column Names toggle.

      • Otherwise, columns will be identified by their index.

    2. Processing:

      • The component scans the CSV file for a row that matches the given filter.

      • Once found, it returns the entire row as an object.


    Platform - Select "Web" for most integrations
    App Purpose: Specify how you'll use Pinterest data
    Show how user data will be handled responsibly
    Rate Limitsarrow-up-right
    Pinterest Businessarrow-up-right
    Community Guidelinesarrow-up-right
    Brand Guidelinesarrow-up-right
    alt text
    alt text
    apigee.environments.list (Optional. Used to display a list of Apigee environments, allowing the user to easily select the desired environment in the Designer.)
  • apigee.keyvaluemaps.create (Optional. If this permission is not granted, you will need to manually create a Key Value Map (KVM) in Apigee; see the KVM storage section for instructions. If the permission is granted, the connector will automatically create the KVM.)

  • Compute Engine: compute.googleapis.com
  • Cloud Key Management Service (KMS): cloudkms.googleapis.com

  • Enter any name and display name, for example FC-blocking-ip-shared-flow
  • Select the shared flow deplyed in the previous step: blocking-ip-shared-flow

  • hit Create

  • https://www.googleapis.com/auth/gmail.composearrow-up-right
    https://www.googleapis.com/auth/gmail.readonlyarrow-up-right
    https://console.developers.google.com/arrow-up-right
    Step 1: Enable required APIsarrow-up-right
    Backofficearrow-up-right
    herearrow-up-right
    CNAMEarrow-up-right
    HTML file methodarrow-up-right
    file-archive
    4KB
    blocking-ip-shared-flow.zip
    archive
    arrow-up-right-from-squareOpen
    Developer Console
    New Project
    Creating appmixer:apigee service configuration
    Setting clientId and clientSecret
    Setting custom calback URL
    Domain verification
    Download HTML verification file
    Google verification file uploaded via Backoffice
    upload bundle
    deploy
    deploy
    create
    add policy step
    add policy
    create KVM
    Business Rule
    Display Strava attribution where required
    API Agreementarrow-up-right
    Webhook Documentationarrow-up-right
    Rate Limitsarrow-up-right
    API Agreementarrow-up-right
    https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBladeportal.azure.comchevron-right
    Azure portal

    Create New App:

    • Click "Create new app"

    • Fill in the application details:

      • App name (e.g., "Appmixer Design Integration")

      • App description - Describe your integration's purpose

      • App website - Your organization's website (optional)

    Set Callback URL:
    • Add your OAuth redirect URI in the "Callback URL" field

    • For Appmixer, set the redirect URI to:

    Team access - Access team information

  • Webhook access - Register and manage webhooks

  • Give it a descriptive name

  • Select appropriate scopes:

    • File content - Read file structure and content

    • File comments - Read and write comments

    • File dev resources - Access dev mode resources

  • Token Security:

    • Copy the token immediately (it won't be shown again)

    • Store securely and treat like a password

    • Tokens inherit your account permissions

  • Webhook Events:

    • FILE_UPDATE - File content changes

    • FILE_DELETE - File deletion

    • FILE_VERSION_UPDATE - New version created

    • LIBRARY_PUBLISH - Library component published

  • Webhook Payload Example:

  • File access: Additional limits on large files
    Plugin Developmentarrow-up-right
  • Community Forumarrow-up-right

  • Rate Limitsarrow-up-right

  • Figmaarrow-up-right
    Figma Developer Platformarrow-up-right
    Webhooks APIarrow-up-right
    Figma API Documentationarrow-up-right
    OAuth Documentationarrow-up-right
    Webhooks Guidearrow-up-right
    alt text
    alt text

    Create New Application:

    • Click "Create new" under OAuth applications

    • Fill in the application details:

      • Application name (e.g., "Appmixer Integration")

      • Description - Brief description of your integration

      • Website URL - Your organization's website

      • Callback URLs - OAuth redirect endpoints

    write - Write access to create and update issues and comments

  • admin - Administrative access (use with caution)

  • Application Details:

    • Application name: Your integration name

    • Description: Purpose of your integration

    • Website: Your application or company website

  • Configure Webhook Settings:
    • URL: Your endpoint to receive webhook notifications

    • Label: Descriptive name for the webhook

    • Secret: Optional signing secret for verification

  • Select Resources:

    • Choose which resources trigger webhooks:

      • Issue - Issue creation, updates, deletion

      • Comment - Comment creation and updates

      • Project - Project changes

      • ProjectUpdate - Project status updates

  • Add a descriptive label

  • Copy the generated key immediately (it won't be shown again)

  • ,
    response_type=code
    ,
    scope
  • API Testing:

    • Linear GraphQL API endpoint: https://api.linear.app/graphql

    • Include Authorization: Bearer <access_token> header

    • Test with a simple query like fetching the viewer:

  • Projects: projects, project
  • Users: users, user

  • Burst limit: 120 requests per minute
    Webhook Guidearrow-up-right
  • Rate Limitingarrow-up-right

  • GraphQL Best Practicesarrow-up-right

  • Lineararrow-up-right
    Linear API Documentationarrow-up-right
    GraphQL API Referencearrow-up-right
    OAuth Documentationarrow-up-right
    alt text

    Fill in the application details:

    • Application Name (e.g., "My Payment Integration")

    • Application Description - Describe your integration's purpose

  • Choose Environment:

    • Sandbox - For development and testing

    • Production - For live transactions with real money

  • Set Redirect URIs:
    • Add your callback URL in the "Redirect URL" field

    • For Appmixer, set the redirect URI to:

    PAYMENTS_WRITE - Process payments

  • ORDERS_READ - Read order information

  • ORDERS_WRITE - Create and update orders

  • CUSTOMERS_READ - Read customer profiles

  • CUSTOMERS_WRITE - Create and update customers

  • INVENTORY_READ - Read inventory information

  • ITEMS_READ - Read catalog items

  • Configure Webhook Settings:
    • Notification URL: Your endpoint to receive webhook notifications

    • Events: Select events you want to subscribe to:

      • payment.created

      • payment.updated

      • order.created

      • order.updated

      • customer.created

      • customer.updated

  • Webhook Security:

    • Square signs webhook requests with a signature

    • Use the provided webhook signature key to verify authenticity

  • Required parameters: client_id, redirect_uri, response_type=code, scope

  • API Testing:

    • Square API base URLs:

      • Sandbox: https://connect.squareupsandbox.com/

      • Production: https://connect.squareup.com/

    • Include Authorization: Bearer <access_token> header in requests

    • Test with endpoints like /v2/locations to verify authentication

  • Webhook Documentationarrow-up-right
  • Rate Limitsarrow-up-right

  • Sandbox Testingarrow-up-right

  • Squarearrow-up-right
    Square Developer Portalarrow-up-right
    Developer Dashboardarrow-up-right
    Square Developer Documentationarrow-up-right
    API Referencearrow-up-right
    OAuth Guidearrow-up-right
    alt text
    https://[YOUR_API_BASE]/auth/figma/callback
    https://api.appmixer.com/auth/figma/callback
    {
      "event_type": "FILE_UPDATE",
      "file_key": "ABC123",
      "timestamp": "2023-01-01T12:00:00Z"
    }
    https://[YOUR_API_BASE]/auth/linear/callback
    https://api.appmixer.com/auth/linear/callback
    {
      viewer {
        id
        name
        email
      }
    }
    {
      issues(first: 10) {
        nodes {
          id
          title
          description
          state {
            name
          }
          assignee {
            name
          }
        }
      }
    }
    https://[YOUR_API_BASE]/auth/square/callback
    https://api.appmixer.com/auth/square/callback

    Sign in to your Intercom account at Intercomarrow-up-right

  • Navigate to the Intercom Developer Hubarrow-up-right

  • Go to Your Apps section in the Developer Hub

  • ⚠️ Note: You need an existing Intercom workspace to create developer apps.


    hashtag
    Step 2: Create Your App

    1. Create a new app:

      • Click "New app" or "Create app"

      • Provide an App name (e.g., "My Integration")

      • Add an App description explaining what your integration does

      • Select your Workspace from the dropdown

    2. App Configuration:

      • Choose "Internal integration" for private use within your workspace

      • Or choose "Public app" if you plan to distribute it publicly


    hashtag
    Step 3: Configure OAuth Settings

    1. Navigate to Authentication:

      • In your app dashboard, go to the "Authentication" section

      • Select "OAuth" as the authentication method

    2. Set up OAuth Configuration:

      • Redirect URLs: Add your callback URL

      • Scopes: Select the permissions your app needs:

        • read_conversations

    👉 For Appmixer, set the redirect URI to:

    Example:


    hashtag
    Step 4: Copy Your Credentials

    After configuring OAuth, you'll find your credentials in the Authentication section:

    • Client ID - Found in the OAuth section

    • Client Secret - Found in the OAuth section

    ⚠️ Important: Keep your Client Secret secure and never expose it in client-side code!


    hashtag
    Step 5: Configure Webhooks (Optional)

    If your integration needs real-time updates:

    1. Go to Webhooks section:

      • Navigate to "Webhooks" in your app dashboard

      • Click "Create webhook"

    2. Webhook Configuration:

      • Webhook URL: Your endpoint to receive webhook notifications

      • Topics: Select events you want to subscribe to:

        • conversation.created

    3. Webhook Security:

      • Note the Webhook Secret for verifying webhook signatures

      • Use this to validate that webhooks are coming from Intercom


    hashtag
    Step 6: Connector Configuration

    1. Go to the Appmixer BackOffice -> Configuration.

    2. Add new configuration: acme:intercom.

    3. Add your clientId and clientSecret keys with values.

    blankImage
    blankImage

    1. Install your app:

      • In the app dashboard, click "Install app"

      • This will install the app to your selected workspace

    2. Generate Access Token (for testing):

      • Go to "Configure" -> "Authentication"

      • Generate a test access token if needed for development

    3. API Testing:

      • Use the generated credentials to test API calls

      • Intercom API base URL: https://api.intercom.io/


    hashtag
    Step 7: Going Live

    When ready for production:

    1. App Review (for public apps):

      • Submit your app for Intercom's review process

      • Provide detailed information about your app's functionality

      • Include privacy policy and terms of service links

    2. App Store Listing (optional):

      • If approved, your app can be listed in the Intercom App Store

      • Configure app store listing with screenshots and descriptions


    hashtag
    Important Notes

    ⚠️ Rate Limits:

    • Intercom has rate limits based on your plan

    • Standard: 1,000 requests per minute

    • See Intercom Rate Limitsarrow-up-right for details

    ⚠️ API Versions:

    • Intercom uses API versioning via headers

    • Always specify the API version: Intercom-Version: 2.10

    ⚠️ Scopes:

    • Request only the minimum scopes needed for your integration

    • Users will see all requested permissions during OAuth flow


    hashtag
    Useful Links

    • Intercom Developer Documentationarrow-up-right

    • API Referencearrow-up-right

    • OAuth Guidearrow-up-right


    https://www.googleapis.com/auth/drive.metadata.readonlyarrow-up-right
    https://console.developers.google.com/arrow-up-right
    Backofficearrow-up-right
    herearrow-up-right
    CNAMEarrow-up-right
    HTML file methodarrow-up-right
    Developer Console
    New Project
    Creating appmixer:google service configuration
    Setting clientId and clientSecret
    Setting a custom callback URL for Google Auth
    Domain verification
    Download HTML verification file
    Google verification file uploaded via Backoffice
    https://[YOUR_API_BASE]/auth/intercom/callback
    https://api.appmixer.com/auth/intercom/callback
    - Read conversations and messages
  • write_conversations - Create and update conversations

  • read_contacts - Read contact information

  • write_contacts - Create and update contacts

  • read_teams - Read team information

  • And other scopes as needed for your integration

  • conversation.updated

  • contact.created

  • contact.updated

  • And others as needed

  • Include Authorization: Bearer <access_token> header in requests
    Webhook Documentationarrow-up-right
    Rate Limitsarrow-up-right