Appmixer can be embedded into your own web products. By including Appmixer into your own product, you can give your users a whole new set of workflow automation features with a very little effort.
You can use the provided Appmixer SDK to include the Appmixer UI widgets (including the Drag&Drop Designer, Flows manager, Insights, ...) any web page, right into your own web products, completely white-labeled. First, include the appmixer.js
in your page:
<!DOCTYPE html>
<html>
<body>
<div id="my-am-designer" class="am-designer"></div>
<div id="my-am-flow-manager" class="am-flow-manager-container"></div>
<script src="./appmixer.js"></script>
...
</body>
</html>
Once you included the Appmixer SDK, you need to create an instance of the global Appmixer class and pass the base URL of the engine:
<script>
var appmixer = new Appmixer({ baseUrl: 'https://api.appmixer.com' });
</script>
Now you can create your first user:
<script>
appmixer.api.signupUser('first-username', 'first-password-123').then(function(auth) {
appmixer.set('accessToken', auth.token);
}).catch(function(err) {
alert('Something went wrong.');
});
</script>
Now we can create the first flow and open the Appmixer Designer to let your user design their first flow.
<script>
var designer = appmixer.ui.Designer({ el: '#my-am-designer' });
appmixer.api.createFlow('My First Flow').then(function(flowId) {
designer.set('flowId', flowId);
designer.open();
}).catch(function(err) {
alert('Something went wrong.');
});
</script>
At this point, you should see the Appmixer Designer rendered inside your <div id="my-am-designer">
element.
Once you create a user in Appmixer (appmixer.api.signupUser()
) and have stored their username and password in your system, you can always request a new token by calling appmixer.api.authenticateUser()
:
<script>
appmixer.api.authenticateUser('first-username', 'first-password-123').then(function(auth) {
appmixer.set('accessToken', auth.token);
}).catch(function(err) {
alert('Something went wrong.');
});
</script>
<!DOCTYPE html>
<html>
<body>
<div id="my-am-designer" class="am-designer"></div>
<div id="my-am-flow-manager" class="am-flow-manager-container"></div>
<script src="./appmixer.js"></script>
<script>
var appmixer = new Appmixer({ baseUrl: 'https://api.qa.appmixer.com' });
var yourUserUsername = '123ABC45678@example.com'; // User ID of the user in YOUR system (must be in an email format!).
var appmixerUserPassword = '[POPULATE_FROM_YOUR_DB]'; // A password of the virtual user in Appmixer.
appmixer.api.authenticateUser(yourUserUsername, appmixerUserPassword).then(function(auth) {
appmixer.set('accessToken', auth.token);
onAppmixerReady();
}).catch(function(err) {
if (err.response && err.response.status === 403) {
// Virtual user not yet created in Appmixer. Create one with a random password and save the password in YOUR system
// so that you can authenticate the user later.
appmixerUserPassword = Math.random().toString(36).slice(-8);
appmixer.api.signupUser(yourUserUsername, appmixerUserPassword).then(function(auth) {
appmixer.set('accessToken', auth.token);
// ... Store auth.token and appmixerUserPassword in your DB.
onAppmixerReady();
}).catch(function(err) {
alert('Something went wrong.');
});
} else {
alert('Something went wrong.');
}
});
function onAppmixerReady() {
var designer = appmixer.ui.Designer({ el: '#my-am-designer' });
var flowManager = appmixer.ui.FlowManager({ el: '#my-am-flow-manager' });
flowManager.open();
flowManager.on('flow:open', function(flowId) {
designer.set('flowId', flowId);
flowManager.close();
designer.open();
});
flowManager.on('flow:create', function() {
flowManager.state('loader', true);
appmixer.api.createFlow('New Flow').then(function(flowId) {
designer.set('flowId', flowId);
flowManager.close();
designer.open();
}).catch(function(err) {
flowManager.state('error', 'Error creating a new flow.');
});
});
}
</script>
</body>
</html>