Integrations
Manage flows used as integration templates and instances.

Configuration
Set up a new instance with config parameters and set/get methods:
const integrations = appmixer.ui.Integrations(config)
integrations.set(key, value)
integrations.get(key)config.el ...
config.el ...config.options
config.optionsType: Object | Default: {}
config.options.customFilter
config.options.customFilterType: Object | Default: {}
Filter the integrations with additional parameters:
appmixer.ui.Integrations({
  /* ... */
  options: {
    customFilter: {
      // displaying Integrations with a certain customField
      'customFields.category': 'healthcare',
      // that are shared with someone
      'sharedWith': '![]'
      // and in this example, that are shared throught the 'domain'
      // options with a 'testdomain.com'
      'sharedWith.domain': 'testdomain.com'
      // or we could filter only Integrations that are shared with
      // scope 'user'
      // 'sharedWith.scope': 'user',
    }
  }
}Instance
State
integrations.state(name, value)loader
loaderType: Boolean | Default: null
Toggle a custom loading state.
error
errorType: String | Default: null
Toggle a custom error message.
Events
integrations.on(event, handler)integration:create
integration:createintegrations.on('integration:create', integrationId => {/* ... */})Click a button to to create a new integration from template.
integration:edit
integration:editintegrations.on('integration:edit', integrationId => {/* ... */})Click a button to edit integration.
integration:remove
integration:removeintegrations.on('integration:remove', integrationId => {/* ... */})Click a button to remove integration.
integration:start
integration:startintegrations.on('integration:start', integrationId => {/* ... */})Click a button to start integration.
integration:stop
integration:stopintegrations.on('integration:stop', integrationId => {/* ... */})Click a button to stop integration.
Example
const integrations = appmixer.ui.Integrations({
    el: '#integrations'
})
integrations.open()
integrations.on('integration:create', async templateId => {
    // Create integration flow as a clone of the template. Disconnect
    // accounts because they might not be shared with the end user.
    const integrationId = await appmixer.api.cloneFlow(templateId, { connectAccounts: false })
    await appmixer.api.updateFlow(integrationId, { templateId })
    const wizard = appmixer.ui.Wizard({
        el: '#your-wizard-div',
        flowId: integrationId,
    });
    wizard.open()
    integrations.reload()
})
integrations.on('integration:edit', function(integrationId) {
    var wizard = appmixer.ui.Wizard({
        el: '#wizard',
        flowId: integrationId
    });
    wizard.open()
});
integrations.open()Last updated
Was this helpful?
