Articles in this section

Publish or unpublish templates and integration apps

Are you an integrator.io power user who's solved a problem that others might benefit from? Or are you considering integrator.io as more than an app-to-app data syncing tool, as a flexible iPaaS for business automation purposes? Celigo invites integration developers to create, distribute, and support their own products through the integrator.io platform.

The Celigo integrator.io platform provides a simple and easy way to create prebuilt integration templates and integration apps, and we’re looking to join forces with the best integration developers who want to create, distribute, and support their own products.

What’s new

The Integration App Framework (IAF 2.0) enables developers to control the components, form logic, and licensing of an Integration App directly in the platform, and also make use of JavaScript and integrator.io API calls.

How to get started

  1. Sign up for an integrator.io account.
  2. Contact your Celigo account executive or partner manager to join the 3rd Party developer program.
  3. Once accepted, your account will be permitted to see the additional Resources menu options needed for publishing: Templates and Integration apps.
  4. Optionally, create your API Tokens if you plan to do additional work through the REST API.

How to create and publish templates and integration apps

Step 1: Create the integration in your integrator.io account

This process is the same as creating any integration in your integrator.io account, by creating flows for the business use cases that you would like to package in your integration, as demonstrated below. The flows also include any exports, imports, mappings, JavaScript hooks for business logic, and so forth that you would like to distribute with your App.

Step 2: Create settings for your integration

You can add settings to your integration to ask the customer for information.

You will then be able to access the selected values throughout the integration to make flow decisions at runtime.

Step 3: Publish your integration

To publish an integration app, follow the steps below:

  1. Select Resources > Integration apps > Create Integration app.
  2. Fill in the panel:
    1. Name and Description
    2. Applications: multi-select the app(s) this integration app connects to (e.g., Amazon Seller Central, Microsoft Dynamics 365 Business Central)
    3. Source integration: the existing built integration this app is based on
    4. Contact emails: comma-separated list
    5. Website URL
    6. Trials section (optional trial settings)
  3. Save.

Or, to publish a template, complete the following the steps below:

  1. Download the integration as a .zip file.
  2. Select Resources > Templates > Create template.
  3. Describe the new template and upload it.
  4. In your new template listing, enable the Published setting.

Once you save, your integration app's listing appears in the integrator.io Marketplace right away, showing your company's name as the author — but it's listed with a "Request demo" badge and isn't yet installable by customers. It becomes installable only after you provision at least one license for that customer (see Step 4 below).

The customer experience will be the same as when installing any Celigo-published template or integration app from the Marketplace.

Step 4: Provision licenses (integration apps only)

When a customer clicks Request demo on your integration app's Marketplace listing, they'll see a confirmation message, and you (the publisher) will receive an email titled "Request for Integration App license" with a direct link to that app's Licenses page.

  1. Click the link in the email to open the Licenses page for your integration app.
  2. Click New license.
  3. Fill in the license details:
    • Email: the customer's email address
    • Expires: the license expiration date
    • Environment: Production or Sandbox
    • Options: optional JSON configuration for the license
  4. Click Save.

The new license appears in the list with a status of Pending install until the customer installs the app. Once the license is active, the customer will see an Install button (instead of Request demo) when they find your listing in the Marketplace.

Note: Granting the license here does not automatically notify the customer. You'll need to manually let the customer know that access has been granted before they'll know to go install the app.

Unpublish your integration

To unpublish an integration app, follow the steps below:

  1. Sign in to the integrator.io platform.
  2. Select Resources > Integration apps.
  3. Disable the Published setting.
  4. Click Unpublish in the confirmation window.

To unpublish a template, follow the steps below:

  1. Sign in to your integrator.io account.
  2. Select Resources > Templates.
  3. Disable the Published setting.
  4. Click Unpublish in the confirmation window.

FAQs

Do I need a sandbox instance to develop Integration Apps?

It’s a best practice to get started there but not a mandatory requirement at this time.

What does the certification process look like?

At this point, you would demo your application to the Celigo product team once you are ready. Once the demo is approved, you would be able to list on the Marketplace. However, this process may evolve in the future.

Naming and readme format standards for 3rd party templates and integration apps

Before you publish, name your template's or integration app's components consistently and include a complete readme. Following these conventions helps Celigo review and approve your submission faster, and helps customers understand what they're installing.

Readme file

Your readme should include:

  • Overview of the template or integration app.
  • Installation instructions.
  • Setup and configuration instructions.
  • Support contacts: your (the 3rd party's) contact for support using the template.
  • Services contacts: for promoting professional services to implement the template. This can be a link to your (the publisher's) own services/contact page, or to another implementation partner you've arranged to provide that service.

Template or integration app description

Format: Sync \<Export Application Record Type in Plural, starting with UpperCase> between \<Export Assistant Name> and \<Import Assistant Name>.

Examples:

  • Sync Contacts and Companies between HubSpot and NetSuite.
  • Sync Employees between ADP Workforce Now and Okta.

Connections

Export connection format: \<Export Assistant Name> Connection

  • Example: HubSpot Connection

Import connection format: \<Import Assistant Name> Connection

  • Example: Salesforce Connection

Exports

Export name formats:

  • Get \<Export Assistant Name> \<Export Application Record Type in Plural, starting with lowercase>
  • Example: Get Salesforce leads
  • Get \<Export Assistant Name> \<Export Application Record Type in Singular, starting with lowercase> by \<identifier>
  • Example: Get Salesforce lead by ID

Export description formats:

  • Delta: Get all \<Export Application Record Type in Plural, starting with lowercase> from \<Export Assistant Name> that have been modified since this flow last ran. Example: Get all leads from Salesforce that have been modified since this flow last ran.
  • Single record: Get a \<Export Application Record Type in Singular, starting with lowercase> from \<Export Assistant Name> by \<identifier>. Example: Get a lead from Salesforce by ID.
  • Once: Get all \<Export Application Record Type in Plural, starting with lowercase> from \<Export Assistant Name> where \<Boolean field name> is false. Example: Get all item shipments from NetSuite where "Celigo[AT]_NetSuite_Newegg_Item Shipment" field is false.
  • Listener/Webhook: Get all recently created and updated \<Export Application Record Type in Plural, starting with lowercase> from \<Export Assistant Name> using a Webhook. Example: Get all recently created and updated leads from Salesforce using a Webhook.

Imports

Import name formats:

  • Import \<Import Assistant Name> \<Import Application Record Type in Plural, starting with lowercase>
  • Examples: Import NetSuite contacts; Import FTP files
  • If the import name would otherwise be a duplicate, append the configuration type: Import \<Import Assistant Name> \<Import Application Record Type in Plural, starting with lowercase>(Import configuration type)
  • Examples: Import Concur contacts(Add); Import Concur contacts(Update)

Import description format: \<Import configuration type> \<Import Application Record Type in Plural, starting with lowercase> in \<Import Assistant Name> [optional, if a lookup applies: using the \<lookup identifier> as the lookup identifier].

  • Examples:
  • Add or update contacts in NetSuite using the email as the lookup identifier.
  • Add or ignore contacts in NetSuite using the email as the lookup identifier.
  • Update contacts in NetSuite using the name as the lookup identifier.
  • Add contacts to NetSuite.
  • Add or update contacts in NetSuite using "Celigo[AT]_NetSuite_Newegg_ContactID" field as the lookup identifier.

If the import is to FTP: \<Import configuration type> \<Export Assistant Name> \<Export Application Record Type in Plural, starting with lowercase> to/in FTP.

  • Examples: Add 3dcart customers to FTP; Update 3dcart customers in FTP.

Flows and integrations

Flow/integration name format: \<Export Assistant Name> \<Export Application Record Type in Plural, starting with lowercase> to \<Import Assistant Name> \<Import Application Record Type in Plural, starting with lowercase>

  • Example: Acumatica orders to NetSuite opportunities

If it's a custom record: \<Export Assistant Name> \<Export Application Record Type in Plural, starting with lowercase> to \<Import Assistant Name> \<Custom record name in NetSuite> (custom record).

  • Example: Jira projects to NetSuite Celigo Jira projects (custom record)

Flow description format: This flow syncs \<Export Assistant Name> \<Export Application Record Type in Plural, starting with lowercase> as \<Import Assistant Name> \<Import Application Record Type in Plural, starting with lowercase>. Examples:

  • This flow syncs Salesforce leads as HubSpot contacts.
  • This flow syncs Klaviyo exclusions as NetSuite contacts.

Integration description format: Sync \<Export Application Record Type in Plural, starting with UpperCase> between \<Export Assistant Name> and \<Import Assistant Name>. Examples:

  • Sync Leads between Salesforce and HubSpot.
  • Sync Contacts and Companies between HubSpot and NetSuite.