Appmixer
v4.4
Search…
⌃K

Integrations

Manage flows used as integration templates and instances.
Integrations

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 ...

Learn about widget config here.

config.options

Type: Object | Default: {}

config.options.customFilter

Type: 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

Learn about widget instance here.

State

integrations.state(name, value)

loader

Type: Boolean | Default: null
Toggle a custom loading state.

error

Type: String | Default: null
Toggle a custom error message.

Events

integrations.on(event, handler)

integration:create

integrations.on('integration:create', integrationId => {/* ... */})
Click a button to to create a new integration from template.

integration:edit

integrations.on('integration:edit', integrationId => {/* ... */})
Click a button to edit integration.

integration:remove

integrations.on('integration:remove', integrationId => {/* ... */})
Click a button to remove integration.

integration:start

integrations.on('integration:start', integrationId => {/* ... */})
Click a button to start integration.

integration:stop

integrations.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 modified 2mo ago