# Product updates
Source: https://help.nextmatter.com/changelog/changelog
We bring you new features and fixes every month
## Automatically retry failed integration steps
Temporary blips in connected tools shouldn't stall your workflows. For HTTP and Automations Library steps, Next Matter can automatically retry a step up to 3 times (with increasing delays) when it hits a safe, temporary failure - for example a connection error, a rate limit, or a short-lived server error. We don't auto-retry failures where a retry might create a duplicate side effect.
New HTTP and Automations Library steps have **Automatically retry on failure** on by default. For existing steps, open the step settings and turn the toggle on if you want this behavior. Leave it off for steps that must run exactly once (for example, sending a message or creating a ticket).
## Make the important checklist items mandatory
Checklists got stricter - in a good way. You can now mark individual checklist items as mandatory or optional, increasing the flexibility of checklists to allow for specific entries to be required or not, with a clear indication to users per checklist entry.
## Delegation rules for conditional and dynamic assignees
Automated delegation now works on steps with conditional or dynamic assignment as well. Set who should (or shouldn't) take over a task even when the assignee is decided at runtime.
For details, see [Automated delegation](/docs/automated-delegation)
## Improvements and fixes
* **Find instances by active step and assignee** - Filter the workflow overview by the active step and who's currently assigned, so you can jump straight to the work that needs attention. For details, see [Instance overview table](/docs/work-with-process-overview)
* **Out of office for light users** - Light users can set out of office and pick a stand-in, so their tasks keep moving when they're away. For details, see [Out of office](/docs/set-out-of-office)
* **Open task counts at a glance** - Tab headers show how many open tasks you have, so the next piece of work is easier to spot.
* **Quieter morning digests** - The morning email digest is off by default for new users; opt in if you want the summary.
* **Data references in links** - Fixed a bug where data references inside link URLs could get corrupted.
## The visual editor is now the default
Building workflows just got easier. The visual editor - our drag-and-drop way to design workflows - is now the default for everyone, giving you a clearer, more intuitive canvas to build on.
For details, see [Visual builder](/docs/flowchart-view)
## New integration: Azure OpenAI
You can now bring Azure OpenAI into your workflows to analyze text and generate content with AI, using your own Azure deployment.
For details, see [Analyze text code-free with AI](/docs/analyze-text-code-free-with-ai)
## Multi-value dropdowns in data tables
Data table dropdowns now support multiple values, so a single cell can hold more than one selected option - perfect for tags, categories, and other multi-select inputs.
For details, see [Single and multi-select dropdowns](/docs/single-and-multi-select-dropdowns)
## Custom API key credentials for HTTP integrations
Connecting custom HTTP integrations is more flexible: you can now create a credential that sends your API key in a custom header, and reuse it securely across workflows.
For details, see [API keys](/docs/api-keys)
## Improvements and fixes
* **Quieter inboxes** - Team email notifications are now off by default for new team members, so people opt in to what they want.
## New integration: Claude
Anthropic's Claude is now available as an AI step. Add it to your workflows to summarize, draft, and analyze text right where the work happens.
For details, see [Analyze text code-free with AI](/docs/analyze-text-code-free-with-ai)
## Connect multiple accounts to the same integration
You can now connect more than one account to a single integration and choose which one a step should use. Great for teams that work across multiple workspaces, regions, or client accounts.
## Narrow user-selection fields to the right teams
When you add a user-selection form field, you can now limit the choices to members of specific teams - so people only ever pick from the right group.
For details, see [User selection](/docs/user-selection)
## Filter and sort your portal requests
Portal users can now filter and sort both the My requests and Team requests tables, making it much easier to find the right request in a long list.
For details, see [My requests](/docs/my-requests)
## A fresh look for the Automations Library
We redesigned the Automations Library navigation around a clean sidebar, so finding integrations, credentials, and automations is faster and more intuitive.
## Improvements and fixes
* **Switch workspaces anywhere** - Move between workspaces from the sidebar and on mobile.
* **Smarter retries** - Retry a failed integration step using a different connected account.
## Pull structured data from documents with LlamaParse
A new LlamaParse integration lets you extract clean, structured data from PDFs and other documents - so you can feed real content from files straight into your workflows.
## New integration: Microsoft Fabric
Connect your workflows to Microsoft Fabric to move and work with your data across Microsoft's analytics platform.
## Improvements and fixes
* **More reliable SharePoint files** - "Shared with me" file lookups now use the Microsoft Graph Search API for more dependable results.
* **Faster workflow lists** - Loading and opening your workflow overview is noticeably quicker.
## New integration: Scribe
Connect to Scribe to pull in and approve reports as part of your workflow, bringing your documentation process into Next Matter.
## Improvements and fixes
* **Cleaner validation** - Dropdown fields validate correctly after being reset.
## Smarter AI steps with OpenAI
Our OpenAI integration gained powerful new capabilities: web search, file search, and a code interpreter. That means your AI steps can look things up, read your files, and run calculations - all within a workflow.
For details, see [Analyze text code-free with AI](/docs/analyze-text-code-free-with-ai)
## Improvements and fixes
* **Prefill predefined tables dynamically** - Populate table inputs from data references, so the right rows are ready before a user even starts.
* **More flexible dates** - Date fields now accept a wider range of date formats from your data sources.
* **Polished portals** - Transparent portal cover images now display on a clean background.
# Updates in 2023
Source: https://help.nextmatter.com/changelog/changelog_2023
Product features and improvements in 2023.
### No-code Google Sheets integration
Adding rows to a Google sheet used to require sending specific API calls. In the spirit of making life simpler, we've introduced a no-code Google Sheet integration.
Select the sheet to update, provide details, and your workflow step is ready. Your spreadsheet gets updated directly from the workflow, while you can enjoy the festive season.
### New step templates
#### Zendesk
Want to quickly **upload a file** from the workflow to Zendesk and link it in a ticket? Now you can build such a solution faster using our ready-to-take step template. Copy the template and add it to the workflow you're building! You can find all available step templates in **Integrations > 3rd party integrations** when adding a new step.
#### Google Sheets
Get data from a range of rows and columns or multiple ranges across various spreadsheets. It's nice, easy, and only takes seconds to implement. You can find all available step templates in **Integrations > 3rd party integrations** when adding a new step.
#### Microsoft Dynamics 365
if you need to get company data or opportunity data from Microsoft Dynamics into your workflow, we've got a template for this. Copy it and use it in your workflow without having to build the steps yourself. You can find all available step templates in **Integrations > 3rd party integrations** when adding a new step.
### Say hello to Automations library
To help you build workflows, we've been offering step templates, which are chunks of workflows you can easily incorporate into your own. Now, however, we're taking templates a step further offering entire business-oriented workflows! They are end-to-end complete and working flows that you can tweak according to your wishes.
If you're an admin, simply click **Use template** in any of the templates available in the **Automations library**.
### Find tasks easier and start instances quicker with the improved UX
To help you get on with your task without spending minutes locating specific workflows, we improved the look and feel of the workflow overview page.
Now, the most used fields such as the search bar and the tag filter are more prominent, and the remaining filters are available under **Filters**. We've also made the instance start icon more prominent so it's always easy to find. The improvements are available on desktop and on mobile.
### UI improvement in Templates
To make Next Matter language consistent, we introduced some small UI changes. What used to be a Step template is now a template. Additionally, we merged Utilities and Next Matter integrations into Next Matter templates.
The reason for the change is to differentiate configurable integrations you can set up in Next Matter from ready-made templates you can incorporate into your workflows.
### Build faster with new templates
Why waste time building workflows from scratch? Use our ready-built templates for faster results. Now you can add a sheet to an existing Google Sheets spreadsheet, or delete it, straight from the workflow. Maybe you need to create a separate sheet for each customer when they sign up with you and delete it when the customer leaves. In this case, this is the exact template you need.
If you use Intercom, you might benefit from a template that brings Intercom company or contact details to your workflow, nice and easy. This way, you might start a workflow with all the necessary data already in.
To find all the available templates in Next Matter, add a step and select **Templates > 3rd party templates**.
### Delegate tasks when you're away
To help workflows move smoothly when you're taking time off, you can now activate the **Out of office** setting. Simply specify when you're out and nominate a team or a person that will hold the fort for you! This way, all the new tasks will automatically be assigned to your stand-in, and you can rest undisturbed without any tasks being left hanging.
### New templates for easier workflow setup
If you need to quickly move a file from one **Microsoft OneDrive location to the next** (for example from Prospect Clients to Won), we've got your back. Simply grab a ready-made template and add it to your workflow.
You'll find all the templates in **Workflows.** Add a new step and select **Templates > 3rd party templates**.
We've also created a template to speed up creating dynamic dropdowns. These are the dropdowns whose contents change based on the source (a Google Sheet in this case). If you want your users to quickly select an option from a dropdown that's always up-to-date, grab this template and use it as part of your workflow.
Again, this template is available in **Workflows.** Add a new step and select **Templates > 3rd party templates**.
### Goodbye e-mails! Welcome Slack!
Got tired of your email being jammed by task notifications? We totally get it. That's why now you can decide how to get notified about the tasks assigned to you or your team. Simply select Slack in your Profile settings, and enjoy your notification-free e-mail account! But if you want to continue getting emails, select both - it's totally up to you.
Oh, and you can also send notifications to Slack channels straight from tasks.
### Open Next Matter inside Front
No more toggling between windows and tabs. If you use Front, now you can run workflows and complete tasks from within Front. You can open Next Matter as a sidebar plugin and have all the data at your fingertips.
### Select assignee based on conditions
Do you want different members of your mortgage team to assess a loan based on its amount? Or send out a different cleaning crew based on the location of the property? No problem! Set it up in seconds when you build your workflow.
Use conditional assignee as the step assignee, specify the conditions, and you're good to go!
The most-wanted feature is here! With version control, you can draft and test workflow versions, publish them, and revert to any previous version if needed! It's quick, easy, and most importantly - auditable. You have a clear trail of versions, and together with the detailed changelog, you won't miss the tiniest change in any of your workflows.
### New look and feel to your notifications
With the new notification look and feel, we've made sure important things stand out and are hard to miss. Look better, and reads easier, don't you think?
### Integration with Box
No need to provide credentials when you're creating a step that sends or gets documents from Box.
Now you can set Box up as a pre-configured integration and provide your credentials only once when you activate your integration. Nice and easy! Go to **Company > Integrations** to set it up.
### Update your profile picture
Need to put different vibes on your profile picture? Now you can update it whenever you want. Simply go to your **Profile settings** and upload a new photo, nice and quick.
### Integrate in seconds with Webhook trigger
Your new feature – Webhook – simplifies the process of integrating different systems to automate your workflows. With the new webhook trigger feature, a workflow starts automatically when an event occurs on a different platform such as a customer response on a customer support ticket or a change to the application status in an applicant tracking system.
Simply, provide the webhook URL, test, and you're good to go.
You can also analyze the webhook response payload and extract useful variables that you can use in further steps of the workflow.
### Self-service password reset
No need to call us when you need to create or update a password. You can do it yourself in your Profile settings. Simply pick a new password and change it hassle-free.
### Search for a folder in Google Drive with a new step template
Step templates help you build your workflow in minutes. Now, you can create a workflow that searches for a folder in Google Drive. All folders with a matching name are displayed, and you can use the folder ID as a variable to use in subsequent steps.
When you edit a workflow, you can find all step templates by clicking **+ Add step > Step templates**.
### Restrict your user selection
Too wide of a choice? That's no longer the issue. Now, when you're creating a workflow, you can restrict the user selection drop-down to specific users or user groups. This way, when users select from the drop-down, they will only see what's relevant to them.
And if you're a workflow manager, you can easily select which team member to assign a task to without the hassle of scanning a long list of users. This prevents mistakes from being made and saves you those precious minutes.
### Send invitations from workflow with Outlook step template
Want to send an Outlook email informing users of an event? Use our Microsoft Outlook step template. Add it to the process or build a workflow around it. You can find all step templates in **Workflows > Add step > Step templates**.
### Visualize the workflow end-to-end
With the new flowchart view, you can see the whole layout of your workflow with all the dependencies. You can easily find out the types of steps (integration step, decision step, and so on) and which step is conditional.
### Changelog
Get on top of all changes to the workflow. Thanks to the changelog, you can now track who changed the workflow and how.
### As easy as creating an email step
Sending emails from the workflow has never been easier. Now you can use an Email step to quickly configure and send an email as part of the workflow. No-code required!
You can also send an email preview to verify that all is displayed correctly.
### Create a Notion page straight from your workflow
If you need to transfer workflow information to a Notion page, create one straight from the workflow by means of simple integration.
Use our Notion step template. Add it to the process or build a workflow around it. You can find all step templates in **Workflows > Add step > Step templates**.
### Search and find by tags
Tagging workflowss can be helpful to categorize them. Now, tagging can also help you to find the workflows you need. You can use tags to filter instances and tasks in your inbox. Click **Filters**, expand the **Tags** dropdown, and select one or multiple tags to filter for. The instances in which the selected tags have been used will be shown as the result.
### Keep your dropdown data up to date with external data sources
Connect to external data sources such as Google Sheets or a PostgreSQL database and create single or multiple value dropdowns. Any update in your data will be automatically reflected across your workflows, saving you time and effort.
### Create an email notification in seconds
Now, if you want to send an email to the workflow user, you can create and configure the email in a matter of seconds. No need for HTML or coding. Simply click **Email step** when adding steps, provide the email details, and write up the message.
The email will be sent from the Next Matter email account.
### Create data references automatically
Now, when you create an external portal, you can append parameters that will translate into data references when users create new instances. This is a quick and easy way to create data references that are stored in instances that you can pass to external databases.
### Need to compare images in your workflow? Set a minimum number of images for users to upload!
When defining an image or file upload form field, specify the minimum and maximum number of images users should upload. This can be useful when you're building a compliance workflow and need your consultants to compare images.
The option is available in the Image and File upload form field settings.
### Get AI to build your workflow
We have your back if you don't know what your process should look like. Our AI can help you draft the workflow. Simply go to **Roadmap** and click **Create new workflow with AI**.
### No change gets overwritten
To help you build workflows without other builders making conflicting updates, we made sure that the editor view of each process gets locked when it's being edited. When you leave the page, close the tab, or don't interact with the process editor for 15 minutes, the workflow gets automatically unlocked.
### Troubleshoot, fast
To make sure troubleshooting integrations is straightforward, we've made sure to show the API request and response together so that you can review the settings nice and easy.
Simply expand the details of the integration step to see the request and response details.
### Make a great first impression with an on-brand dashboard
The new organization settings page gives admins full control over the Next Matter dashboard. With this new feature, admins can update their organization's dashboard. Moving forward, we plan to add more capabilities to help admins to better manage their organizations in Next Matter.
### No need to ask support for API keys. It's self-service now!
To give admins more control and flexibility, we are introducing the "Next Matter API Keys" page. Next Matter API keys can be created, edited, set to expire, and revoked directly from this page. Furthermore, you have the flexibility to manage them according to your needs, granting you complete authority over them.
### Get the right people in to troubleshoot
To help with troubleshooting integrations, on the workflow overview page, we have added a "Tech Lead" or escalation contact. When a user is selected for this role, they will be automatically assigned to all failed integration steps in the workflow. If the "Tech Lead" is not set, the workflow lead will serve as the escalation contact.
### De-clutter your inbox with Task Snoozing
We're excited to introduce our new snooze function, designed to help you manage your notifications more effectively. You can now snooze specific tasks in your inbox to keep it clutter-free.
### Integrate with Postgres to manage your data
Next Matter has recently integrated with Postgres, enabling you to streamline your workflows seamlessly. With this integration, you can now access and manage your Postgres database directly from within our tool, saving you time and effort. This integration also ensures data consistency and reliability, improving the overall efficiency of your workflow.
### New process role: Tech Lead
It might happen that the workflow lead is a person overseeing the process from the business perspective. That means that when a step fails you need to involve a workflow builder or a technical person to help out. To help with such cases, we've created the Tech Lead role. You can select any colleague for this role and if selected, this person will be notified every time a step fails.
You can select your tech lead in the workflow overview.
### Reminders for external steps
Now, you can send dynamic reminders to your external users which ensure that the important tasks assigned to them don't slip through the cracks. You can choose the time, date, and frequency for each reminder, and we'll automatically send out a reminder email based on your configurations.
### Revamped team settings
The updated Colleagues and Teams views are designed to give you more control over your organization. With this update, we've made it easier to manage and edit teams and their members. We've also added a search field, which will help you quickly find teams, team members, and personal details.
### Upgrade to workflow deletion
If a workflow becomes irrelevant, or you simply want to keep your dashboard clean, it's now possible to delete workflows even if they have active instances. This means that you no longer need to delete each instance separately!
With this new feature, you also get an overview of the instances that will be removed from your organization before you decide to delete.
# Updates in 2024
Source: https://help.nextmatter.com/changelog/changelog_2024
Product features and improvements in 2024
## Unlock unparalleled workflow insights
Add a range of powerful new column types and get more insights into your workflow status. Here's what's new:
* **Stage**: Gain a more detailed view of progress, going beyond percentage completion.
* **Active step(s)**: Instantly see what's being worked on right now.
* **Active step assignee(s)**: Know exactly who's responsible for the current steps—whether it's an individual or a team.
* **Instance lead user**: Easily identify the user who triggered an instance.
* **Instance ID**: Quickly locate or share the specific instance you're looking for.
* **Workflow version**: Determine which version of the workflow is running for an instance.
And there's more! Sorting on custom data columns is now enabled for instance lists with up to 8,000 instances.
With these updates, managing your workflows has never been easier or more insightful. Dive in and take control today!
## Add a new row to Google Sheets with no code
Adding rows to spreadsheets has been around for some time, but now, you can add a single row with no code at all! No JSON is required—just simple pick and choose!
Select Add single row as your operation, and be done with the config in seconds.
## 4 new no-code operations for Gmail
Send emails, fetch emails, label emails, and reply to emails have all become no-code Gmail steps. That means they are now completely code-free to create, and easy to use.
## Powerful table improvements
We've made tables more user-friendly. As a guest user or a team member, you can quickly add extra rows, expand the table, and edit the information in the table. Nice and easy!
## Add files or images to instructions
For some, pictures speak louder than words! Now you can attach images and files to your instruction form fields!
## Copy data references
This is a HUGE improvement! Now, you can copy data references from field to field, and the references will keep on working.
## New SharePoint code-free steps
We know you're busy, and in the spirit of making your life easier, we're creating more and more no-code steps. This time, we've released a bunch of new no-code SharePoint steps. You can easily upload several files directly from the workflow to SharePoint, create a folder, or share your SharePoint file or folder.
## Create instance overview the way YOU want
Easily track and display key data from workflows directly in the instance table. Now, you can pull important input fields from form steps and view them in the table for quick context, without needing to open each instance to review step data. Simply publish the columns and save the new view as the default for all users.
As a builder and space admin, you can adjust the view and publish it to show only the needed data for all users. As a manager, you can get the data without any extra noise of unnecessary columns.
If tracking specific fields in your instances is essential, this update is perfect for you!
## Update several conditions at once
No need to spend time updating the same conditions in every place they've been applied. If conditions are the same, update them all in one go! Such a time saver.
## Keep credentials safe and encrypted
To help you ensure your organization's credentials are safe, we can store them in an encrypted database and display them under a set name when your team configures a custom integration.
This allows the team to create workflows and connect custom tools using available credentials while the authorization details are kept secure and encrypted.
## Check what the app looks like for light users and share the portal link
If you're creating a portal and want to find out what the experience would be for light users who will interact with it, simply go into the light user view: test workflow, verify that everything works, and check if things are ready to launch.
As an admin, you can now quickly switch between views!
When all's good, share the portal by inviting people in, or copy the link and send to portal users!
## Test no-code steps in the editor
Now you can test no-code integrations without having the run draft instances as testing can be done directly in the editor. Simply click **Test integration**, and wait for the result to show in the popup.
## Next Matter status updates delivered to your doorstep
Want to get regular system updates from Next Matter? No probs - simply subscribe to our status updates on the status page, select your channel, and you're all set. You'll be duly informed if anything happens on our end.
## Customize workflow table for everyone 🎁
Need your workflow overview table to have a different order of columns? No problem. Now you can customize the table's look (column order, width, and selection) and publish it for the entire organization!
## Validate step input 🔣
Users adding the wrong content format, which you have to correct afterwards? We totally get the frustration. Luckily now, you can validate user input to match a regular expression.
You can provide the expression, and enter a short help text for the user to specify what the correct input should look like. The text will show under the form field.\*\* Regex validation is available for short text form fields. \*\*
For examples of the supported regex, see [here](🔗).
## Quick actions make building, well, quick! 🏃
Quick actions enable quick and efficient reporting. Now you can easily find maximum and minimum values in table columns or export only the unique ones.
## Maintain compliance and export data from steps as PDFs or DOCX files
It's still a beta
We want this feature to be perfect and we're rolling it out step by step.
If you want to try it out, contact us using our chat widget.
Need to quickly export step details to a branded template, or maybe type an instruction that needs to be saved as a DOCX file? If that's the case, we've got you covered. With the new no-code templates, all this is possible from within your workflow and takes only a second.
No need for copying and pasting or juggling different tools.
## Copy conditions from fields or steps ✔
Applying the same set of conditions to a number of steps sounds like a drag. Luckily now you can copy them over! Set them up for one field or step, and simply select them to be applied to other steps or fields.
## Update form fields on the fly ✈
No need to click and update field settings to update the form label!!! Now you can do it by just editing the title. So simple!
## Get to the bottom of it, quickly 🤿
Tired of looking for a specific deadline, or instances with a defined set of tags or priority? If that's been a nuisance, it is no longer. With our new sorting options, you can set filters on any column to get detailed results in seconds.
Simply click on the drill-down icon in one or more columns, select your options, and filter away!
Detailed filters are available for both active and completed instances.
## Send Outlook emails code-free 🍰
We're adding Send email as a new no-code operation available in Next Matter. Saves you a whale of time, guaranteed!
## Celebrate with users 🎉
Little successes must be acknowledged, especially if you ask users to complete a long form. Why not add a custom message to thank them for their involvement?
Custom completion messages enable this and more! You can also decide where users should go next - be it inbox, portals, or the next task.
## Next Matter is a Freshdesk widget
Tired of juggling between support and workflow apps? Next Matter now integrates as a Freshdesk widget - embedded directly into your Freshdesk page. Initiate workflows from your Freshdesk app without wasting any time.
## Freshdesk connection goes no-code
To help you slowly tune back in after the holiday season, we've released the Freshdesk no-code integration. Now, you can create tickets in Freshdesk without any code required. You can create parent tickets, child tickets, and automatically assign those to agents or collaborators. One mundane thing less to do. Enjoy!
## Ready to unpack a table?
Now you can add a table as a regular form field! You can enter its source manually or add it as data reference linking to any external JSON or CSV file. If the source is a data reference, the table content will update dynamically.
The assignee of the step with the table can update the values in the table.
## New look and feel of step settings
Clarity is the key in working with steps. Now, when you configure steps, you can see what has been applied, and what the additional configuration options are!
## Comparisons made easy
We are adding more quick actions. Last month we rolled out no-code data calculations and now, we're adding comparisons to the mix. Use all popular comparison operators, compare, and turn results into re-usable variables.
No coding skills required.
## Let customers know where they're at
If your customers started a workflow, now you can let them know how the workflow is progressing. Send them a link where they can track the workflow and have all the info they need at hand.
## Straight lines are boring! Flex your workflow with better routing
Now you can add multiple groups of routing buttons to your form and show each set based on conditions. This can help you branch your workflow even further and allows for absolute flexibility.
Additionally, to cater to all routing scenarios, you can now select to jump forward or back, continue, or stop a workflow instance.
## Track your portal requests, whenever, wherever
If you opened a request using Next Matter portals and wonder where you're at, we've got you covered. Now you can check the requests in **My requests**section of **Portals**. You can see and sort all the requests you started and monitor their progress.
If you decide the request is no longer needed, you can also stop or delete it.
## Spice up workflows with custom code
Our new script step enables you to add a custom Node.js script to your workflow and build custom solutions that fit your needs.
## AI-powered image analysis
Need to compare or analyze images as part of your workflow? We've got you covered! Try our automated image recognition you can easily add as step to your workflow. Powered by OpenAI, it's quick and easy to configure!
Connect to OpenAI in your **Automations Library** and click **Integrations > OpenAI** when adding a step.
## The more the merrier
If you have a strong building team, this one is for you! Now you can add edit rights to colleagues who are not admins or workflow leads so that they can contribute. Simply select one or several colleagues in the **Editors** dropdown, and you're all set. You can also add teams as editors.
Note that light users can't be editors.
## Set out of office for team members
A team member is off but forgot to set their out-of-office? Now, it's not an issue. As an admin, you can set team members as out of office and select their stand-in. New tasks get assigned to the selected stand-in and don't end up in the inbox of the absent person. So workflows keep running smoothly and tasks get completed without any delays.
## Insert multiple data references faster
You can now insert multiple data references at a time without closing the data reference selector in between each one. No need to click the icon every time you want to insert a data reference - simply add as many as you need, then close the selector when you're done.
## Next Matter templates will gradually become no-code actions
Over the next months we'll be transforming Next Matter templates into no-code actions. This will help you adopt solutions faster and easier - the templates will focus on you selecting tasks from the dropdown instead of adapting our API.
You can find the new no-code operations in **Integrations > Next Matter action** and the templates that focus on formulas and calculations in **Integrations > Quick action**.
We have released the **Calculate formula** no-code operation as first on the list of our no-code additions, which you can find in **Quick action**. Use this step to perform quick calculations on numbers or data references.
In case, you want to quickly stop instances, we've also got you covered. Use the Next Matter action (Stop instance) for that.
## Excel Get range as a new no-code action
No-code steps are quick and easy to set up, and as such are essential to efficient building of complex workflows. We already have several in our no-code collection, and now are a new one for Excel. The step will enable you to quickly pull data from a range of cells in your Excel workbook.
## Use OpenAI to scan and summarize customer emails
No need to read the entire customer email when a tool can do it for you! Now you can connect to Open AI and use our ready-made no-code step to analyze the text and the sentiment of the email, and summarize it for you!
This is a huge time saver for the customer support team who get hundreds of customer emails a day!
## External portals are now public forms
We have simplified the terms we use, and in that spirit, we've renamed **External portals** to **Public forms**!
Public forms can be accessed by anyone with a link or a QR code, and once filled out, they start a workflow.
This is an excellent method for collecting information from **external users** without requiring them to set up user accounts.
## Make decisions faster with looping and branching
Want to speed up your decision-making process? Now you can easily create actions like approving steps, moving forward, and looping the workflow using the new routing button available as a form field.
Let's take a look at a story:
Imagine you've received personal information from a new supplier via a form you sent out.
After reviewing the information, you can quickly decide what to do next:
If the data is correct and complete, you can smoothly move the supplier forward in the workflow.
If the data is missing or incorrect, you can easily send the workflow back to the previous step to request the necessary updates.
And if you suspect the supplier is engaging in fraudulent activities, you can swiftly flag and offboard them.
By using looping, branching, and customizing workflows, you can tailor the process to fit your specific requirements. Plus, you can connect routing with conditions, ensuring the field is shown only when it meets the specified criteria.
You can use the Routing form field instead of the Decision step as it offers more options.
## Edit portals with a click
Now you can quickly switch to the edit mode and make changes to your portal.
## Make users' lives easier with prefilled data
If you already have certain data on file or stored elsewhere in the system, you can use it to automatically fill in form fields for your suppliers or end users. This way, they won't have to type in the same information again and again, making it quicker and easier for them to complete and submit forms.
Just think about customer data – customers shouldn't need to add it all over again. They might just want to take a look at the data to make sure it's correct. The same goes for creating shipping labels – if you already have the info, you can save them time by filling it in for them.
Now, you can automatically prefill all the form fields for your users. You can do this by using the data references or by entering the information manually.
Happy building!
## Next addition to Next Matter templates
Next Matter templates help you quickly make small adjustments to Next Matter workflows or perform actions on the workflows. For example, you can complete or launch workflow instances automatically, delete them, or find them by tag. Templates facilitate and speed up workflow creation as you don't have to manually create and configure steps but can use a ready-made set within any workflow you need.
Now, you can also use a template to **export instance details into a downloadable PDF**.
You can find all Next Matter templates by clicking **Templates > Next Matter templates** when you create a new workflow step.
## Create a no-code message in Front
If you use Front as your customer-facing tool, make sure to use our new no-code Front step action, and create automated messages directly from your workflow. The messages will show in Front signed with the selected team signature.
## Select and create variables in seconds
We have changed the way you create variables in our no-code operations (for Google Sheets, Zendesk, and Front). Now, instead of having to provide them manually, you select the ones you need from the dropdown! Nice and easy, right?
However, if you still want to add variables yourself, you can do that. Simply type the input in the field!
## Create or delete a spreadsheet without the code hassle
Now you can automatically create a new Google Sheets spreadsheet and fill it up with data in the following step. Takes exactly a second - select an action, provide the name, and you're all set.\
You can later use the sheet name as a re-usable variable.\
Happy no-coding!
If needed, you can also select to delete a spreadsheet. The spreadsheet will then be automatically moved to Google Sheets Trash.
## Create or delete new worksheets in Google Sheets (no code)
Adding or deleting worksheets has never been easier. Select the spreadsheet and type the name of the worksheet ... and you're done! No extra effort is needed.
This is all down to the no-code actions we continuously add to our portfolio.
## Share portals with colleagues and teams, fast
Now, you don't need to be a light user to interact with portals. To make sharing portals easier and faster, you can select to share them with colleagues, or even entire teams!
## No-code way to send messages to Slack channels
No need to go through multiple hoops to quickly send a Slack message as part of your workflow. Now, sending messages to the selected channel is available as a no-code step. Simply select the step, decide on the channel to send the message to, type the message, and you're all set!
## No-code updates to Google Sheets
We are on a roll here! The two new features we're proud to present are: deleting spreadsheets and updating rows!
You can now **update rows** in Google Sheets with just a few clicks. No need to add API endpoints or custom configuration. Simply select your action, add new values, and you're all set.
To **delete spreadsheet**, you simply need to select the delete action. A pro tip: select the file from among the data references - this way you avoid the hassle of checking the file name.
## Add comments to Front conversations as a no-code step
If your support teams use Front as a way to contact clients, they can now run the whole support process end-to-end from Next Matter with Front conversations handled directly in Next Matter workflows.
Configure a no-code integration step, add comment details, and you're good to go. The comment will be added to Front when the workflow runs.
## Integrations are now in Automations library
Now, you can find and easily connect 3rd party apps in **Automations library**.
Integrations used to be a page in the Company section, but we've moved and re-designed the page to make connecting apps more straightforward and easier. Happy connecting!
## Authorization instead Pre-configured integration
When you connect an app in **Automations library** in Next Matter, you don't need to authenticate each API call you make. Till now, to make a step work with such connected integration, you had to select the app in the Pre-configured integration field.
However, in response to the feedback that this wording was unclear, we've changed it to **Authorization**, which is in line with what you'd put in the request header.
## Share workflows with portals
The beta phase is over, and now you can use portals to your heart's content.\
Portals are an easy way to share selected workflows with a wider audience. No need to send links, search for the right process, or worry about access and credentials.
Now, you can also open portals in a Front or Zendesk sidebar!
## Get users to resolutions, fast
Now you can create a user portal in seconds! Portals are secure user hubs, where users can start a workflow that has been added to the portal.
Here are a couple of highlights:
* Portal users are light users, so they only have access to what is available in the portal.
* Portals are customizable to show your brand
* You can add one or multiple workflows to a portal and edit the workflow names as they show in the portal. This way the shared workflows are more recognizable to users!
* You can create different portals for different user groups
## Unlock branches with nesting
Now you can nest group steps inside parallel steps. This can help you build workflow branches or create sub-workflows within a workflow. The solution also allows for building workflows that are clear and transparent.
This way you can build different forms and offer them to different groups of users based on conditions. However, users get these forms at the same time.
Try nesting and drag and drop group steps inside the parallel steps. You can nest a maximum of 2 levels down (1.0 ->1.1 -> 1.1.1).
## Dates need flexibility
Your dispersed teams might write dates differently. A specific format might also be a legal requirement. We used to offer an API solution to adjust date formats, which wasn't ideal. However, now you can do it easily with a simple cog icon.
Simply select a date data reference, click the cog icon, and voila - a list of formats to choose from. To allow flexibility, you can select a different format for each date you use.
## No more API keys! Now you can connect to Zendesk using OAuth!
Simply add your Zendesk subdomain when you connect your integration in Next Matter.
To connect the integration, go to **Company > Integrations**.
For example, if your domain is: `https://d3v-nextmatter.zendesk.com/agent/dashboard`, then `d3v-nextmatter` is the subdomain to enter.
## Draft your workflow on the go
With the interactive Visual builder, you can change, create, or brainstorm workflows together with the Subject Matter Expert. No need for emails or notes to fly around. The collaborative editor allows for renaming, dragging and dropping steps, and adding or removing them with all the dependencies clearly visible.
To open the editor, click **Workflows**, open any existing workflow, and click **Show Visual** in the top bar.
## Use Next Matter inside Zendesk
To help you manage time and workload, you can now start a workflow directly from inside Zendesk. You can link chats or tickets to instances and enable a smooth data flow between the apps.
> 🚧
>
> Currently the widget is a beta. If you're interested in using it, contact our Support team.
## Create a Zendesk step in seconds. No code required.
Creating or updating a Zendesk ticket directly from a Next Matter workflow is a piece of cake. With our no-code integration, all you need to do is fill in a few fields, and bam! your step is created.
# Updates in 2025
Source: https://help.nextmatter.com/changelog/changelog_2025
Product features and improvements in 2025
## Improvements and fixes
This month we focused on stability and polish for builders:
* **More reliable editing** - Copying conditions, editors, and step visibility settings no longer creates accidental duplicates.
* **Cleaner retries** - Integration steps that are retried now move into the correct state, so it's always clear what failed and what's still running.
* **Steadier integrations** - Reliability improvements for iManage file uploads.
## Connect more tools with OAuth 2.0 custom credentials
Custom credentials now support OAuth 2.0. You can set up and reuse OAuth-based credentials yourself to connect custom integrations - no need to involve us.
For details, see [Custom credentials](/docs/api-keys)
## Power your table dropdowns with datasets
You can now use a dataset as the source for a dropdown column inside a table form field. Build the dataset once and reuse it across every table and workflow that needs it, with consistent, always up-to-date options.
For details, see [Datasets](/docs/data-sets)
## Improvements and fixes
* **Portals on the go** - Browse and pick up portal requests from your mobile device.
* **Focus your run view** - Collapse the active stage to keep long workflows tidy while you work.
* **Reliable dropdowns** - Datasets now load correctly in dropdowns on nested steps.
## Numbers, now in your tables
Building on the Number field, you can now collect and display numbers and currency values directly in table form fields - and surface them as number columns in the instance table. That means cleaner data entry and reliable values for sorting and reporting.
For details, see [Tables](/docs/tables-forms)
## Next Matter looks great on mobile
We gave the mobile experience a serious upgrade. Your inbox, instance overview, the run view, and portals are now far easier to use on a phone - so you can keep work moving wherever you are.
## Improvements and fixes
* **Faster checkboxes** - Tick a checkbox cell in a table with a single click.
* **Export team requests** - Download the contents of a team requests table to CSV.
* **More flexible table data** - Pull JSON data straight into your table dropdowns.
* **Sidebar apps stay put** - Your sidebar app keeps its place when you switch between workflows.
## A clearer way to run your workflows
We've reimagined the run experience. Steps are now grouped into stages in a clean, collapsible view, so you can follow progress at a glance and always know what needs your attention.
Steps that run in the background - like emails, integrations, and automatically delegated steps - are tucked away, keeping the focus on the work that actually needs a person.
## More polish for the Number field
The Number field keeps getting better. Now you get a live preview of how your numbers and currencies will be formatted as you set them up, plus clearer in-field guidance on what's expected.
## Improvements and fixes
* **Export your colleagues list** - Download your organization's colleagues to CSV.
* **Clearer required columns** - Mandatory columns are now clearly marked on table inputs.
* **New formatting option** - Return just the first item from a JSON list when working with data references.
## Dataset filtering
Datasets now support filtering capabilities, bringing significant improvements to the user experience:
* **Cleaner selections** - Dropdown menus no longer display duplicate items, making it easier to find and select the right option
* **Smart filtering** - Create dynamic parent-child relationships where subsequent dropdown options automatically filter based on previous selections
* **Streamlined workflow** - Users can now navigate complex datasets more efficiently with contextual, relevant options at each step
For details, see [Datasets](/docs/data-sets)...
## Create custom credentials yourself!
Custom credentials now have a self-serve UI. You can easily manage and add custom credentials that you use to connect custom integrations.
For details, see [Custom credentials](/docs/api-keys)
## New quick actions ready to use
Quick actions allow you to create new workflow steps in seconds. We've added a new bunch for you to use. Now you can:
* [Turn a JSON object into an escaped string](/docs/conversions)
* [Turn a string into a JSON object](/docs/conversions)
* [Create custom text and place it on a template](/docs/generate-document)
## Improvement to Stopping instances using Routing
We're improving how the system handles stopping instances:
* When **Stop instance** is selected in a decision step or routing field, the instance status will now be stopped (not completed).
* The step status will be declined, but other steps will stay unchanged.
* The API response of a routing-triggered stopped instance will contain the aborted time (not completed time)
## Number form field for all sorts of numbers
We're excited to introduce a brand-new form field type: the **Numbers Field**!
This lets workflows collect actual numeric values, which means numbers can now be used more reliably across the product for sorting, filtering, and calculations. The field enables you to do customizations:
* Choose whether to show decimals
* Set thousands/decimal separators (e.g., 1,000.00 vs 1.000,00).
## Upload files and images to tables
Users can upload (or drag and drop) one image or file per cell. For images, a thumbnail preview appears right in the cell for easy reference.
It's a great improvement for processes that involve collecting visuals or documents from users.
For details, see [Tables](/docs/tables-forms)
## Datasets
Datasets let you store large data tables directly in Next Matter, making it the single, central place for managing and using data. You can turn data columns into single-select dropdowns and easily share the same dataset across multiple users and workflows.
For details, see [Data sets](/docs/data-sets)
## Copy and paste images into conversations
Now if any workflow is causing issues, simply screenshot it, copy the pic, and CTRL + V it into the conversation window. Effective conversations sometimes require only a second!
## Date field for tables
We've just introduced a new input type to the table form field - date fields!
Builders can now easily collect date inputs from users through a user-friendly date picker directly within the table. This is perfect for workflows that require tracking of due dates, scheduling, timelines, or any other time-based data.
## Smarter task assignments with automated delegation
When a step is assigned to a team, it lands in the Next Matter team inbox, where any team member can pick it up. But what if certain tasks should always go to the same person, or never to the same person?
With automated delegation, you can:
* Ensure continuity by assigning related tasks to the same user.
* Enforce security or approval policies by preventing the same user from completing certain steps.
Set it up once, and let your workflows run smoothly! 🎯
## Validation rules for Date input
Builders can now define validation rules for Date fields to restrict input to specific ranges. These rules help ensure that entered dates meet important criteria based on the step or instance context.
Examples of supported rules:
* Date must be after the instance start
* Date must be before the deadline of a specific step
* Date must be at least 18 years ago
* Date must be no more than 5 days after the step activation time
For details, see [Field validation](/docs/field-validation)
## New in table form Fields: Long text inputs!
We've just added a brand new input type to the table form field: long text fields!
This update allows teams to collect more detailed responses from end-users — perfect for structured notes, rich descriptions, or multi-line inputs.
✨ Key Benefits:
* More space for writing: Supports line breaks (`Shift + Enter`) for better formatting
* Improved readability: Wider and taller input fields
* Auto-wrapping: Reviewers can read full content at a glance without scrolling
* Newlines (`\n`) from external data sources are respected (following JSON standards)
## Quick action hashing feature
This new quick action allows you to concatenate multiple strings and generate a secure hash of the combined result. Hashing is essential for password storage, data integrity, and digital signatures, ensuring security while optimizing storage and retrieval speeds. It can be used to:
* Securely store user credentials
* Verify file authenticity and prevent corruption
* Ensure document authenticity
* Speed up database queries with unique identifiers.
* For details, see [Generate hash](/docs/generate-hash)
## Get full control over tables with the new Read-only option
Easily set tables to read-only mode when you need to display data for review while preventing edits. This feature is perfect for workflows where viewing information is essential, but updates must be restricted at specific steps.
The feature is available for both: predefined and dynamic tables.
Read more about [tables](/docs/tables-forms)...
## More flexibility in selecting folders for SharePoint no-code steps
We've updated the **Upload file to SharePoint** operation to give you more freedom when selecting the upload folder. Now you can:
* Select a SharePoint folder from the drop-down list. The list will show all the folders you have access to.
* Type a folder ID or select a data reference for the folder.
✨ **Use case**
📂 File management: Upload a file into a dynamically created folder in the workflow. Since the folder is generated on the fly, a data reference ensures the file is placed in the correct location automatically.
Learn more about [the integration](/docs/connect-to-sharepoint-no-code#upload-files)...
## Reporting made easy
If you were looking for a workaround to export instance or step data, look no further. Now, you can quickly do it with no-code Next Matter action. You can configure every detail of the export and display the data on your own custom template.
Learn more about [Next Matter actions](/docs/next-matter-actions)...
## Same deadlines? Copy them across steps and save time!
If you enjoyed our Import conditions feature, you'll be happy to hear we've added a similar option for deadlines and reminders. Now, you can effortlessly copy deadlines across steps without the hassle of setting them up individually every time.
## Can't mess around with tables!
Now, you can ensure that users fill the tables with the expected content. The trick is to restrict the content to only allow a specific type of content in the columns. You can also help users by prefilling values so all they need to do is review them.
[Learn more...](/docs/tables)
## Get all Zendesk ticket details in one easy no-code step
Want to reuse Zendesk ticket data? Nothing simpler - use the new Get ticket no-code step and provide the ticket ID. We'll pull all the data from the ticket, which you can turn into reusable chunks!
[Read more...](/docs/connect-to-zendesk-code-free#connect-to-zendesk-code-free)
## Deactivated users
Now, when users leave your organization, they appear as Deactivated users on specific steps (including started and completed steps) and started and completed instances.
## Improved handling of integration step response variables and webhook trigger variables
We've improved the management of integration step response variables to enhance consistency and minimize errors. Here's what's new:
**Improved formatting**: Response variables from webhook triggers and integration steps now display without \[] brackets in JSON format, making it easier to use the values directly without requiring additional formatting.
These changes streamline your workflows and reduce the risk of errors when working with response variables.
## Phew! No more deadlines on public holidays (unless you decide so)
You can now include and exclude specific days from deadlines to fit your organization's working schedule. Don't want to bother people with deadline messages arriving over the weekend? No problem — simply exclude Saturdays and Sundays from the deadline schedule. The same goes for public or even regional holidays!
You can also apply the rule to scheduled steps so they start when it's most convenient!
[Read more...](/docs/deadlines-and-reminders#set-up-a-deadline-and-reminders)
## Make things clear with attachments
Want to show an image in a comment or a conversation? Or maybe you need to add a document to back up a review? Or, as a builder, you need to add a file to clarify instructions for end users? We've got you covered here - now you can upload and attach files to conversations, feedback comments, and instructions.
# Freshdesk sidebar
Source: https://help.nextmatter.com/docs/Freshdesk-sidebar
Sidebars help you display Next Matter inside your service tool.
Switching between tools and tabs is inefficient and mistake-prone. If your teams use Freshdesk to resolve issues, they can open Next Matter inside the app. This way, teams can find the right workflow in seconds, link workflows and conversations, and trigger actions in 3rd party tools.
Visit the [Freshdesk site](https://www.freshworks.com/apps/next_matter/) to get the widget.
### Watch a detailed overview
# Front sidebar
Source: https://help.nextmatter.com/docs/Front-sidebar
Sidebars help you display Next Matter inside your service tool.
Switching between tools and tabs is inefficient and mistake-prone. If your teams use Front to resolve issues, they can open the Next Matter app. This way, teams can find the right workflow in seconds, link workflows and conversations, and trigger actions in 3rd party tools.
Visit [Front Marketplace](https://front.com/integrations/next-matter) to get the widget.
### Watch a detailed overview
# SCIM
Source: https://help.nextmatter.com/docs/SCIM
Manage users with SCIM.
SCIM is available for customers on the Enterprise plan.
## What is SCIM?
The System for Cross-domain Identity Management (SCIM) is an open standard for managing user identity information.
Its primary purpose is to simplify user provisioning by enabling centralized control and automation of user account lifecycles, from creating to updating to reading and deleting user identities.
## SCIM and Next Matter
When you use SCIM provisioning with Next Matter, user data is regularly synced from your identity provider to Next Matter.
You can connect to all major identity providers (such as Okta, Microsoft Entra, or OneLogin) and major HR systems (such as BambooHR, Workday, or Rippling).
With SCIM provisioning, users will be listed in the Next Matter app (in **Company > Colleagues**) with a label showing that they've been provisioned through SCIM.
You can provision the following user data:
* Email address (Next Matter username)
* First name
* Last name
* role within the organization
You can also provision this team data:
* team name
* team membership
Once provisioned, you can't change this data in the Next Matter app. Additionally, if a SCIM-managed user leaves a company, you can only deactivate this user in SCIM.
You can still add and manage users and teams manually if you need to. These users and teams will get the Next Matter label indicating that they're managed in the Next Matter app.
### Roles and teams
By default, SCIM-provisioned users will be assigned the Next Matter light user role during sync, unless configured otherwise. You can always update the role directly in SCIM.
* Light user - this role has access to the inbox, portals, and the workflows shared through portals. Light users can also view the status of their requests and monitor their progress.
We map SCIM groups onto Next Matter teams. If an appropriate team doesn't exist in Next Matter, we create it and mark it as SCIM-managed. You can only add or remove users from that team through SCIM.
## SCIM setup
1. Contact the Next Matter support team and give them the email address of the SCIM directory admin. We'll send the SCIM configuration link to this person.
2. Click the link and follow the configuration wizard to add SCIM to your identity provider and map your user data to Next Matter.
3. Let Next Matter support know you're done and we'll finish the sync for you.
# Zendesk sidebar
Source: https://help.nextmatter.com/docs/Zendesk-sidebar
Sidebars help you display Next Matter inside your service tool.
Switching between tools and tabs is inefficient and mistake-prone. If your teams use Zendesk to resolve issues, they can open Next Matter inside the app. This way teams can find the right workflow in seconds, link workflows and conversations, and trigger actions in 3rd party tools.
Visit [Zendesk Marketplace](https://www.zendesk.com/marketplace/apps/support/992085/next-matter/?queryID=c23fcc63f978b2194e42c1eb5b772ad5) to get the widget.
### Watch a detailed overview
## Sidebar and cookies
Next Matter sidebar relies on cross-domain communication to run properly. If you experience issues logging in to the sidebar or the Zendesk ticket number is not being added to the instance as a tag, it might be because the browser blocks third-party cookies.
To troubleshoot, do the following:
* **Chrome**: Settings > Privacy and security > Third-party cookies > Allow third-party cookies
* **Firefox**: Settings > Privacy & Security > Enhanced Tracking Protection > Custom > Uncheck "Cookies"
* **Safari**: Preferences > Privacy > Uncheck "Prevent cross-site tracking"
* **Edge**: Settings > Cookies and site permissions > Manage cookies > Allow third-party cookies
# Forms and form fields
Source: https://help.nextmatter.com/docs/about-actions-and-action-types
Forms are detailed tasks required to complete a step. The form field might be to enter customer address or select a meal type from a dropdown. Each step can consist of multiple mandatory or optional form fields.
To cater to all types of data you might want to gather, there are multiple form types. For example, if you want to report a bug, You might want a user to enter a summary (short text input form field), describe a bug (long text input form field), select if the bug happened on mobile or desktop (radio form field), and possibly upload a screenshot (image upload form field).
This is what the user sees when they fill in such a workflow instance:
## Form configuration
You can work with form field configuration when you click on a step and add a form field.
To configure form fields, do the following:
1. Go to **Workflows > Edit workflow**.
2. Click **Add step**.
3. Select **Form**.
4. Click **Add form field**.
5. Click the settings icon to add placeholders for fields or labels (step titles), and make the step optional.
By default, form fields are required. If you want a field to be optional, you need to select **Optional** in the **Settings**.
There are also options to copy the form field ID, copy the form, move it (for example to a different step), and delete it.
Setting form conditions works in the same way as step conditions. For details, see [Set conditions to a step](/docs/set-conditions-to-a-step).
## Edit a form field
After you've completed a form, you can still edit the fields if you're an admin or a user assigned to the step or if the step has been delegated to you.
If you go to the step (by following a link in the email), you can click the pencil icon, update your field data, and save your changes.
Notes:
* You can edit the step if the workflow hasn't been completed.
* If there are conditions related to the step or any other dependencies that have already been completed, updating the field doesn't change them.
* You can't update the completed step using the API.
## Create forms in multiple languages
You can add translations to your forms. This is what you need to do:
1. Create a form in English (the default source language).
2. Add translation languages in Next Matter.
3. Translate the form into the languages you've selected.
The form will automatically display in the user's browser language when available. For example, if you've enabled German and the user's browser is set to German, they'll see the German version. Otherwise, the form falls back to English.
### Add translation languages
1. In your form, click **Add translations**.
2\. Select the languages you want the form to be translated into.
3\. Save your changes.
4\. Select a translation language from the dropdown.
5\. Translate your form.
You can translate labels, placeholders, dropdown items, radio items, routing buttons, and table content.
6. To add more translations, select another language from the dropdown and repeat the translation process.
You can only edit conditions applied to form fields in the default language. To edit, change the language to English in the **Edit translations** dropdown.
# About step assignees
Source: https://help.nextmatter.com/docs/about-assignees
Decide who should be responsible for the step.
In Next Matter, every step in a workflow needs to be assigned to someone who should be responsible for completing it. This person (or team) is called the assignee.
You can assign steps statically or dynamically based on data (so you can have a fixed assignee or decide on the assignee based on rules or conditions).
**Types of Step Assignees**
1. Internal users
* Specific user
* Team (any team member can complete it)
2. External users - someone outside your organization (such as a customer or vendor) who needs to submit a form or upload a file. Such users will get an external link to use without any login.
3. Conditional or dynamic assignment - users are assigned at the workflow start or their selection is based on conditions.
**Where to configure this?**
In the workflow builder:
1. Select a step
2. Go to the **Assignee** selection dropdown.
3. Select the assignee.
You can use the out-of-office setting to update assignees when the original one is away. [Learn more...](/docs/set-out-of-office#out-of-office)
# Integration types
Source: https://help.nextmatter.com/docs/about-integrations
Next Matter can integrate with any system through integration steps, for example, to retrieve data and use it further in a process or to update data in a third-party system.
You can only connect integrations if you are a Next Matter admin.
Next Matter and an external application connect using HTTP requests. Each request is a step in Next Matter, called an integration step.
There are two types of integrations:
* **No-code integrations**: These integrations must be connected in the Next Matter portal in Automations library. When connected, you can select them directly as an Integration step, and in some cases, you might only need a few JSON details to configure the step.
* **Custom integrations**:
* **Advanced**: You will find them in the Next Matter portal in Automations library. These integrations require you to give the 3rd party tool access to Next Matter, share login credentials when you connect them, and provide the **endpoint and JSON request body** when you use them in workflows. You will find database integration in this category, too. These integrations require you to enter a few more data items such as port, username, and password, and database hostname to connect.
* **Pro**: These integrations require authorizing your API calls with 3rd party-generated **credentials**. It might be the API key or basic authorization. You can provide the authorization details when you configure the custom integration step in Next Matter alongside the **endpoint URL and JSON request body**. You can also make calls to Next Matter API. This will also require you to authenticate your call - this time with the Next Matter API key you can generate in [Company > Next Matter API keys](https://app.nextmatter.com/app/workspace/nm-api-keys).
Ensure you have permissions to generate authentication credentials in Next Matter and the external app. If not, your company admin should be able to provide those.
## No-code integrations
How to connect an integration
1. In the main navigation, go to **Automations library**.
2. Open the **Integrations** tab.
3. Search for your integration.
4. Click **Connect** in the integrations tile.
5. Provide the required data or consent to the app sharing data with Next Matter.
(Custom - Advanced only) When connected, the app shows in the **Authorization** dropdown inside any **Custom integration** step. Select the connected app so as not to authenticate every call you make.
#### Users and authentication
The authorization rights for the entire Next Matter workspace are tied to the user who is used to make the integration connection. For example, if you authorize Google Sheets, then Next Matter will ask you to select a user for the Google Sheets connection. As a consequence, Next Matter can interact only with the sheets to which this user has access.
Some companies create an email address and a user for all Next Matter system integrations, for example, [nextmatter@company.com](mailto:nextmatter@company.com). That way, it's easier to manage system access rights across all Next Matter workflows.
Any admin can disconnect the integration. Workflows that use integration steps with that integration will no longer work until reconnected by an admin.
1. In the main navigation, go to **Automations library**.
2. Open the **Integrations** tab.
3. Search for your integration.
4. Click **Disconnect** for an integration.
## Custom integrations
Custom integrations are used to connect several 3rd party tools that use REST API, or to call [Next Matter API](/reference/intro/getting-started). Normally, these integrations are added and configured as you build a workflow as a custom integration step. With Custom integrations, you can connect most external tools and are not limited to the ones that you can connect within Next Matter.
You can connect some custom integrations, such as PostgreSQL or Microsoft OneDrive, directly in Next Matter. If the integration you need is not on the list, you can connect it when you build your workflow.
To use custom integrations that you can't connect directly in Next Matter, you'll need the 3rd party app's API key. If you're not an admin, you can ask your IT department to generate those for you.
1. In the main navigation, go to **Automations library**.
2. Open the **Integrations** tab.
3. Search for your integration.
4. Click **Connect** in the integrations tile.
5. Provide the required data or consent to the app sharing data with Next Matter.
#### Users and authentication
The authorization rights for the entire Next Matter workspace are tied to the user who is used to make the integration connection. For example, if you authorize Google Sheets, then Next Matter will ask you to select a user for the Google Sheets connection. As a consequence, Next Matter can interact only with the sheets to which this user has access.
Some companies create an email address and a user for all Next Matter system integrations, for example, [nextmatter@company.com](mailto:nextmatter@company.com). That way, it's easier to manage system access rights across all Next Matter workflows.
Any admin can disconnect the integration. Workflows that use integration steps with that integration will no longer work until reconnected by an admin.
1. In the main navigation, go to **Automations library**.
2. Open the **Integrations** tab.
3. Search for your integration.
4. Click **Disconnect** for an integration.
To use such an integration when building a workflow, do the following:
1. In your workflow, click **+ Add step**.
2. Select **Integrations > Custom integration step**.
3. Click the step in the left-hand navigation and then click the cog wheel to configure the step.
4. Provide the required details:
1. (1) The API method and the URL of the endpoint you're calling. You might want to check the 3rd party developer documentation for the URL details.
2. (2) Headers
3. (3) Authorization header: it can be basic authentication or a token. You need to generate the details in the 3rd party app.
If you've connected the app directly in Next Matter, select the connected app from the Authorization dropdown. No additional authorization is required.
4. Payload (body of the request in JSON format): you might check the 3rd party developer documentation for any required parameters.
## Test integrations
When you create an integration step, it's a good idea to test the integration first before running the workflow instance.
1. Click **Test Integration**.
2. Use the generated test values or replace them with your own.
3. Click **Start Test** and see if it gives you a correct response. If not, you can always reconfigure the step and retry it.
4. When you get a positive result, click Done and work on the rest of the workflow.
## Integration responses
Use the integration step response to troubleshoot failed steps or to extract specific variables (using JSONPath). To see the response body, click **Show details**.
Note that we only show responses up to 32KB. Larger responses are not shown, and an error "Response Body Size exceeded" is displayed. However, you can still use variables referencing the response details, or even the entire response.
## Skip failed integration steps
When you configure an integration step, you can decide what to do if the connection fails. You can either:
* decide to skip the step and let the workflow continue
* pause the workflow at the step allowing the admin an option to skip or retry the step. A failed step will automatically send the admin and the tech lead notification to their Next Matter inbox.
### View the original call body of a skipped integration step
When an integration step is skipped due to an error or by mistake, the step may appear greyed out, making it hard to investigate further. A potential improvement would be the ability to directly view the original call body for skipped steps. However, here's a quick workaround:
Inspect the skipped step:
1. Right-click on the greyed-out step in your browser.
2. Select Inspect to open the developer tools.
3. Remove the following class: `
`
When the class is removed, the full details of the skipped step (including the call body) should be visible. Use this information to manually re-trigger the API call.
## Templates
Templates are ready-made custom integration steps that are displayed in your workflow.
To use a template, in your process click **+ Add step > Templates > 3rd party templates** and pick a template you want to use.
When you have the template in your workflow, click **Settings** for every step it created and configure it. In most cases, you'll need to enter the details in the placeholders in the **Body** of the step.
It might also happen that a placeholder can be replaced by a data reference of the data provided in one of the previous steps. To learn more about data references, see [Data references](/docs/use-data-references).
# Workflow visibility
Source: https://help.nextmatter.com/docs/about-visibility-and-permissions
Visibility and permission settings help you manage access to workflows. For example, the accounting team might not need to see the workflows of the sales team. Alternatively, you might want only yourself and a handful of people to be able to see certain workflows.
## Visibility hierarchy
The visibility settings are organized hierarchically in the following top-down structure: Folder > Workflow > Instance. This means that public workflows in a private folder can only be viewed by those who can access the folder.
Additionally, the organization admin has the whole permission set.
## Folder visibility
Folders are the best way for you to organize your workflows. By adjusting the visibility rules, you can make folders visible for teams or colleagues that you select. Folders can be either:
* **Public**: all colleagues can see this folder and the public workflows that the folder contains
* **Private**: only the admins, the folder owner, and the colleagues and teams who have access can see this folder and its public workflows
**Note:** After selecting **Private**, you can then select the people you specifically want to share this workflow with. Other colleagues, who are involved with workflows within a private folder, can only see the workflows in which they are involved.
Description: For sensitive workflows (e.g., HR), "public process, private instance" still gives admins permission to see private instances, even though they are not involved.
1. Can we make this clearer in our help center?
2. Is it possible to create a category of stricter visibility settings, wherein instances are even hidden from admins if they are not involved?
## Workflow visibility
Workflows can be one of the following:
* **Public with public instances**: all colleagues and invited external collaborators can start this workflow, see all its instances, and the information in the workflow
* **Public with private instances**: all colleagues and invited external collaborators can start this workflow, but its instances are only visible to those who are involved in them
* **Private**: only admins, the process lead, and colleagues involved with this workflow (by being assigned to one of the steps) can start it and create and view its instances. If you create a private workflow, only you and the admin can edit and delete it.
You can further restrict access by managing which teams have access to the folder the workflow is created in.
### Workflow permissions
You and all your colleagues can view and create workflows, regardless of which team you belong to.
However, only admins, workflow leads, or workflow editors can change or delete workflows. Workflow leads are normally the point of contact for escalations and questions. If the lead is only a business owner, the tech lead can be assigned. In this case, the tech lead will receive notifications when steps fail.
You can find the workflow lead when you open the workflow to view its details. For more on workflow and tech leads, see [here](/docs/workflow-lead-and-tech-lead).
Only administrators can change workflow leads.
| Role | View private workflow | Create instances of private workflow | Change private workflow | Delete private workflow | Receive email escalations when a step fails | Start a workflow in a portal |
| :--------: | :-------------------: | :----------------------------------: | :---------------------: | :---------------------: | :-----------------------------------------: | :--------------------------: |
| Admin | ✅ | ✅ | ✅ | ✅ | | ✅ |
| Lead | ✅ | ✅ | ✅ | ✅ | ✅ (if tech lead isn't set) | |
| Colleague | ✅ | ✅ | | | | ✅ |
| Light user | | | | | | ✅ |
## Instance visibility
Instances can be one of the following:
* Private
* Public
To further restrict access to instances, you can do one of the following:
* Leave the workflow public, but make instances private. This way, anyone with access to the workflow can start an instance, but only colleagues specifically involved in the instance (having a step actively assigned to them or their team) will be able to view it.
* Set the workflow private. This way, only the workflow lead and colleagues involved in the workflow will be able to start and view the instance.
Note that when you have a public workflow and a private instance, the admin will still be able to see the instance even if they are not involved.
### Instance permissions
Instances of a workflow can be started by any colleague that can view the workflow.
When an instance has been started, it can be changed and deleted only by the process lead and workflow instance lead (the user that started the instance). Only the workflow lead can skip steps or delegate steps within the workflow.
| Role | View private instance | Start private instance | Change private instance | Delete private instance | Skip a step | Delegate step |
| :-----------: | :-------------------: | :-----------------------: | :---------------------: | :---------------------: | :---------: | :-----------: |
| Admin | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Workflow lead | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Instance lead | ✅ | ✅ | ✅ | ✅ | | |
| Colleague | ✅ | ✅ | | | | |
| Light user | | ✅ (if shared in a portal) | | | | |
## Step visibility
For your team and colleagues to see a step, you need to specifically give them permission to do so.
If you don't set the permissions, no one else will be able to see the step. Administrators won't have permission to see the step either.
If you have a step assigned to you, you become this step's owner. You will see an overview of the steps that are assigned to you or your team in your Next Matter inbox. You can also receive email notifications reminding you about open steps.
# Add and run custom code
Source: https://help.nextmatter.com/docs/add-code
Add a code script to your workflow and bridge the gap between standard automation capabilities and bespoke business requirements.
Code steps allow you to fully customize your workflows and tailor them to meet the needs of your business.
This is a pay-per-use feature. Contact us to have it enabled.
Benefits of using the custom code:
* **Custom scripts**: Write JavaScript to run custom logic or operations not supported by standard Next Matter integrations.
* **Data transformations**: Transform, format, or modify data from previous workflow steps to meet specific requirements.
* **Variable support**: Use variables to store and re-use data within your scripts
* **Data references**: Quickly find and add data references from previous steps to your script
## Add Node.js code
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Click the **Quick action operation** field and select **Node.js script**.
5. Enter your script as a string making sure it returns results in JSON format. Note that we automatically wrap the code in the async function so that you can use keywords such as `await` and execute code that doesn't block the main thread.
6. (Optional) In **Select data to reuse**, you can select `result` to use as a variable in later steps.
7. Save your changes.
Currently, we don't highlight or format code.
# Comments in steps
Source: https://help.nextmatter.com/docs/add-comments-to-a-step
You can create a step that allows workflow users to leave comments.
There are different ways in which you can get feedback on the workflow.
* If you're building a workflow, you can add [building notes](/docs/add-notes-to-process)
* If you want your internal workflow users to chime in, they can ask questions or add comments in [Conversations](/docs/learn-next-matter-as-process-participant).
However, you can also add a comment field as a separate and optional form field. This way, even if you assign the step to an external user, they'll be able to add notes or comment on a workflow.
1. Click **Workflows**.
2. Click **... > Edit workflow** for the workflow you want to edit.
3. Click the step to which you want to add the commenting option.
4. Click **+ Add form field** and select **Text Input**.
5. Click the **Settings** icon on the form field.
6. Rename the field to Comment or Note and make it **Optional**.
7. Click **Save changes**.
The added notes become part of the workflow and are visible to everyone even after workflow completion.
When you run an instance of the workflow and click **Save** instead of **Complete**, then the comment is saved and visible the next time you work with the workflow.
# Notes in workflow
Source: https://help.nextmatter.com/docs/add-notes-to-process
Capture all back-and-forth messages around the design and building of a workflow and keep them as documentation in builder notes.
You and your team can leave multiple notes. They can be assigned to a step or collectively listed in a workflow overview. Builder notes can be used for idea exchange, but you can also make them required and assigned to a team member for completion.
## Add builder notes
1. Open **Workflows**.
2. Click a workflow to see its overview.
3. In the **Building notes** section, click **Create new**.
4. Enter the title of the note. You can also do one of the following:
* Tag a person or a team you want to get involved. To tag, just type @ and start typing the name. The person will be notified by email.
* Tie a note to a specific step.
* Make the note required before the workflow can be set to live so that the note displays as a **must-have** for the workflow. The note will only disappear if you mark the note as completed.
5. Click **+ Create**.
The notes will be added to the workflow. You can see all of them in the **Building notes** section of the **Workflow overview**. By default, we show the open notes. To see the open and the completed notes, click **Show completed**.
If you can't immediately see the building notes in the workflow overview, click the edit icon for the workflow. You can also see all workflows that have must-have notes in the **Roadmap** tab.
## Completed and open notes
Notes are displayed under the step they belong to. Open notes have an orange background, and the completed ones are green.
Even if a note has been completed, you can reopen it and resume the conversation.
To reopen a note:
1. In **Building notes**, click **Show completed**.
2. Click **Show more** on the note you want to reopen.
3. Click **Reopen building note**.
4. Type your message.
If your workflow goes live and you need users to comment on an instance, they can do it by starting a conversation.
# Analyze text and images code-free with AI
Source: https://help.nextmatter.com/docs/analyze-text-code-free-with-ai
Use our no-code step to analyze, generate emails, forms, or chat replies, and process images.
## Before you begin
* In your Next Matter portal, go to **Automations library**, click **Connect** in the **OpenAI** app tile, and enter the OpenAI API token to connect.
## Use the integration
### Analyze or generate text
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > OpenAI**.
3. Click the step and click **Configure integration**.
4. Select **Process/generate text with AI** in **OpenAI action**.
5. Enter the prompt and select the AI model and the output type.
6. (Optional) If needed, you can tweak the request by providing data in the **Advanced AI configuration** dropdown.
7. Select the output text as a variable you can refer to later on.
8. Save your changes.
#### Use cases
* You can use the no-code step to, for example, analyze customer emails for the support team, surface the email's main points, and measure the sentiment.
* You can analyze customer emails to automatically input data into insurance claim forms that customers can review and confirm.
### Process images
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > OpenAI**.
3. Click the step and click **Configure integration**.
4. Select **Process images with AI** in **OpenAI action**.
5. Enter the prompt and select the AI model and the output type.
6. Select the data reference to the images uploaded in any of the previous steps. Currently, we don't support files in PDF.
7. (Optional) If needed, you can tweak the request by providing data in the **Advanced AI configuration** drop-down. Tip: You can use floats to define Temperature but make sure to use "," (comma) instead of "." (point) for the German/ European lokale.
8. Select the output text as a variable you can refer to later on.
9. Save your changes.
Make sure the images do not exceed 30 megapixels each. Large images might cause the step to fail.
# API keys and credentials
Source: https://help.nextmatter.com/docs/api-keys
As an admin you can create and manage your Next Matter API keys and use Next Matter API to integrate with third-party systems.
## Create an API key
If you have API keys that were generated for you by our Support team, they will show up on the list of active keys.
You can only create and manage keys if you're a Next Matter admin.
1. Go to **Company > Next Matter API keys**.
2. In the top-right corner, click **+ Create API key**.
3. Enter the name for the key and select the user to whom the key will be assigned.
4. (Optional) To set the expiry date for the key, select the **Add expiry date** checkbox and select the date and time. If the expiry date hasn't been set, the key will not have a default expiry date.
The date and time are displayed in the timezone of the browser.
5. Click **Create API key**.
6. Copy the key and click **Done**.
You can always update the expiry date for the key even if the key has already expired. Click **Edit** for the key and enter a new date.
## Update a key
You can re-assign the key to another user or update the expiry date. To update the key, click the pencil icon and edit the data.
## Delete or revoke key
To delete or revoke a key, click the **...** (three dots) to the right of the key data and select the action. Before you delete or revoke, ensure there is no integration using this key. Otherwise, the integration step will fail.
Once you revoke or delete the key, you can't activate it again.
## Public API and rate limiting
You will find the list of parameters for the Next Matter API calls [here](/reference/intro/getting-started).
Due to rate limiting, you can make a maximum of 100 requests per minute.
Note that not all the actions available in the UI are available in the API. For example, you can only edit a completed step or import conditions using the UI.
## Custom credentials
To ensure credentials are secure and encrypted and maintain compliance, we can store your organization's access credentials that you **use for custom integrations** in an encrypted database. We can store the following credentials for you:
* Basic: username and password
* Bearer: token
* API key: API prefix and token
We don't support credentials that use HTTP body or query parameters.
To add custom credentials:
1. Go to **Automations library**.
2. Open the **Custom credentials** tab.
3. Click **+ Add new**.
4. Select the type of credentials to add and add your credentials.
**Tip**: Add a meaningful name to your credentials. This will help you recognize them in the **Authorization dropdown**. Note that the name must stay within the 100-character limit, and the description shouldn't exceed 500 characters.
5. Click **Add and activate**.
Custom credentials will be available in the **Authorization dropdown** when you configure your custom integration.
You can deactivate the credentials when needed. Once deactivated, the credentials will no longer appear in the **Authorization** dropdown.
**Important**: Update all integrations that use these credentials, as they require active credentials to function properly.
# Steps for external users
Source: https://help.nextmatter.com/docs/assign-a-step-to-external-user
Processes can span outside organizations, and in some cases you might need to assign a step to a supplier, customer, or any other external party.
If you want an external user to start the workflow (for example, by sending some data), see [Public forms](/docs/let-an-external-user-start-a-process).
## Setup overview
1. **Setup access**: Select a step that needs to be completed by someone outside of your organization (“external user”).
2. **Share access**: Share a unique access link with the external user. The link is a unique one-time link that expires when the workflow completes. If required, you can add an additional identification safety question to the step (such as the date of birth or user ID).
3. **Receive results**: External users open the step with a link on desktop or mobile and enter the required data. They can access the entered data as long as the process instance is in workflow, however, they can't edit it. When the workflow instance is completed, the link expires.
## Watch a video tutorial
## Create a form step and assign it to an external user
If you have an automation set up with Next Matter, the external URL for the user will automatically be generated and entered into the automation step.
If you don't use any automation and want to send the link to the external user yourself, you can also do it.
In this example, a senior recruiter wants to wants to follow up with a candidate found by a junior recruiter. She creates a workflow to send a task and collect some additional data from the candidate. The process is as follows:
1. Create a task for the junior recruiter to enter the candidate's email and the test file.
2. Create a step to send the public URL to the candidate. To do so, add a form step and click **+ Add form field > Instruction**. Click the settings icon to configure the instruction as follows:
3. Create a step assigned to an external user. In this step, the user needs to download the text and upload the result.
Now you can share the link with the user. When they click **Complete** on their task, you'll see the results in your Next Matter instance.
# Microsoft authentication
Source: https://help.nextmatter.com/docs/authenticate-with-microsoft
Set up Microsoft SSO to speed up logging in.
We only support SSO logins with Microsoft Entra ID accounts. We no longer support logging in with Microsoft personal accounts.
## Setup
To set up the SSO:
1. Learn more about the [default scopes required by Graph API](/docs/security-matrix) to connect Next Matter to Microsoft.
2. Provide Next Matter with Tenant ID.
3. Grant admin consent for Next Matter.
### Provide Tenant ID
To set up Microsoft SSO, you need to **provide us** with `Tenant ID`(also known as `Directory ID`) that you can find in your Azure Portal. The tenant ID is a unique identifier for your organization's Azure instance. Note that we use OpenID Connect, both for SSO and Graph API. **Pass the Tenant ID to your Next Matter account manager** so that we can whitelist it on our end.
We can only assign one tenant per workspace.
Find the Tenant ID in the portal
1. Go to [https://portal.azure.com](https://portal.azure.com) and sign in with your admin account.
2. Go to the Microsoft Entra ID service from the left-hand side menu or search for it in the search bar.
3. On the Entra ID overview page, you'll see your tenant information, including the Tenant ID (also referred to as the Directory ID). Alternatively, you can use [this link]() to open the overview page directly.
4. Make sure the email field on the Entra ID account is set and matches the email address of the user in Next Matter.
Get Tenant ID using CLI or Powershell
```Text Bash theme={null}
az account show --query tenantId -o tsv
```
```powershell powershell theme={null}
(Get-AzContext).Tenant.Id
```
If you have access to multiple tenants, make sure you are checking the tenant ID for the correct tenant.
Note that the initial authorization is done using the OAuth2 flow, and then we request additional scopes for each connected Microsoft service.
### Grant admin consent
When setting up SSO, the organization's Global admin will also be prompted to grant admin consent to the Next Matter app in Entra ID. The permissions required include:
* Reading user profile
* Accessing email data
* Directory read access.
You can provide the consent in one of three ways:
1. Approve all requested permissions.
1. Log in to **Entra ID (Azure Portal)** and go to **Enterprise Applications > All applications**.
2. Search for Next Matter and click it.
3. Click **Grant admin consent for Next Matter** for the required permissions.
2. Approve login attempts as they come.
1. Go to **Entra ID > Overview > Sign-ins**.
2. Search for the Next Matter login attempt.
3. Review the details of the login and provide consent directly.
3. Approve all permissions through Next Matter.
1. Log in to Next Matter with a user that has Azure Admin privileges using Microsoft SSO.
2. When prompted, provide consent on behalf of your organization.
Granting admin consent means that Next Matter has the necessary permissions to interact with your Azure tenant as specified, and users won't be prompted to grant individual permissions when using Next Matter.
We can't enforce specific login methods for users.
# Automated delegation
Source: https://help.nextmatter.com/docs/automated-delegation
Decide who should or should not be assigned the task within a team.
When a step is assigned to a team, it lands in the Next Matter team inbox, where any team member can pick it up on behalf of the team. However, specific scenarios require the task to be completed by the person who completed another step or, if checks are in place, should not be completed by the same person.
With automated delegation, you can do the following:
* Delegate steps to the same user: This is useful when you need the same person to continue with sequential tasks that they have already started.\
**Use case**: User A is part of a team. The team is assigned steps 1-5 of a workflow. User A takes over step 1. Steps 2-5 are now automatically delegated to User A as well. The steps continue to appear in the team inbox.
* Prevent the same user from taking over a step: This is useful when the same person can't review their own work (a robust 4-eye or 6-eye workflow)\
**Use case**: The Approvals team is assigned to steps 2 and 3 of a workflow. Step 2 contains information to be reviewed. Step 3 contains the same information, this time for a second review. User B takes over step 2. User B should not be able to take over step 3, even though they are a part of the Approvals team. The steps continue to appear in the team inbox.
To use automated delegation:
1. Open the step in a workflow.
2. Open the assignee dropdown and select Automated delegation.
1. Assign the step to a team, and enter your rules for the delegation by selecting the reference from the dropdown. For example, you might want to prevent the step from being taken over by the user who completed step 1.
* **Delegate to user**: this option allows you to select a specific user or a data reference. For example, if you want the user who completed a form in step 1 to also complete the form in step 3, pick the \*\*User who completed \*\*option in the Step 1 data reference section.\
You can select one user or one data reference in this option.
* **Prevent users from taking over or being delegated tasks**: in this option, you can select multiple users and data references if needed. The selected users will not be able to take over the task, even if they belong to the team the task is assigned to. Additionally, the team lead will not be able to delegate the task to them when the workflow runs.
The rules also apply to delegating or taking over the step, and the user who is excluded from the step can't reassign the step to themselves.
The tasks with automated delegation are assigned to the team, and they get delegated to a specific user when the workflow runs.
2. Save your changes.
To update the selection, open the assignee dropdown again and modify the rules.
Automated delegation doesn't work with the [Out of Office](/docs/set-out-of-office) setting. Auto delegation ignores OOO settings intentionally - it assigns work based on the past work, so respecting OOO would send tasks to the wrong person.
# Branch your workflows
Source: https://help.nextmatter.com/docs/branch-flows
Make sure your workflows cater for specific scenarios
In Next Matter, you can branch workflows using routing, conditions on steps, or group and parallel steps.
## Routing
You can set conditions that determine which path a workflow takes. This is typically done using the "Routing" step and helps manage scenarios when approval is needed.
For details, see [Routing](/docs/routing).
## Conditions
In the workflow builder, you can add conditions to individual steps and skip or run steps based on the specified rules.
For details, see [Conditions](/docs/set-conditions-to-a-step).
## Group and parallel steps
You can nest group steps inside parallel steps, creating mini sub-workflows while maintaining a clear and transparent structure. Steps in groups can be assigned to different teams or persons, who can work on them in parallel.
We support 2-level nesting (1.0 > 1.1 > 1.1.1).
# Build teams
Source: https://help.nextmatter.com/docs/build-teams
Start setting up by creating users and teams in Next Matter.
In Next Matter you can add users manually or using SCIM (System for Cross-domain Identity Management).
To manage users, go to **Company** \[left-hand navigation bar].
## Create teams
1. Go to [Company > Teams](https://app.nextmatter.com/app/workspace/teams).
2. Click **+ Add team**.
3. Give your team a name.
Now you can start adding users to teams and assigning roles to users. These are the roles available:
* Admin - this is the power user that has access to the entire Next Matter app, and manages users and integrations
* Colleague - this is the full user who has access to the entire Next Matter portal apart from the **Company** settings and **Automations library**.
* Light user - this is the portal user who has access to portals and the workflows shared there, and the Next Matter inbox.
* Team lead - this is the user who has access to all workflows that the team has access to and can delegate tasks within the team. Normally, this user has the **Colleague** or **Light user** permissions.
* Team member - this is the user who has access to public workflows and the workflows they've been invited to within the team. Normally, this user has the **Colleague** or **Light user** permissions.
You can also assign tasks to **external users (guests)** who don't require any Next Matter user account or permissions. They can complete tasks (for example, fill in forms) that they see as an external page. You can send the link to the task in an automated email or as a [public form](/docs/let-an-external-user-start-a-process#create-a-public-form).
## Rename or delete a team
You can rename or delete a team in **Company > Teams**. Click **...** and select the action.
When you delete a team and there are active workflows with actionable steps assigned to the team, you need to re-assign these steps or complete instances to another team member. Any unassigned steps and active conversations also get re-assigned and displayed in the new assignee's inbox. Completed steps or instances don't get re-assigned.
Click **Delete team** and follow the prompt to select the right assignee.
| Task | Admin | Colleague (a team member assigned to a step) | Light user (portal user) | Team lead | Workflow lead |
| :--------------------------------------------------------------: | :------------------------------------------------------------------: | :--------------------------------------------------: | :------------------------------------------------: | :--------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: |
| View and start a private instance | ✅ | ✅ | Can start instances of workflows added to a portal | | ✅ |
| Edit and delete a private instance | ✅ | | | | ✅ |
| Skip or delegate a step | ✅ (they can delegate steps assigned to a team or a specific person) | | | ✅ (delegation is possible only if the step has been assigned to their team) | ✅ (delegation only possible if the lead is an admin, or a team lead and the step is assigned to their team) |
| Delete private instance | ✅ | | | | ✅ |
| View private workflows | ✅ | ✅ (if folder and process visibility allows it) | | | ✅ |
| Stop single instances | ✅ | ✅ (only if it's an instance they created) | ✅ (only if it's an instance they created) | ✅ ( only if it's an instance they created) | ✅ |
| Stop instances from the **Workflows > Overview** page | ✅ | | | | (not supported unless you're an admin workflow lead) |
| View details of a completed integration step | ✅ | ✅ (when they are also instance leads or tech leads) | | | ✅ (when the step fails and they re-claim it from the tech lead) |
| Edit workflows | ✅ | ✅ (if they are a workflow editor) | | ✅ (if they are a workflow editor) | ✅ |
| Duplicate workflows | ✅ | Only the processes they can see | | | ✅ |
| Create instances from private workflows | ✅ | ✅ | | | ✅ |
| Change and delete a private workflow | ✅ | | | | ✅ |
| Change workflow leads | ✅ | | | | |
| Connect and disconnect an integration | ✅ | | | | |
| Invite colleagues to Next Matter | ✅ | | | | |
| Create private and public folders and remove them | ✅ | ✅ | | | ✅ |
| Move workflows between folders (both public and private folders) | ✅ | | | | ✅ (only an admin lead) |
| Create teams and add and remove team members | ✅ | ✅ (add team members to teams they lead) | | ✅ | |
| Assign or remove the team lead status | ✅ | | | | |
| View portals | ✅ | | ✅ | | |
| Create/edit portals | ✅ | | | | |
| Test portals as a light user (Light user view) | ✅ | | | | |
| Start workflow from a portal | ✅ | ✅ (if added to portal) | ✅ (if added to portal) | ✅ (if added to portal) | ✅ (if added to portal) |
As an admin you can set roles for any user including yourself. Note that if you demote yourself to colleague, you cannot promote yourself back to admin level again.
If the person of workflow lead changes after an instance has been created, the new lead doesn't have the permissions to stop or delete this instance.
# Calculations and comparisons
Source: https://help.nextmatter.com/docs/calculations
Create steps in your workflow that allow calculations and comparing data.
## Calculating formulas
This operation allows you to carry out arithmetic operations.
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Click the **Quick Action operation** field and select **Calculate formula**.
5. Enter your formula. **Tip**: you can include numbers, text, operators, and data references (the values in input fields from previous steps)
* If you want to use the comparison result in later steps add the result variable in the **Response data for use in later steps**. The variable's value should be `$.result`
## Comparing formulas
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Click the **Quick Action operation** field and select **Compare formula**.
5. Enter your formula. **Tip**: you can include numbers, brackets, operators, and data references (the values in input fields from previous steps)
## Supported operations
### Calculating formulas
| | | |
| ---- | ---------------------------- | ---------- |
| - | add | 1+1 = 2 |
| - | subtract | 4-2 = 2 |
| / | divide | 4/2 = 2 |
| - | multiply | 2\*2 = 4 |
| \*\* | exponents (to the power of) | 3\*\*2 = 9 |
| % | remainder (amount left over) | 5%2 = |
### Comparing data
| Operator | Description | Expression example | Result |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| `==` | equals | `2==2` | True |
| `<` | less | `1<2` | True |
| `>` | greater | `1>2``{1. New form - Date Input - Date (plain)} (%s) > {Instance start time} (%s)` | False True (used to compare dates) |
| `<=` | less than or equal to | `2<=2` | True |
| `> =` | greater than or equal to | `1>=2` | False |
| `endswith` | Looks for text ending with a provided phrase; comparing ends of strings | `endswith(".txt", "text.txt")` `endswith(".txt", "{{data_reference_to_filename}}")` | returns `True` if the string ends with the specified suffix, otherwise `False`. |
| `startswith` | Looks for text starting with a provided phrase; comparing the beginnings of strings | `startswith("pata", "patata")` `startswith("pata", "{{data_reference_to_filename}}")` | returns `True` if the string starts with the specified suffix, otherwise `False`. |
| `in` | Checks if a value exists within a sequence Note that list evaluations such as `1 in [1,2,3]` are not supported using `in `and `not in` operators. | `"ana" in "banana"` | True |
| `and` | boolean operator; Use to combine multiple comparison expressions when you need all conditions to be true. | `("monday"=="monday") and 2>1` | True |
| `or` | boolean operator; When using `or`, the combined condition evaluates to `True` if at least one of the individual conditions is True. If all conditions are `False`, the combined condition will evaluate to `False`. | `("{{data_reference_to_fruit}}") == ("apple") or ("{{data_reference_to_fruit}}") == ("banana") or ("{{data_reference_to_fruit}}") == ("cherry")` | True |
### Comparing regular expressions
| Regex example | Description | Result |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------ |
| `match_regex('\\d{3}-\\d{2}-\\d{4}', '123-45-6789')` | Checks whether the string matches a specific regular expression pattern | True |
| `match_regex('\\d{3}-\\d{2}-\\d{4}', '45-6789')` | Checks whether the string matches a specific regular expression pattern | False |
| `match_regex('te.\*st', 'tessssst')` | Checks whether the string matches a specific regular expression pattern | True |
| `match_regex('te.+st', 'test')` | Checks whether the string matches a specific regular expression pattern | False |
| `match_regex("((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+\|(?:www.\|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/\[\+~%\/.\\w-_]_)?\??(?:\[-\+=&;%@.\\w_]\_)#?(?:[.\!\/\\w]\*))?)", "[www.url-with-querystring.com/?url=has-querystring"](http://www.url-with-querystring.com/?url=has-querystring")` | Checks if the string contains a URL that matches the pattern defined by the regular expression. | True |
| `match_regex("((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+\|(?:www.\|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/\[\+~%\/.\\w-_]_)?\??(?:\[-\+=&;%@.\\w_]\_)#?(?:[.\!\/\\w]\*))?)", "not_valid.url-with-querystring.com/?url=has-querystring")` | Checks if the string contains a URL that matches the pattern defined by the regular expression. | False |
For limitations in the supported regular expressions, see [Syntax (external page)](https://github.com/google/re2/wiki/Syntax). You can use [this external page](https://regex101.com/r/AsHMJK/3) to test if your expression is correct.
# Complete steps
Source: https://help.nextmatter.com/docs/complete-a-step
Complete steps in the app or using the API
## Completing a form or routing step in the app
A form step is completed when you have finished all the form fields and click the **Complete** button under the form. That also applies to routing steps, where you select your decision and click **Complete**.
You can edit a completed step as long as the workflow instance is still in progress. However, if conditional steps follow, and they have already been completed, the updates to the form step **won't** affect the completed conditions.
## Completing an automated step
Those steps do not need your input and are completed automatically. If an automated step produces an error, the workflow technical lead is notified by email and can update and restart the step.
## Completing steps using API
You can also use our [API to complete steps](/reference/instances_complete_step).
Use the following information to structure your calls:
### Field with a simple input form field
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{
"action_id":"FORM_FIELD_ID",
"input_object":{
"inputValue":"STRING"
}
}
]
}
```
### Field with an address input
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{ "action_id":"FORM_FIELD_1_ID",
"input_object":{
"city":"city",
"street":"street",
"zipCode":"zipCode"
}
}
]
}
```
### Field with a date input
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"date":"2021-06-16T10:00:00.000Z"
}
}
]
}
```
### Field with a number
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"numberValue": 10000, //can also be 0 or null (empty field)
"formattedValue": "" //can be left empty. If formatting has been configured in the editor, it will be automatically applied to the value.
}
}
]
}
```
### Field with a checklist
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"itemsChecked":[
"Option A",
"Option B"
]
}
}
]
}
```
### Field with radio button selection
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"radioItemSelected":"Option A"
}
}
]
}
```
### Field with URL input
```json JSON theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"url":{
"url":"http://nextmatter.com"
}
}
}
]
}
```
### Field with email input
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{"action_id":"FORM_FIELD_ID",
"input_object": {
"emailValue": "[email protected]"
}
}
]
}
```
### Field with a drawing
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{"action_id":"FORM_FIELD_ID",
"input_object": {
"url": "https://MY_IMAGE_URL.png"
}
}
]
}
```
### Field with image upload
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{"action_id":"FORM_FIELD_ID",
"input_object": {
"images": "https://MY_IMAGE_URL.png"
}
}
]
}
```
### Field with file upload
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{"action_id":"FORM_FIELD_ID",
"input_object": {
"files": "https://MY_FILE_URL.txt"
}
}
]
}
```
### Field with user selection dropdown
```json theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
"selection":{
"user_email":"[email protected]"
}
}
}
]
}
```
### Field with user selection dropdown (team as assignee)
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{"action_id":"FORM_FIELD_ID",
"input_object": {
"selection": {
"team_id": 1234
}
}
}
]
}
```
### Instruction
```json theme={null}
{
"step_id":"STEP_ID",
"actions":[
{"action_id":"FORM_FIELD_ID",
"input_object":{
}
}
]
}
```
### Routing
#### Return to step
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"action": "return",
"comment": "comment_text",
"label": "UI_button_label", //leave as "" if there is no label change
"returnToStep": "STEP_TO_RETURN_TO_ID"
}
}
]
}
```
#### Skip forward (to step)
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"action": "skip_forward",
"comment": "comment_text",
"label": "UI_button_label", //leave as "" if there is no label change
"returnToStep": "STEP_TO_SKIP_TO_ID"
}
}
]
}
```
#### Stop instance
Note that when an instance is stopped using routing, the complete step endpoint response will contain `aborted_time` instead of `completed_time`.
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"action": "decline",
"comment": "comment_text",
"label": "UI_button_label", //leave as "" if there is no label change
"returnToStep": -2
}
}
]
}
```
#### Continue
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"action": "complete",
"comment": "comment_text",
"label": "UI_button_label", //leave as "" if there is no label change
"returnToStep": -1
}
}
]
}
```
#### Save a step with a routing button, without selecting any option
(Step is optional, or the goal is to only save)
```json theme={null}
{
"step_id":"ACTIVE_STEP_ID",
"mode":"save",
"actions":[
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"label":"",
"action": "",
"comment": "",
"returnToStep": 0
}
}
]
}
```
### Single-select dropdown (with and without dataset as source)
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"input_object": {
"itemSelected": "NAME_OF_SELECTED_ITEM"
},
"action_id": "FORM_FIELD_ID"
}
]
}
```
### Multi-select dropdown
#### Minimal request
```json theme={null}
{
"step_id": ACTIVE_STEP_ID,
"actions": [
{
"input_object": {
"itemsSelected": ["NAME_OF_SELECTED_ITEM", "NAME_OF_SELECTED_ITEM"]
},
"action_id": "FORM_FIELD_ID"
}
]
}
```
#### Full request
```json theme={null}
{
"step_id": ACTIVE_STEP_ID,
"actions": [
{
"input_object": {
"allItems": [], //enter all available items or leave empty
"itemsSelected": ["NAME_OF_SELECTED_ITEM", "NAME_OF_SELECTED_ITEM"],
"itemsNotSelected": ["NAME_OF_NOT_SELECTED_ITEM"],
"numberOfItemsSelected": 2,
"numberOfItemsNotSelected": 1
},
"action_id": "FORM_FIELD_ID"
}
]
}
```
### Table
Ensure that the table content in `jsonResult` is a **JSON-encoded string representation** of the 2D array.
```json theme={null}
{
"step_id": "ACTIVE_STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_ID",
"input_object": {
"jsonResult": "[[\"HeaderRow1Column1Value\", \"HeaderRow1Column2Value\", \"HeaderRow1Column3Value\"], [\"Row2Column1Value\", \"Row2Column2Value\", \"Row2Column3Value\"], [\"Row3Column1Value\", \"Row3Column2Value\", \"Row3Column3Value\"]]"
}
}
]
}
```
Note that when the provided values are numbers (like the values in column 2 of the above examples), they don't need to be escaped (`\"\"`). For an empty field, escape it with no values provided.
**Real-life call example**
**1**: These will be header names for the 3 columns we're creating. This will be our first row. Note: If you don't want to create a header with specific names, go to the table configuration and clear the **Set first row as header** option. Then your header will get default names.
**2**: These values will appear in the 2nd row in the respective columns.
**3**: The 3rd column of the 3nd row will be empty.
**4**: This is my step ID
**5**: This is my form field ID.
### Completing conditional steps
To write a complete step request when some input [form fields are conditional](/docs/set-conditions-to-a-step#set-form-field-conditions), you need to include all the fields in the request body, regardless of whether they are conditional. For conditional fields, simply provide empty values.
For example:
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{
"action_id": "FORM_FIELD_1_ID",
"input_object": {
"selection":{
"user_email":"[email protected]"
}
}
},
{
"action_id": "FORM_FIELD_2_ID",
"input_object": {
"images": []
}
}
]
}
```
# Compliance with Next Matter
Source: https://help.nextmatter.com/docs/compliance-with-next-matter
If staying compliant is something you strive towards in your organization, you can use Next Matter's potential to build workflows that help you reach your compliance goals.
## Solution for external and internal issues
Compliance is a big topic that shouldn't be taken for granted. When an audit happens, you must prove that your procedures are **on par with the legal regulations**, standards have been maintained, and every case has been documented and checked.
The same is true for **internal processes**. Without clearly running workflows that preserve each minute detail, it's hard to work out when things went astray, or what is failing. It's all about **maintaining standards and quality** here.
With Next Matter you can build **tailored** workflows that are:
* **Tailored**: you can shape to match the external policies and internal standards
* **Holistic**: encompassing systems, partners, and team members, and integrating external tools
* **Dependable**: you can trigger them automatically and run hundreds of them at the same time
* **Verifiable**: every instance is an exact mirror of what happened, when, and who is responsible
* **Timeless**: you can filter and search for any past data, and pull it up if needed
* **Flexible**: whenever a regulation changes you can update your workflow\...and keep track of every such update
* **Transparent**: you can see the entire process as a flowchart
## Workflows for compliance
Our clients run their automated due diligence operations with Next Matter to be **audit-compliant** and ensure each **regulatory requirement has been fulfilled**. Adhering to regulations is mandatory for due diligence workflows where **stakes are high** and even a minute flaw can cause serious issues. Our clients integrate dedicated software with Next Matter to **tie all the loose ends in their procedural operations** and automate all remaining manual tasks that could potentially thwart compliance.
#### Key client workflows per industry
* * Enhanced KYC
* * Wealth check
* * Background check
* * Seizure and subpoena management
* * Incident tracking
* * Work quality management
Can't see the workflow you need? [**Let us know!**](https://www.nextmatter.com/try-next-matter)
Our clients build Next Matter workflows to follow detailed procedures and ensure each customer is receiving the **same treatment** and that any issues and complaints are treated according to the same high standards. Maintaining quality is nearly impossible whern things are run manually. That's why automated workflows ensure comanies adhere to standards and **details don't fall between the cracks**.
#### Key client workflows per industry
* * Management of refund claims with automatic generation of XML and export to archive sheet
* * Complaint management
* * Wrong/missing parcel handling
* * Job reports
* * Work quality management
* * Near miss/accident reporting
Internal workflows are key to fair and standardized operations. How documents flow and are handled, and how internal complaints are documented and tackled is crucial to a modern company. For example, employee-related issues must always be **auditable and transparent**.
#### Key client workflows per industry
* * Refund policies
* * Document recollection from drivers
* * Equipment usage and return
* * Software license purchases
* * NDA processing
## Features that do the trick
### Building workflows
Our clients make use of the following features:
* **Forms and external steps**: build forms for clients to fill in their details and send them over as external pages. [Learn more...](/docs/about-actions-and-action-types)
* **Conditional steps and approvals**: branch workflow based on specific conditions or approvals. [Learn more...](/docs/set-conditions-to-a-step)
* **External API to build integrations**: integrate any software that works with REST API and send data to and out of workflows. [Learn more...](/docs/api-keys)
### Running workflows
* **Deadline and task notifications**: notify team members that a deadline is approaching and inform them about assigned tasks. [Learn more...](/docs/allow-users-to-set-instance-deadline-and-priority)
* **Recurring workflows**: start workflows in regular intervals or have them repeat over a regular timeframe. [Learn more...](/docs/work-with-instances#start-recurring-instances)
* **Webhook triggers**: start workflows automatically whenever a trigger comes from an external tool (such as a new ticket in Zendesk). [Learn more...](/docs/webhook-triggers)
* **Internal notes and communication**: ask team members questions within a workflow and send notifications directly from a task. [Learn more...](/docs/add-comments-to-a-step)
### Auditing workflows
* **Changelog and version control**: see when and how a change was introduced to workflow, revert changes, and publish new versions in a controlled environment. [Learn more...](/docs/workflow-versions)
* **Flowchart view**: view your workflow as a flowchart and monitor the sequence of steps. [Learn more...](/docs/flowchart-view)
* **Timestamps**: track step completion time to the minute.
* **Data export**: export data from instances to an external database. [Learn more...](/docs/data-overview#data-export)
## Next steps
Watch how to build your first workflow
Learn more about notes and tagging involved team members
Learn how to send data between workflows.
Learn more about solutions and workflows
# Conditional step assignee
Source: https://help.nextmatter.com/docs/conditional-assignment
Assign steps based on the action input.
A home rental business might operate in three cities. If you run a house check workflow, you might want to assign the check to the team that's located in a specific city. Based on the city, you would assign a step to check the house to the respective team.
Alternatively, you might want to assign a step to different members of the sales team based on the purchase value.
## Set up conditional assignee
1. When creating a workflow step, click the User triggering the workflow drop-down.
2. Select **Conditional assignee**.
3. Specify the conditions. Use the AND and OR conditions to define the dependencies. You can define multiple rules. Rules are applied in the order they appear.
4. Save your changes.
Now your step will have the conditional marker. When you hover over it, the conditions will display.
When the step is assigned, the assignee's name will be visible under the step.
When the step assignee is unavailable, the workflow lead will be assigned to the step.
## Edit the rules
You can edit the conditions however, your changes will not apply if the step has already been activated. Additionally, any change made will affect only those instances that haven't yet been started.
The changes to conditions will show up in the [changelog](/docs/work-with-process-overview#workflow-change-history).
# Connect to Freshdesk no-code
Source: https://help.nextmatter.com/docs/connect-to-freshdesk
Create, update, and view tickets without leaving your workflow.
Next Matter also works as a [Freshdesk sidebar widget](https://www.freshworks.com/apps/next_matter/).
## Before you begin
* In your Next Matter portal, go to **Automations library**, click **Connect** in the **Freshdesk** app tile, and enter the Freshdesk API token and your company's Freshdesk domain to connect.
## Use Freshdesk integration
### Create ticket
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Freshdesk**.
3. Click the step and click **Configure integration**.
4. Select **Create ticket** in **Freshdesk operation**.
5. Enter the ticket's title, description, status, and priority.
6. (Optional) If you have already created the main ticket (parent ticket) as part of this workflow and want to create a child ticket, select the data reference to the parent ticket.
7. Enter the Requester email and name.
8. Use the advanced settings to configure the details:
* (Optional) To automatically assign the ticket to an agent or collaborator, select the assignee in the **Responder** field.
* (Optional) To help search for the ticket later on, add keywords or descriptors in the **Ticket type** field. Note that you need to use the types defined in Freshdesk for your organization.
* (Optional) Add tags or select them as data references. For multiple tags, separate them with a comma.
9. To re-use any ticket data, select them from the **Select data to reuse** dropdown. Note that the created ticket ID is automatically added as a reference.
10. Save your changes.
### Update ticket parameters
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Freshdesk**.
3. Click the step and click **Configure integration**.
4. Select **Update ticket** in **Freshdesk operation**.
5. Specify the ticket ID and fill in at least one field that should be updated. If you use a data reference for the ticket ID, select the plain option.
If you update tags, new tags will replace the current ones.
### View ticket
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Freshdesk**.
3. Click the step and click **Configure integration**.
4. Select **View ticket** in **Freshdesk operation**.
5. Enter the ticket ID or add it as data reference.
6. Toggle on the data to extract from the ticket.
7. Save your changes.
### Add response
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Freshdesk**.
3. Click the step and click **Configure integration**.
4. Select **Reply to ticket** in **Freshdesk operation**.
5. Enter the ticket ID or add it as data reference.
6. Enter the content of the response.
7. (Optional) If the reply should be public, add the email from which the answer should be sent out, and the name of the person that will display as the author of the reply.
8. By default, the response will be public. Toggle on to make it private.
9. Save your changes.
### View company details
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Freshdesk**.
3. Click the step and click **Configure integration**.
4. Select **View company** in **Freshdesk operation**.
5. Enter the company ID from Freshdesk or use data reference (click `{}`) to get it from a previous step.
6. (Optional) Select the data to use as data references in the following steps.
7. Save your changes.
The step will pull all available company data from Freshdesk, such as name, date created, date updated, health score, industry, and any related custom fields.
# Connect to Front no-code
Source: https://help.nextmatter.com/docs/connect-to-front-code-free
Add comments to Front conversations directly from workflows
## Before you begin
* In your Next Matter portal, go to **Automations library**, click **Connect** in the **Front** app tile, and enter the Front API token to connect. You only need to add the token without the `Bearer` part.
* Verify [Front rate limiting caps](https://dev.frontapp.com/docs/rate-limiting), especially if you're planning on running multiple instances daily. It might happen that when you exceed the cap defined for your plan, your Front integration steps will start failing.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Use Front integration
### Create message
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Front**.
3. Click the step and click **Configure integration**.
4. Select **Create message** in **Front action**.
5. Enter the channel, the recipient, and the content of the message. **Tip**: if you can enter multiple recipients, separate the email addresses with a comma.
6. (Optional) Select the team signature to sign the message with. If you select **None**, the message will be sent unsigned.
7. (Optional) Toggle on if you want to move the conversation to the **Archived** tab in Front when you send it.
8. (Optional) Select conversation ID in the **Select data to reuse** and click **+ Add**. This will turn the ID into a re-usable variable. **Pro tip**: You can use the variable whenever you want to add a comment to the conversation. Using a variable will spare you the hassle of looking up the Conversation ID in Front.
### Add comment
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Front**.
3. Click the step and click **Configure integration**.
4. Select **Add comment** in **Front action**.
5. Enter **Conversation ID** from Front. To find the ID, select a conversation, click the three-dot menu at the top, and select **Copy conversation ID**.
**Pro tip**: If you have [created a message](/docs/connect-to-front-code-free-copy#create-message) as part of this workflow, and selected to turn the conversation ID into a variable, you can simply click **\{}** in the field and select the ID variable now.
6. (Optional) Add the author - this is the person whose avatar will be visible in the conversation, and on whose behalf the message is sent out.
7. Enter the comment.
8. Save your changes.
When you run the step, the comment will be added to Front and will be visible in the conversation.
## Signatures
In Front, administrators can create and distribute a team signature for email channels. This signature can be assigned to a particular channel or all channels the team can access. Additionally, a default signature can be set for the entire team.
In Next Matter no-code actions for Front, you can decide to sign a message you send. You can select one of the three available options:
* **None**: no signature is added
* **A specific team signature**: we show all the available team signatures in the dropdown. We display signature names as they've been defined in Front.
* **Default signature**: the signature your Front admin has defined as default for the team in Front. If you pick this signature, make sure you know which signature has been defined as default.
For details on creating team signatures in Front, see [Front documentation](https://help.front.com/en/articles/2263) (external page).
## Variables
You can add variables to your step configuration. Variables are chunks of data that we take from the **Response** of the step and turn into reusable items.
We extract the data chunks you can reuse for you. To add variables, select them from the **Select data to reuse** drop-down and click **+ Add**.
**Tip**: You can still add custom variables. Simply add a pre-defined one, clear the fields, and enter the desired variable.
# Connect to Gmail no-code
Source: https://help.nextmatter.com/docs/connect-to-gmail-no-code
Exchange information between Gmail and your workflow in a completety no-code way.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Send email
The Gmail integration enables you to send emails using your domain. However, you can only use one Gmail account (the one you connect the integration with) to send the emails.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Gmail**.
3. Click the step and click **Configure integration**.
4. In the operation dropdown, select **Send email**.
5. Enter recipients (comma-separated), and email title.
6. Enter the email body in plain text.
7. (Optional) Add links to any attachments you want to send. The attachments can be data references, if the files are hosted on Next Matter, or can be links to publicly accessible files.
8. Save your changes.
**Tip**: Select and save `message ID` as a variable. You might need it if you want to reply by using the **Reply to email** no-code step in the same workflow.
## Reply to email
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Gmail**.
3. Click the step and click **Configure integration**.
4. In the operation dropdown, select **Reply to email**.
5. Select `email ID` from the list of data references. It will be on the list if you've used the **Send email** no-code operation earlier in the workflow and saved the `email ID` as a variable to use in later steps.
6. Enter the email body in plain text.
7. (Optional) Select a label that should be applied to the email. The label needs to already exist in your email account.
8. (Optional) Add links to any attachments you want to send. The attachments can be data references, if the files are hosted on Next Matter, or can be links to publicly accessible files.
9. Save your changes.
## Add label to email
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Gmail**.
3. Click the step and click **Configure integration**.
4. In the operation dropdown, select **Add label to email**.
5. Select `email ID` from the list of data references. It will be on the list if you've used the **Send email** no-code operation earlier in the workflow and saved the `email ID` as a variable to use in later steps.
6. Select a label that should be applied to the email. The label needs to already exist in your email account.
7. Save your changes.
## Get emails
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Gmail**.
3. Click the step and click **Configure integration**.
4. In the operation dropdown, select **Get emails**.
5. To find the correct emails, enter at least one of the filtering criteria: From email (enter the email of the sender), To email (enter the email of the recipient), Label, Subject, After (enter date in the YYYY/MM/DD format), or Before (enter date the YYYY/MM/DD format). **Tip**: Alternatively you can leave the filters empty and enter a **custom Gmail query**. For example: `from:service@[company-domain].com after:2023/01/01 subject:Update` Custom query overwrites all other filters. For details on Gmail queries, see [Gmail documentation](https://support.google.com/mail/answer/7190).
6. Toggle on if you only want to retrieve unread emails.
7. Specify the maximum number of expected results.
8. Save your changes.
# Connect to Google Sheets no-code
Source: https://help.nextmatter.com/docs/connect-to-google-sheets-no-code
Add and update rows with values or formulas to the worksheet. Nice and easy, little code required.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
Want to check which account was used to connect your integration? Check [which account is connected](/docs/integrate-with-google#check-which-account-is-connected).
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Integrate with Sheets
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Google Sheets (Low Code)**.
3. Click the step and click **Configure integration**.
### Add a single row (no JSON body required)
1. Select **Add single row** in the **Google Sheets operation** drop-down as is and select the spreadsheet you will be updating. Note that you need editor access to the spreadsheet to use it in the integration.
2. Select the spreadsheet and worksheet.
3. Enter the number of the row, where you have header values. This doesn't need to be row 1.
4. Add the column number and the value you want to place in this column. A new row will be created under the existing rows.
When any of the specified columns is missing in the worksheet when the step runs, the step will fail.
5. (Optional) Select and add your variables.
6. Save changes.
### Add row
1. Select **Add row** in the **Google Sheets operation** drop-down as is and select the spreadsheet you will be updating. Note that you need editor access to the spreadsheet to use it in the integration.
2. Enter or select the worksheet name. This is the worksheet to which you want to add rows.
3. In the **JSON body** field, enter the rows, names of columns, and values in the JSON format.
4. When everything is correct, click **Save changes**.
The low-code Google Sheet integration steps produce the following data references, which you can use in the following workflow steps:
* Error message (provides the error message)
* Success (provides a boolean: True or False)
* Output summary (provides all details of the step in JSON format)
### Update rows
1. Select **Update rows** in the **Google Sheets operation** drop-down as is and select the spreadsheet you will be updating. Note that you need editor access to the spreadsheet to use it in the integration.
2. Enter or select the spreadsheet and worksheet. This is the worksheet to which you want to update rows.
3. In the **Start with row** field, enter the number of the row which should be the first one to update. We'll update values in this row, and, if specified in **Body**, the following rows.
4. Enter **Body**. It might look like the following
```json theme={null}
{
"Row1": {"ColumnName1": "Value1", "ColumnName2": "Value2"},
"Row2": {"ColumnName1": "Value3"}
}
```
Note that Row1 or Row2 is only used for sequencing rows and are not the actual row numbers. For example, if you've entered 13 in the **Start with row** field then your Row1 changes will apply to row 13 in the worksheet, and Row2 changes to row 14, etc.
5. Save your changes.
### Create spreadsheet
1. Select **Create spreadsheet** in the **Google Sheets operation** drop-down and provide the spreadsheet with a meaningful name. Note that the name doesn't have to be unique but, we still advise it so that the sheet can easily be recognized. **Tip**: to make the name unique, you can use the data reference in the **Name** field, or add it to the entered phrase. For example, the instance ID will always be a unique number.
2. Save your changes.
### Delete spreadsheet
1. Select **Delete spreadsheet** in the **Google Sheets operation** drop-down and provide the ID of the spreadsheet to delete. Note that the deletion is permanent.
**Tip**: you can use data references in the **Spreadsheet ID** field. This is less error-prone than typing.
2. Save your changes.
You can find the IS in your Google spreadsheet URL - it's a combination of numbers and letters between /d/ and /edit
For example: `docs.google.com/spreadsheets/d/[Spreadsheet_ID]/edit`
If the spreadsheet ID you provided doesn't exist the step will fail.
### Create worksheet
1. Select **Create worksheet** in the **Google Sheets operation** drop-down and select the name of the spreadsheet to which you are adding a worksheet.
2. Provide a name for the worksheet.
3. Select data you might want to reuse as variables (see the Variables section below).
4. Save your changes.
### Delete worksheet
1. Select **Delete worksheet** in the **Google Sheets operation** drop-down and select the name of the spreadsheet from which you are deleting a worksheet.
2. Provide a name for the worksheet. Make sure it's correct or else the step will fail.
3. Select data you might want to reuse as variables (see the Variables section below).
4. Save your changes.
### Match values (Vlookup)
You can match a single search value with multiple corresponding values.
1. Select **Search and find values** in the **Google Sheets operation** drop-down.
2. Select the spreadsheet and worksheet.
3. Decide which row is the header row. It doesn't need to be row 1. We will offer the values from this row as column names you can select.
4. Enter the value you want to search for and the column where this value should be located (**Search column**).
5. In the match columns, select the columns where you want to find corresponding values. You can add multiple columns.
6. Select your **Match preference**. **First match** is the default.
7. Enable the toggle to differentiate between uppercase and lowercase letters during comparisons and offer only matches when the letter case is the same.
8. (Optional) Add variables. Tip: We return an array, in which the returned results follow the order of the input columns. To create variables from the results, use numbers, for example, `$.'Search results'.values.[0]` (for the first search result), `$.'Search results'.values.[1]` (for the second), and so on.
9. Save your changes.
When a selected match column doesn't return any results, we show `null` for this column in the output **Search results**.
## JSON formatting
For the integration to work, you need to provide the **Body** in JSON format. For example, it might look like the following:
```json theme={null}
{
"Row1": {"ColumnName1": "Value1", "ColumnName2": "Value2"},
"Row2": {"ColumnName1": "Value3"}
}
```
Consider the following:
* The names of the columns need to **already exist in the sheet**. If you try to add rows to an empty sheet, the step will complete but the sheet will remain empty.
* The value can be a direct value or a formula, for example: `=SUM(A1:A3)`.
* If you leave the column name empty but will enter the value, the value will be skipped. In the example below, the `Comment` value will not be added to the sheet.
* Make sure to **number the rows** so that all the values are transferred. The numbers define the sequence of rows (so row 1 should precede row 2, and so on). If you're adding the following JSON:
```json theme={null}
{
"Row1": {
"Number": "ONE",
"Name": "Blue"
},
"Row2": {
"Number": "TWO",
"Name": "Yellow"
}
}
```
to a sheet where some rows already exist, the values will be added beneath the already existing ones.
* If you use data references, make sure to wrap them in quotes, for example:
```json theme={null}
{
"Row1": {"Name": "{Instance ID}"}
}
```
* You can use formulas - for formula details, see [Google Sheet formulas (external page)](https://www.w3schools.com/googlesheets/google_sheets_formulas.php).
## Variables
You can add variables to your step configuration. Variables are chunks of data that we take from the **Response** of the step and turn into reusable items.
We extract the data chunks you can reuse for you. To add variables, select them from the **Select data to reuse** drop-down and click **+ Add**.
**Tip**: You can still add custom variables. Simply add a pre-defined one, clear the fields, and enter the desired variable.
User variables are not displayed in the output. However, they are visible in the data reference dropdown if you want to use them in further steps.
# Connect to Microsoft Excel no-code
Source: https://help.nextmatter.com/docs/connect-to-microsoft-excel-no-code
Now, you can quickly exchange data with Excel spreadsheets and workflows
## Before you begin
Prepare to connect to Microsoft
As part of the integration, you need the following:
* Allowlist the Next Matter domain
* Create a service account that will be used for connecting the integration
* Connect the integration in Next Matter (**Automations library**) and accept the required permissions [Read more about all the required steps](/docs/integrate-with-microsoft).
## Use the Excel integration
### Get range
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If a workflow is ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Microsoft Excel**.
3. Click the step and click **Configure integration**.
4. Select the **Get range** operation.
5. Select or enter the required data (Drive, Workbook, Worksheet, and Range).
The performance depends on the amount of text in the cells and the number of rows. The bigger the amount of text and the more rows, the longer it might take for the step to complete.
6. Select the data we should turn into variables for later reuse.
7. Save your changes.
### Make the step a source for the drop-down
If you get a range from a spreadsheet and want to use it as values in a drop-down form field, you must make the output compatible first.
1. In the no-code step, add a variable and enter this as the value: `$.["Range Values"][*].values[0]`.
2. Add the drop-down form field, and use the data reference to the variable. This way, the response values will populate the dropdown.
Empty rows will be filtered out.
## Add row
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If a workflow is ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Microsoft Excel**.
3. Click the step and click **Configure integration**.
4. Select the **Add row** operation.
5. Select the **Drive ID** and **Workbook** and the table to add the row to.
6. Select the column and enter the value that should show in the new row in that column. You can add multiple columns and values.
7. (Optional) Add variables. They are the response data you might want to reuse in later steps. For example, if you update this Excel row later in the workflow, you'll need to reference the row index of the row you're creating. To have this data at hand later, enter the value `$.index` as the variable and call it `index`.
8. Save your changes.
If the selected column doesn't exist in the worksheet when the step runs, the step will fail.
## Update row
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If a workflow is ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Microsoft Excel**.
3. Click the step and click **Configure integration**.
4. Select the **Update table row** operation.
5. Select the **Drive** and **Workbook** and the table to update. Note: The contents need to be formatted as a table.
1. In your Workbook, select your data.
2. Select **Home > Format as Table**.
3. Choose a style for your table.
4. In the **Create Table** dialog box, set your cell range.
5. Mark if your table has headers.
6. Select **OK**.
6. Select the column and enter the value that should show in the row in that column. You can add multiple columns and values.
If the selected column doesn't exist in the worksheet when the step runs, the step will fail.
7. Specify **Row index**. About row index:
* Row index differs from the fixed row number you see on the left-hand side of the Excel file. The row index defines the position of the data in a dataset. It is flexible and changes when rows are deleted, sorted, or inserted.
* The first data row is indexed as 0. The data row is not the header.
| Excel row number (table header) | Row index |
| ------------------------------- | --------- |
| Row 2 (first data row) | 0 |
| Row 3 | 1 |
| Row 4 (last row) | 2 |
**Tip**: If you've added a new row to this table earlier in the workflow you might have added `$.index` as the variable to that step. You can reference this data in the **Row index** field.
8. Add any variables you need (you'll be able to reuse variable data later on in the workflow).
9. Save your changes.
See [how this step](/docs/use-cases-actions) can be used in a workflow.
# Connect to Microsoft Outlook code-free
Source: https://help.nextmatter.com/docs/connect-to-microsoft-outlook-code-free
Send Outlook emails directly from your workflow
## Before you begin
Prepare to connect to Microsoft
As part of the integration, you need the following:
* Allowlist the Next Matter domain
* Create a service account that will be used for connecting the integration
* Connect the integration in Next Matter (**Automations library**) and accept the required permissions [Read more about all the required steps](/docs/integrate-with-microsoft).
## Use the Outlook integration
The Outlook integration enables you to send emails using your domain. However, you can only use one Outlook account (the one you connect the integration with) to send the emails.
### Send email
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Microsoft Outlook**.
3. Click the step and click **Configure integration**.
4. Select the **Send email** operation.
5. Enter the recipient and the body of the email to send. The body can be standard text or HTML.
If you have a list of recipients, separate the addresses with a comma.
6. (Optional) To add any attachments, select the file as data reference, or provide a public URL. If you add several URLs, separate them with a comma.
Each file has a size limit of 50MB.
7. If you want to use the step status (Success or Failed) as data reference, choose `message` in **Select data to reuse**.
8. Save your changes.
# Connect to Sharepoint no-code
Source: https://help.nextmatter.com/docs/connect-to-sharepoint-no-code
Create a no-code SharePoint step to upload files to Sharepoint sites, create folders, or share files.
## Before you begin
Prepare to connect to Microsoft
As part of the integration, you need the following:
* Allowlist the Next Matter domain
* Create a service account that will be used for connecting the integration
* Connect the integration in Next Matter (**Automations library**) and accept the required permissions [Read more about all the required steps](/docs/integrate-with-microsoft).
## Upload files
You can upload files to a static or dynamic folder:
* Static folder: A fixed folder path you select.
* Dynamic folder: A path defined by data from previous workflow steps, such as variables or output.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Sharepoint**.
3. Click the step and click **Configure integration**.
4. Select **Upload file**.
5. Select **Site**. The drop-down list shows all sites you (or your user) have access to.
6. Select **Document library**. This displays all document libraries in the selected Sharepoint site. Each Document library corresponds to a OneDrive instance.
7. Select **Folder**. You can either select one of the following options:
* **Select connected folder**: select a folder from the Sharepoint folders available in the selected **Document library**
* **Enter folder reference**: if the folder appeared in a previous step (for example as output data, prefilled value, or a variable), you can select it using the data reference picker \{}. Alternatively, you can enter the folder ID.
1. Log in to Graph Explorer.
2. Run the following query:
```
GET /me/drive/root/search(q='FolderName')
```
* the FolderName (or a part of it) should be the name of the folder whose ID you're after.
The query will list all items with the search value together with their IDs. The **id** field (01ABCD23DEF456GHIJ78KL9MNO) is the Folder ID.
8. Decide how to resolve name duplicates. You have the following options:
* **None**: Overwrites the old file with the new one. This is also the default setting when you don't make the selection. If the file is overwritten, the original SharePoint web URL remains the same.
* **Rename**: Renames the new file by adding a (number) or (copy) identifier
* **Fail**: Prevents the upload of the new file with the same name. All the other files before the duplicate file get uploaded.
9. Provide the URL of the file (comma-separated for multiple files).
There are no restrictions to the type of files you can upload. You can also upload a file from an external drive (for example Google Drive) but the file must be publicly accessible. Files over 20MB may slow uploads or cause failures.
10. Provide the new name for the file without the file extension (for example `.jpg`).
* If you upload multiple files, the name will be used to create a schema. For example, if you name the file `myfile`, the next file will be called `myfile-1`, and then `myfile-2`.
* We will use the original file format of the uploaded files.
* If you leave the field blank, the original file names will be used.
Creating your own name schema might be useful when your organization has its own naming conventions. The field enables combining free text and data references, so you can create a meaningful structure that allows for quick file identification.
For example, if a customer uploads photos of their broken car from their phone, the pictures might have random names. However, To make them recognizable, your schema might be `{casenumber}-carphoto-{customernumber}`. This way, when the files get uploaded in Sharepoint by the Next Matter step, they will follow a clear structure.
### Additional information
#### Upload operation and empty files
* If data reference to the file is empty (there was no uploaded file), the system skips the upload step without errors and retains files already existing on SharePoint.
* When valid files are provided in a mixed list, the system handles them correctly, skipping missing references and processing valid ones.
#### Variables
When you create JSONPath variables for the uploaded file, you can follow this pattern: `$.'Uploaded Files'[0].'Uploaded Drive Item Web'` (file 1), `$.'Uploaded Files'[1].'Uploaded Drive Item Web'` (file 2), and so on.
## Create a folder (in a parent folder)
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Sharepoint**.
3. Click the step and click **Configure integration**.
4. Select **Create folder**.
5. Select **Site**. The drop-down list shows all sites you (or your user) have access to.
6. Select **Document library**. This displays all document libraries in the selected Sharepoint site. Each Document library corresponds to a OneDrive instance.
7. Select **Folder**. This will be the parent for the new folder. The drop-down list shows all folders within a document library.
8. Enter the name for your new folder.
9. Save your changes.
The new folder access is defined by the SharePoint settings of your organization.
## Share folder or file
You can share one folder or file per step.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Sharepoint**.
3. Click the step and click **Configure integration**.
4. Select **Share folder or file**.
5. Enter or reference **Drive ID** and **Drive item ID**.
If you can't get the IDs from the response of a previous no-code step, you can get it programmatically.
1. Log in to [Graph Explorer.](https://developer.microsoft.com/en-us/graph/graph-explorer)
2. Get the Site ID by making the following call: `GET https://graph.microsoft.com/v1.0/sites/YourDomainName.sharepoint.com:/sites/YourSiteName`
* Replace the **YourDomainName** and **YourSiteName** with real data for your organization
3. Copy the Site ID from the response and use it in the following call that gets you the Drive ID (or the list of Drive IDs that you have on the site): `GET https://graph.microsoft.com/v1.0/sites/ReturnedSiteID/drives`
* Replace the **ReturnedSiteID** with the ID returned by your GET Site ID call.
* The response will list all the drives for this site together with the Drive IDs.
4. Use the Drive ID where the folder is located to make this call: `GET /drives/ReturnedDriveID/root/delta`.
* Replace the **ReturnedDriveID** with the ID returned by your GET Drive ID call.
This call will list all the changes to items in the Drive together with their IDs (which are the IDs of drive items).
6. Enter a comma-separated list of recipients.
7. Decide what access the recipients should have to the shared folder or file. They can have edit or view access.
8. Select **at least one option**:
* **Require sign-in to access shared item**: The recipients will need to sign in to Sharepoint
* **Send access link by email**: The link to the shared item will be sent to the recipients' email inboxes
9. (Optional) If you've selected to share the link by email, enter the message for the recipients.
10. Save your changes.
When you share a folder, users typically have access to everything within that folder unless unique permissions are set at the file or subfolder level.
# Connect to Zendesk code-free
Source: https://help.nextmatter.com/docs/connect-to-zendesk-code-free
Connect to Zendesk in seconds to enable users create and update tickets directly from the workflow
You can use Next Matter as a [Zendesk](https://www.zendesk.de/marketplace/apps/support/992085/next-matter/) sidebar widget\\\\\\! That's a quick way to start workflows, link chats and tickets, and get your tasks done.
## Before you begin
* In your Next Matter portal, go to **Automations library**, and click **Connect** in the **Zendesk** app tile.
Enter the subdomain to connect to Zendesk using OAuth.
For example, if your domain is: `https://d3v-nextmatter.zendesk.com/agent/dashboard`, then `d3v-nextmatter` is the subdomain to enter.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Create or update Zendesk ticket
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Zendesk**.
3. Click the step and click **Configure integration**.
4. Select **Create ticket** or **Update ticket** in the **Zendesk operation**.
5. Fill in all the required fields marked with an asterisk.
6. (Optional) Enter the requester name and email (that would normally be your client name and email address). These two fields are co-dependant so you can either leave both empty or fill in them both. If the requester name and email are not provided, we will use the details of the user who connected Zendesk to Next Matter.
7. (Optional) In the **Custom fields** field, enter the Zendesk custom field ID and its value. For example:
```json theme={null}
{"12657892184563":"Information","12657892184564":"Information_2"}
```
You can enter several fields, separated by a comma.
If you are updating the ticket to give it the Solved (or Completed) status, make sure you provide a value to **ALL** the required custom fields. If any of the required fields is not filled in, the step will show an error.
8. (Optional) Click **+ Add a variable** and add any variables you need to use in the next steps. \
For example, enter this value: `$.'Ticket ID'` to get the Zendesk ticket ID of the newly created ticket. \
Use `$.ticket.via.source.from.address` to extract the customer email.
9. When everything is correct, click **Save changes**.
### Custom fields
To get the ID of the custom fields in Zendesk, you need to be a Zendesk admin. To get the ID:
1. In Zendesk, open **Admin Center**.
2. Click **Objects and Rules > Fields**.
3. Copy the **Field ID** of the custom field you want to appear in the ticket created from Next Matter.
4. Add the ID in the Next Matter **Custom fields** field and provide a value for this field.
### Author ID
If you create or update tickets with the no-code step, you need to provide the Zendesk Author ID. This user will be shown as the author of the comment in Zendesk. The author can be a member of the support team (an agent) or even a customer.
You need to be a Zendesk admin to see user IDs in Zendesk.
### Requester email
The requester name and email are optional fields, however, if you add the requester name, you'll have to provide the email as well.
Note that the requester name only works if the requester email was not used before. If the user is already registered with a specific name in Zendesk, this name will be kept, and if you introduce a different name in the no-code step, the original name will not be updated.
## Get ticket details
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Zendesk**.
3. Click the step and click **Configure integration**.
4. Select **Get ticket** in the **Zendesk operation**.
5. Enter or reference the ticket ID. It's the ticket number (without #)
6. Save your changes.
The returned data includes: requester, ticket URL, status, whether the ticket is linked to incidents, assignee email, description, custom fields, comments, due date, subject, submitter ID, and many more.
## Variables
You can add variables to your step configuration. Variables are chunks of data that we take from the **Response** of the step and turn them into reusable items. For example, when you create a ticket in Zendesk, Zendesk would normally return this ticket ID.
Note that user variable names need to be unique and can't be duplicated. Otherwise, you won't be able to save your configuration.
# Convert data to another format
Source: https://help.nextmatter.com/docs/conversions
Convert JSON to string and a stringified JSON to JSON object
## **Convert to escaped string**
This quick action converts JSON input (or text and JSON) to an escaped string that can easily be transmitted or stored.
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Select the **Convert to escaped string** operation.
5. Select the JSON object as data reference (click `{}`) or enter JSON object and /or array. You can convert one object per operation.
6. (Optional) Toggle to remove the outer JSON brackets.
7. (Optional) Select the JSON output and/or input strings as variables to use in later steps.
8. Save your changes.
Your output string with the outer brackets removed might look like the following:
```
"{\"official INPI registration: {{INPI}}\\nInformation provided by customer: {{Forest}} \"}"
```
## **Convert to JSON object**
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Select the **Convert to JSON object** operation.
5. Select an escaped or a regular JSON string as data reference (click `{}`) or enter the string manually. It might look like the following: `json JSON "{\"name\": \"John\", \"message\": \"Hello world\"}"`
6. (Optional) Toggle to remove the outer JSON brackets.
7. (Optional) Select the JSON output and/or input strings as variables to use in later steps.
8. Save your changes.
# Integrate with SharePoint
Source: https://help.nextmatter.com/docs/create-a-list-in-sharepoint
You can create and populate a folder in Sharepoint.
## Before you begin
As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
You can do it using SharePoint no-code steps. For details, see [Connect to Sharepoint no-code](/docs/connect-to-sharepoint-no-code)
* Since you can replace placeholders with a data reference of the data provided in one of the previous steps, learn more about [Data references](/docs/use-data-references).
* Get your SharePoint SITE ID. You'll need it in the step configuration. To get the ID:
1. Sign in to [https://developer.microsoft.com/graph/graph-explorer](https://developer.microsoft.com/graph/graph-explorer).
2. Select GET as the method, and provide the following URL: `https://graph.microsoft.com/v1.0/sites/HOSTNAME.sharepoint.com:/sites/SITENAME`. The hostname might be, for example, *nextmatter.sharepoint.com*. You can find the site name in Sharepoint by clicking the **Settings** gear and clicking **Site Information**.
3. View the JSON response for the value of the **id** parameter. The value is built up of 3 data bits: `HOSTNAME, SITE_ID, WEB_ID`. Copy the `SITE_ID` number string.
## Create a list in SharePoint (spreadsheet)
1. In your Next Matter process, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Authorization**: Microsoft Sharepoint
* **Method**: POST
* **URL**: `https://graph.microsoft.com/v1.0/sites/SITE_ID/lists`
* **Headers**: Content-Type: application/json
* In the **Body** enter the list values. For example, the body might look like the following.
```json theme={null}
{
"displayName": "LIST_TITLE", //this is a placeholdder
"columns": [
{
"name": "COLUMN_A",//this is a placeholdder
"text": { }
},
{
"name": "COLUMN_B",//this is a placeholdder
"number": { }
}
],
"list": {
"template": "genericList"
}
}
```
4. Create a variable for the list ID with the following value: `$.id`.
5. Save your changes.
## Create a list item (row of data)
1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Authorization**: Microsoft Sharepoint
* **Method**: POST
* **URL**: `https://graph.microsoft.com/v1.0/sites/SITE_ID/lists/LIST_ID/items`
* **Headers**: Content-Type: application/json
* In the **Body** enter the list values. For example, the body might look like the following.
```json theme={null}
{
"fields": {
"Title": "TEST",//this is a placeholdder
"textfield1": "NEW_TEXT",//this is a placeholdder
"numberfield1": 0
}
}
```
1) Open the SharePoint list.
2) Click **List Settings**.
3) Go to the page URL and copy the text after `List=`
4. Save your changes.
# Create a no-code email
Source: https://help.nextmatter.com/docs/create-a-no-code-email
If you want to quickly build an email into your workflow, use the email step.
The email step is an on-the-go no-code solution for when you want to quickly create and send an email as part of your workflow.
To create the email:
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Email step**.
3. Click the step and click **Configure email step**.
4. Enter the details for the email. Alternatively, you can re-use data from other steps. To do that click **\{}** and select the data bit from the data reference dropdown.
Make sure to add the email recipient. To add multiple, simply separate the emails with a coma.
5. (Optional) Add attachments. You can add those that should go with this specific email or those that should always be attached). Note that the max size of any attached file is 10MB. You can also use data references for the attachments. You can use multiple instance references, for example: `{data_reference_1 - Files}, {data_reference_2 - Images}`. Note the reference **cannot** be in .zip or base64 format.
6. (Optional) Click **Send test email** and add your test recipient to send a test email and verify the content before sending it out to a larger group. Entering a test recipient doesn't change the actual recipients that you configured.
7. When everything is correct, click **Save changes**.
Note that we don't support inline images in the body of the email. Additionally, you can't send dynamic links.
If you want to send an email from your own domain, see [Integrate with SendGrid](/docs/integrate-with-sendgrid#integrate-with-sengrid-with-your-own-account).
If you're looking for advanced HTML customization options, use the SendGrid step template available in Next Matter (**Process > + Add step > Templates**).
# Create PDF, text, or JPEG
Source: https://help.nextmatter.com/docs/create-pdf-or-text
Use no-code steps for reporting, changing document formats, and creating hardcopies of documents.
## Generate PDF form step
If you need to generate a report from a step, or download data to share on a custom template, use this no-code step for best results. The template enables you to:
* Embed images and signatures in the PDF (images are auto-compressed to 500KB)
* Stay compliant thanks to a timestamp showing the generation date.
* Have a clean output as all empty fields (optional and conditional) are filtered out and the PDF is generated with margins.
1. In your workflow, click **+ Add step**.
2. Click **Templates > Next Matter templates** and search for PDF.
3. Click the **Step to PDF** template to add it to the workflow.
4. Update the placeholders in the template body with your workflow ID, instance ID, and step ID of the step you want to export. **Tip**: You'll find the data reference to the instance ID when you click **\{}** in the **Body** field.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
5. If you want the data exported to a custom template, provide the URL replacing the placeholder in **Body**.
6. Save your changes.
The URL to the created PDF will be available in the template's PDF summary step.
## Turn PDF into JPEG
If you need to change the file format of the uploaded PDF into a JPEG file, you can use a no-code template.
One step only supports converting one PDF file into a JPG. We generate one JPG file for each PDF page.
1. In your workflow, click **+ Add step**.
2. Click **Templates > Next Matter templates** and search for **PDF to image**.
3. Click the template to add it to the workflow.
4. Update the placeholders in the template body with your workflow ID, instance ID, step ID, and the PDF file to convert. **Tip**: You'll find the data reference to the instance ID and the file reference (if it has been uploaded in any of the previous workflow steps) when you click **\{}** in the **Body** field. For the file reference use the **plain** format.
You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
5. Save your changes.
The URL of the generated JPG file will be available as data reference.
## Create DOCX file out of text
No need to change tools to create a downloadable document. You can provide the text inside the body of the step in your workflow, use the provided formatting options, and we'll create the .docx file for you.
1. In your workflow, click **+ Add step**.
2. Click **Templates > Next Matter templates** and search for **Create document with custom text**.
3. Click the template to add it to the workflow.
4. Provide the text using the available formatting options such as italics or bold. The provided Document title will be used as the H1 of the document.
5. (Optional) Provide the URL of a template you normally use for documents.
6. Save your changes.
The URL of the generated DOCX file will be available as data reference.
# Create XML files and send them to Google Drive
Source: https://help.nextmatter.com/docs/create-xml-files-and-send-them-to-google-drive
Next Matter allows you to create XML files automatically and place them in a Google Drive folder of your choice.
This scenario can be useful if you want to create multiple SEPA instructions.
## Before you begin
* You need to be familiar with the XML structure of the output file. A sample structure is [available here](https://www.hettwer-beratung.de/sepa-spezialwissen/sepa-technische-anforderungen/pain-format-sepa-pain-001-sct/).
* Make sure you have a Google Drive folder set up.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* We assume you have a workflow created in Next Matter,
## Generate the file
1. In your process, create a new integration step.
2. Click **Settings**, and enter the following details:
* **Method**: POST
* **URL**:
```http HTTPS theme={null}
https://n962q5mp7c.execute-api.eu-central-
1.amazonaws.com/g/util/template_text_gdrive/PARENTIDOFGOOGLEDRIVEFOLDER/DATAREFERENCETOFILENAMEFORXML?
amount=DATAREFERENCETOAMOUNT&bic=DATAREFERENCETOBIC&kunde=DATAREFERENCETOCUSTOMERNAME&iban=DATAREFERENCETOIBAN&usage=DATAREFERENCE
TOVERWENDUNGSZWECK&_fileextension=xml
```
You can add multiple variables to the URL, separated with "?". They can to be inserted in the body in the format of \<%= VARIABLENAME %>
* **Headers**: Content-Type: text/xml
* **Authorization**: Google Drive
* **Body**: The body for a DATEV-readable-XML file for SEPA Bank transfers might look like the following:
```xml XML theme={null}
<%= format(new Date(date), "yyMMddHHmm") %>
<%= format(new Date(date), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx") %>
1
<%= amount %>
NAMEHARDCODE
<%= format(new Date(date), "yyMMddHHmm") %>
TRF
1
<%= amount %>
SEPA
<%= format(new Date(date), "yyyy-MM-dd") %>
NAMEHARDCODE
HARDCODESENDERIBAN
HARDCODESENDERBIC
\<
/DbtrAgt>
SLEV
\<%= format(new Date(date), "yyMMddHHmm") %>-0000001
\<%= amount %>
HARDCODESENDERBIC
\<%= kunde %>
\<%= iban %>
<%= usage %>
```
# Customer service automation with Next Matter
Source: https://help.nextmatter.com/docs/customer-services-with-next-matter
Need to run a return rental workflow or automate refund processes? Any customer service workflow, complex or straightforward, can be automated in Next Matter.
## Solution for quality and efficiency
Customer service is always a big topic and a cornerstone for each business. Research shows that customers are more willing to forgive product issues if customer service is top-notch. Failing support discourages further use, no question about it.
That's why automating customer services lies at the bottom of great quality and customer satisfaction. Workflows run smoothly, steps are completed in a predictable sequence, your support agents are reminded about their upcoming tasks and deadlines, and **nothing falls between the cracks**. This way **the services offered are efficient, streamlined, and fair** and you're getting great reviews online.
With Next Matter you can build **tailored** workflows that are:
* **Customized**: you can shape the workflows to match your process, and not vice versa
* **Dependable**: you can trigger them automatically and run them for hundreds of customers at the same time
* **Verifiable**: every instance is an exact mirror of what happened, when, and who was assigned to the task. You can also check how long each person spent on a task
* **Transparent**: you can see the entire process as a flowchart. This way you can tweak and streamline it
* **Holistic**: you can build steps and forms for internal as well as external use
## Workflows for customer service
Our clients streamline their service operations to run **fast, predictable, and auditable workflows**. With automation in place, nothing gets missed, forgotten, or omitted.
Key client workflows per industry:
* Missing parts delivery
* Bike returns
* Driver documents collection
* Customer request triage
* Work quality management
Our clients build Next Matter workflows to follow detailed procedures and ensure each customer is receiving the **same treatment** and that any issues and complaints are treated according to the same high standards. Maintaining quality is nearly impossible when things are run manually. That's why automated workflows ensure companies adhere to standards and **details don't fall between the cracks**.
Key client workflows per industry:
* Management of refund claims
* Complaint management
* Job reports
* Work quality management
Can't see the workflow you need? [**Let us know!**](https://www.nextmatter.com/try-next-matter)
## Features that do the trick
### Building workflows
Our clients make use of the following features:
* **Forms and external steps**: build comprehensive forms for clients to fill in their details without logging in. [Learn more...](/docs/about-actions-and-action-types)
* **External API to build integrations**: integrate any software that works with REST API and send data to and out of workflows, track shipments, and backup data. [Learn more...](/docs/api-keys)
* **Instruction steps**: create detailed instructions for teams on how to proceed and what actions to take. [Learn more...](/docs/about-actions-and-action-types)
* **External portal**: build customer hubs so that specific forms can be found in no time
* **Integrations and templates**: connect to external tools using REST API and build workflows with ready-to-use presets. [Learn more...](/docs/work-with-templates)
### Running workflows
* **Deadline and task notifications**: notify team members that a deadline is approaching and inform them about assigned tasks. [Learn more...](/docs/allow-users-to-set-instance-deadline-and-priority)
* **Automated emails**: send confirmation or invoice emails to clients automatically based on triggers or conditions. Add permanent or one-off attachments. [Learn more...](/docs/create-a-no-code-email)
* **Webhook triggers**: start workflows automatically whenever a trigger comes from an external tool (such as a new ticket in Zendesk). [Learn more...](/docs/webhook-triggers)
* **Front plug-in**: speed up your work by opening Next Matter inside the Front app. [Learn more...](/docs/integrate-with-front#use-an-in-app-next-matter-widget-for-front)
* **Zendesk integration**: start workflows automatically when a Zendesk ticket is created and send data to and from tickets. Complete tickets from within Zendesk. [Learn more...](/docs/integrate-with-zendesk)
### Streamlining / Optimizing workflows
* **Data breakdown**: see how long teams and users spent on steps to see what can be improved. [Learn more...](/docs/data-overview)
* **Data export**: export data from instances to an external database. [Learn more...](/docs/data-overview#data-export)
## Next steps
Watch how to build your first workflow
Learn more about notes and tagging involved team members
Learn how to send data between workflows
Learn more about solutions and workflows
# Data formats
Source: https://help.nextmatter.com/docs/data-formatting
When you select data to reuse you can choose between providing data in JSON or plain format
When the data is used in other Next Matter steps or to complete integration, we recommend using the JSON format, as most systems parse and understand this format.
If you want the data to be provided in a human-readable format to display it to users, use the plain format.
When you send data from Next Matter to third-party tools, it's a good idea to check the tool's documentation to see which format is preferable.
## Differences in formats
In the case of the input types that are not listed here both options look the same.
### Text and string input
```JSON JSON theme={null}
This is an example text with linebreaks\n\nand \"double quotes\"
```
```Text Plain theme={null}
This is an example text with linebreaks
and "double quotes"
```
### Multi-value dropdowns and checklists
The examples are based on the `itemsSelected` and `itemsChecked` references. All other references for these inputs look the same.
```json JSON theme={null}
["Option A", "Option B"]
```
```Text Plain theme={null}
Option A, Option B
```
### File and image uploads
The examples are based on the "files" and "images" reference. In the case of the `firstFile` reference there is no difference between JSON and plain.
```json JSON theme={null}
["https://file1.com", "https://file2.com"]
```
```Text Plain theme={null}
https://file1.com , https://file2.com
```
### Tables
If you want to use table values as a data reference, you have the following options:
* Plain and JSON formats can be selected in the Body of Integration steps
* JSON format can be selected in other fields (for example form fields, or email messages)
There is no difference between JSON (other fields) and plain. The JSON that can be selected in the Body field contains escaped values.
The code example contains example values.
```Text JSON (in Body of integration steps) theme={null}
[[\"ONE\",\"Blue\"],[\"TWO\",\"Yellow\"],[\"ONE\",\"Blue\"],[\"TWO\",\"Yellow\"]]
```
```Text JSON (in other fields ) theme={null}
[["ONE","Blue"],["TWO","Yellow"],["ONE","Blue"],["TWO","Yellow"]]
```
```Text Plain theme={null}
[["ONE","Blue"],["TWO","Yellow"],["ONE","Blue"],["TWO","Yellow"]]
```
To send JSON table output to a Google Sheet using a custom integration, you must first parse the JSON to convert it from a string into a structured format. Currently, you cannot use the output in the Google Sheets no-code step.
# Monitor data
Source: https://help.nextmatter.com/docs/data-overview
Use the Data tab to monitor the health of your team and your workflows.
The **Data** tab helps you understand the bottlenecks in your workflows and how different teams, and people are performing. It allows you to get access to workflow and team data and help your team work faster and more efficiently.
## Workflow data
The data in this tab helps you view the average completion times of all or a specific workflow. You can also check how many instances have been started in the specified time range.
If you've introduced changes to the workflow you can check if its completion time in the week after the updates has reduced.
## Team data
This tab helps you analyze the performance of teams. You can narrow down your view to a specific workflow and team.
For example, you can analyze how fast teams pick up their tasks, or how long (on average) tasks remain open.
## Data export
If you select a specific workflow either in the Workflow or the Team data tab, you can export it to a CSV file to import it to your data warehouse for reporting purposes. Alternatively, you can do it with API or by sending data to an external tool. For export details, see [Export data](/docs/export-data)
# Datasets
Source: https://help.nextmatter.com/docs/data-sets
Host external sets of data in Next Matter.
If you have your own dedicated database where source data lives, or have data in a spreadsheet, which you want to host on Next Matter. Datasets enable such an approach.
## Create a dataset
1. Click datasets \[left-hand navigation].
2. Specify the headers for your data table and select the data type (if the content is a number or text).
3. Upload a CSV file with your data. Make sure the data columns have headers.
4. Click **Complete**.
We'll notify you when your data gets transformed into a dataset and is available for selection inside a single-choice dropdown form field.
To show the data as a dropdown:
1. Select the single-choice dropdown form field.
2. Select **Add items dynamically from Next Matter dataset**.
3. Select the dataset from which you want to pull data.
4. Select the column from the dataset that you want to display as a dropdown.
5. Save your changes.
Notify us if you want the dataset changed or updated.
Now the column contents will be available as a single-choice dropdown.
## Reference dataset items
You can reference a selected dataset item by picking it from the data reference dropdown.
You can also reference a value from a different column that corresponds to the selected value. To do that:
1. Click the cog item next to the data reference.
2. Select the column from the dropdown. The available columns are from the same dataset row as the selected item.
The reference will show the value from this column that corresponds to the item selected from the dropdown.
### Data references and duplicates
To manage the number of options to select from in the dropdown, we only show unique values (and combine all the occurrences of the same element). This streamlines the end-user experience. However, this can also affect data referencing. \
For data referencing, we take the first occurrence of the item. If you want to reference another item from the row in which the selected item resides, we will always reference the same item. For example, for Data Scientist, we'll always show Jane Smith as the Name reference.
| Name | Age | Occupation |
| :----------- | :-- | :-------------- |
| Jane Smith | 25 | Data Scientist |
| Bob Johnson | 42 | Data Scientist |
| Emily Davies | 37 | Product Manager |
## Filter datasets
To show users specific dataset items to select from, workflow builders can apply multiple filters when creating the form. The filters depend on each other, so the user will need to select an item from a parent dropdown to activate the child dropdown.
You can filter data using:
* Manually entered values
* Data references from your workflow (system values, user inputs, other datasets)
**Important**: You can use data from various datasets as filters, including data based on different datasets than the one you're filtering. However, the data needs to exist as a dropdown field somewhere in your workflow.
### No filter results
It might happen that specific filter combinations will not show options to choose from. In such cases, the user will be able to select **No options available** to proceed. If you (as a builder) observe this happen, you can create custom paths to manage these scenarios. For example, you can create a conditional workflow or allow users to enter free text.
### Create filters
To use filters for datasets, toggle on **Use row filters** and apply the filters you need.
You will see the filters applied when you hover over the funnel icon, which is available for every single-select dropdown **with the dataset as the source**.
# Date calculations
Source: https://help.nextmatter.com/docs/date-calculations
Find out how to calculate a date or a batch of dates in your Next Matter workflow.
**Good to know:** Check out our ready-made templates available when you add a step and select **Templates > Next Matter templates**. You can use the templates to create a set of pre-configured steps.
1. Open your workflow and create a form step with the two form fields. Click **+ Add form field** and create the following:
* **Date**: The date when you want to apply the calculation. This will be the form field one.
* **Short text**: This is to submit the days that you want to add/subtract when running your workflow. This will be the form field two.
To subtract days, enter a negative number such as -5. For adding days simply type the number.
2. Now create the date calculation step. To do that, create an integration step after step 1.
3. Click **Settings** to configure the step. Enter the following details:
* **Method**: POST
* **URL**: `https://integrations.nextmatter.com/g/utils/calculatedate`
* **Headers**: Content-Type: application/json
* **Body** might look like the following:
```json theme={null}
{
"date": "",
"days_to_add": "",
"enable_business_days": ""
}
```
**date**: Enter the date by using the data reference of the date form field from the previous step.
**days\_to\_add**: Number of days to add or remove. To remove, add a minus, for example, -5
**enable\_business\_days**: Optional. If set to true, the calculation skips Saturday and Sunday. Adding 1 day to a Friday leads to the next Monday. This feature is not available when removing dates. It will return an error if **days\_to\_add** is negative, and **enable\_business\_days** is set to true.
For example:
```json theme={null}
{
"date": "2022-07-01",
"days_to_add": 1,
"enable_business_days": true
}
```
In reality, **Body** might look like the following:
```json theme={null}
{
"date": "{1. Enter Date Info - Choose initial date - Date}",
"days_to_add": "{1. Enter Date Info - Choose days to add. Use a minus if you want to substract days. - Input}"
}
```
Your batch might look like the following:
```json theme={null}
[
{
"date": "2022-05-01",
"days_to_add": 1,
"enable_business_days": true
},
{
"date": "2022-06-01",
"days_to_add": -5,
"enable_business_days": false
},
{
"date": "2022-06-01",
"days_to_add": 2
}
]
```
* In the **Results to be used in later steps**, click **Add variable**.
You need to create a variable for every date set so that the resulting date can be referenced in later steps.
* For one date set, add the `calculatedDate` variable with the value of `$.date`
* For multiple sets, your variables might be the following:
| Name | Value |
| --------------- | ----------- |
| calculatedDate1 | \$\[0].date |
| calculatedDate2 | \$\[1].date |
| calculatedDate3 | \$\[2].date |
# Deadlines and reminders
Source: https://help.nextmatter.com/docs/deadlines-and-reminders
As a workflow lead you can set deadlines for steps, and send assignees (internal and external) reminders to get the step completed in time.
To see how to let users set their own deadlines, see [Allow users to set instance deadlines](/docs/allow-users-to-set-instance-deadline-and-priority).
Need to know how to send internal reminders? See [Schedule a step start and deadline](/docs/schedule-a-step)
## Set up a deadline and reminders
1. Click on a workflow you want to update.
2. Click **... > Edit workflow**.
3. If you don't have this already, create a form (**+ Add step > Form**) and add an **Email address input** form field. Assign this step to an external user.
This is the step in which the external user will provide their email address. You can select this data reference to send a reminder.
4. Click on the step for which you want to create a reminder.
5. Under the step name, click **Add deadline**.
6. Use the dropdowns to set the deadline for the step.
If you set the deadline in days, select the days of the week that should be included. You can optionally also exclude public holidays for a country and a specific region within this country.
🧠 **For example**:
* The deadline is set 4 days after the instance starts. The instance starts on Dec 25, 2025, at 14:00 hours.
* The days counted in the deadline are Wednesdays over to Saturdays (with Sundays, Mondays, and Tuesdays excluded).
* Public holidays in Germany are excluded.
The deadline falls on January 4th, 2025 at 14:00, because:
* Dec 25th, 26th, and January 1st are excluded as public holidays.
* Dec 29th, 30th, and 31st are excluded as Sunday, Monday, and Tuesday.
* We calculate deadlines in full days.
7. Click **Add reminder**.
8. Select the participants you want to send the reminders to. To send the email to the email address the external user provided in a previous step, assign the step to an external user, and in the deadline pop-up, select the **Email address input** data reference.
For the data reference to work, the email address needs to be provided in previous step of the workflow.
9. Specify when the reminder should be sent out in relation to the deadline. **🧠 For example**, if the deadline falls on January 4th, 2025 at 14:00, and the reminder is due 1 day after the deadline, then the reminder will be sent out at 00:00 on January 5th, 2025.
When you set days to be included in the deadline and excluded public holidays, these inclusions and exclusions **don't** apply to reminders.
10. Click **Save**.
**Tip:** To set up a reminder to be sent before and past the deadline, set up two reminders with different date parameters.
Now the assignee will receive a reminder at the time you specified. The email might look like the following:
For internal users, step deadline information is also displayed on your Next Matter dashboard.
If a step is overdue, you Next Matter users can see it in the **Attention needed** tab of their **Inbox**.
## Import deadlines from previous steps
To speed up setting up deadlines and reminders for steps, you can copy the deadlines you've already set up in the workflow.
1. Click **Add deadline**.
2. Click **Import deadline**.
3. Select the step from which you want to copy the deadline.
4. Save your changes.
Your deadline will be copied over together with any reminders it contains.
## Deadlines and conditions
If you create a step deadline (for example 1 day after the completion time of a previous form step) and also set a condition to skip the step if the form is empty, we'll evaluate the condition first. If the previous step completes with an empty form, the step with the set condition will be skipped immediately and will not send a deadline reminder.
## User-defined deadlines and priority
When you start a workflow manually or create a recurring workflow, you can ask the person starting the workflow to set a deadline and a process priority.
1. Open **Workflows**.
2. Click a workflow to open the overview.
3. In **Workflow start options**, click **Manual**.
4. Decide on the deadline and priority settings.
If you set both at **Require**, the user triggering the instance will have to select the priority from the dropdown and set a deadline before they can start the instance.
# Drawing and signature
Source: https://help.nextmatter.com/docs/drawing-and-signature
Let users sign forms and draw to highlight elements of an image.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
These form fields allow users to sign or draw with their mouse or touchpad.
* Signatures are most commonly used in review workflows or claim forms, where a claim needs to be signed by the requester.
* Drawing can be used as a follow-up of an instruction. You can upload a background image to this step in JPG, JPEG, PNG, TIFF, GIF, or WEBP and let users draw or write around it.
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a form using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Export data
Source: https://help.nextmatter.com/docs/export-data
There are three ways to export data from Next Matter
If you need to export data from Next Matter to an external tool or file it away, you can use one of the three possible options:
* Download data as CSV file (**Data > Workflow data**)
* Use [Next Matter API](/reference/) and apply the script provided below
* Use an integration step to export data to a 3rd party tool, such as Google Sheets, Redshift, or PostgreSQL
* Custom export - click **Contact us** (top-right corner), and tell us what you need
## Download as CSV
With the CSV file, you can download the workflow metadata and values fetched or provided in the workflow. The exported data are the following:
* ID
* name
* priority
* tags
* deadline
* started time
* completed time
* last updated time (see below to learn what triggers updates)
* aborted time
* lead user
* stage ID
* stage name
* data for each step: activated time, assigned time, completed time, completed by
* additionally for integration steps: integration step error, integration step success, integration step debug errors, analytics info (execution duration), user variables, output summary
If a field doesn't apply, then its value field is empty.
You can only export data from one workflow per hour.
### What affects the Last updated time
Only the following events affect the **Last updated** time:
* retry step
* assign step
* complete instance
* abort instance
* activate step
Note that updating a deadline or completing a step doesn't result in the time being updated.
### How to download a CSV
## Export only selected data
You can't select the data to export, however, you can do the following to filter out the data in the exported file:
1. Download the CSV Export.
2. Import the file to Excel. Make sure to import the file and not just open it. imported instead of just opened. See [Microsoft documentation](https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba) for details.
3. Delete all columns except for the data you need.
## Download with a script
The script downloads data and exports them to a CSV file. The script creates columns for workflow ID, instance ID, instance name, and the names of the form fields to be exported. All the data from the form fields are also exported.
To run this script, you need to get the following:
* [Next Matter API key](https://app.nextmatter.com/app/workspace/nm-api-keys)
* Workflow ID of the workflow you want to export
* Step ID of the step to export
* Form field ID of the step you want to export, the name of the field, and its value type
```python python theme={null}
import requests
import pandas as pd
import time
# Constants
API_KEY = "API KEY"
ROOT_URL = "https://core.nextmatter.com/api"
HEADERS = {"Content-Type": "application/json", "Authorization": f"Api-Key {API_KEY}"}
def fetch_data(session, workflow_id, step_id, form_field_id):
"""
Fetch data from the API for a given workflow, step, and form field.
"""
request_url = f"{ROOT_URL}/processes/{workflow_id}/steps/{step_id}/actions/{form_field_id}/"
response = session.get(request_url)
return response.json()
def process_response(response, form_field_type):
"""
Process the response to extract needed values.
"""
data_values = []
for result in response['results']:
instance_id = result['instance_id']
instance_name = result['instance_name']
value = str(result['value'][form_field_type])
data_values.append((instance_id, instance_name, value))
return data_values
def update_dataframe(df, workflow_id, form_field_names, instance_id, instance_name, form_field_name, value):
"""
Update the DataFrame with new values or add new rows.
"""
if instance_id in df['Instance Id'].values:
df.loc[df['Instance Id'] == instance_id, form_field_name] = value
else:
new_row = {'Workflow Id': workflow_id, 'Instance Id': instance_id, 'Instance Name': instance_name, form_field_name: value}
for field_name in form_field_names:
if field_name != form_field_name:
new_row[field_name] = None
df.loc[len(df)] = new_row
return df
def main():
data_to_export = [
{
"workflow_id": WORKLOW_ID, //**replace with workflow ID**//
"inputs_to_export": [
{
"step_id": STEP_ID, //**replace with step ID**//
"form_field_id" : FORM_FIELD_ID, //**replace with form field ID**//
"form_field_name" : "FIELD1_NAME", //**replace with name of the field**//
"form_field_type": "inputValue"
},
{
"step_id": STEP_ID,
"form_field_id" : FORM_FIELD_ID,
"form_field_name" : "FIELD2_NAME",
"form_field_type": "inputValue"
}
]
}
]
session = requests.Session()
session.headers.update(HEADERS)
# Extract all unique form_field_names and create the DataFrame
form_field_names = [field['form_field_name'] for workflow in data_to_export for field in workflow['inputs_to_export']]
columns = ['Workflow Id', 'Instance Id', 'Instance Name'] + form_field_names
df = pd.DataFrame(columns=columns)
for workflow_to_export in data_to_export:
workflow_id = workflow_to_export["workflow_id"]
datapoints = workflow_to_export["inputs_to_export"]
for field in datapoints:
step_id = field["step_id"]
form_field_id = field["form_field_id"]
form_field_name = field["form_field_name"]
form_field_type = field["form_field_type"]
response = fetch_data(session, workflow_id, step_id, form_field_id)
data_values = process_response(response, form_field_type)
for instance_id, instance_name, value in data_values:
df = update_dataframe(df, workflow_id, form_field_names, instance_id, instance_name, form_field_name, value)
time.sleep(1)
df.to_csv("output.csv", index=False)
if __name__ == "__main__":
main()
```
## Export using integration steps
You can send workflow input values and workflow metadata such as workflow name, deadline, lead, tags, or start time directly from each workflow.
* You can create a low-code Google Sheets integration and add data as a new row in a table: see [Low code Google Sheets](/docs/connect-to-google-sheets)
* You can add the data to a PostgreSQL or Amazon Redshift table: see [Integrate with PostgreSQL](/docs/integrate-with-postgresql) or [Integrate with Redshift](/docs/integrate-with-amazon-redshift)
* You can create a custom integration step and export data to any 3rd-party tool with REST API.
# FAQ
Source: https://help.nextmatter.com/docs/faq
Refer to this page for answers to some questions our users have asked.
## Next Matter offering
In Next Matter, Robotic Process Automation (RPA) is not our focus. We understand Robotic Process Automation (RPA) as click or UI automation. It helps automate repetitive tasks for a single person on their screen. In Next Matter, we do end-to-end / cross-functional workflow automation across multiple teams, people, and systems. RPA can be integrated with Next Matter so that robots take care of repetitive tasks on top of legacy UI as part of a workflow. Read more on the topic in our [blog](https://www.nextmatter.com/blog/automation-tools-for-fintech-operations-which-do-you-need).
Our standard model for our clients is cloud Software-as-a-Service (SaaS) with hosting on European servers.
We are fully prepared to offer additional deployment options to enterprise customers within our shared environment, in a dedicated environment on our servers, and on most local or third-party cloud environments of your choice.
Our team can address hosting and deployment questions with you in greater detail at any time. Please address your questions to: [support@nextmatter.com](mailto:support@nextmatter.com).
Automation solutions range from very basic and closed, to extremely complex and technical.
Next Matter sits right in the middle with a simple no-code solution, allowing anyone to get their hands on the best process they want to build, without requiring IT support. Next Matter allows users to build, track, orchestrate, and execute complex business workflows. We’re not a database solution but can integrate with a third-party database.
Currently, we store data in the European Union. We don't host data in other geographies at the moment but are prepared to do it for a certain deal size. For an overview of our hosting subcontractors, see Annex 4 of [this page](https://www.nextmatter.com/next-matter-data-processing-agreement).
Next Matter is EU GDPR compliant. Our platform is hosted in Frankfurt, Germany by Amazon Web Services using data centers that meet global compliance standards such as ISO 27001, **SOC 2 Type 2**, and PCI DSS Level 1. For details on data security, see [here](https://www.nextmatter.com/privacy-security).
Our Support team is there to answer any questions and address any issues you might have. You can reach the team by sending an email to [support@nextmatter.com](mailto:support@nextmatter.com) or by clicking the chat icon at the bottom-right of this page or any other page in the help center. The chat widget is also available on our website: nextmatter.com.
## Next Matter portal
Browser Support
We support all major browsers **for desktop and mobile**:
* Three most recent versions of Chrome and Microsoft Edge
* Three most recent versions of Firefox
* Safari 13 and later versions
The iOS and Android versions should align with the supported browser version and the browser should run smoothly on your mobile and desktop devices.
You might still run Next Matter on the following browsers; however, we don't officially support them:
* Chromium-based browsers other than Chrome/Edge
* Samsung Internet
* Opera (excl. Opera Mobile)
We don't support any version of Internet Explorer, Opera Mobile, and other mobile browsers, including Safari 12 and older.
Connectivity
For mobile, we advise using 3G or higher connectivity.
If your administrator has invited you, you can log in in one of the three available ways:
* Email address and password
* Sign in with Google (GSuite email address matching the email address of the invitation)
* Sign in with a Microsoft account
We can change the name and logo of your workspace, as well as any notifications that are sent from Next Matter to external users (see [Assign a step to external user](/docs/assign-a-step-to-external-user)).
Get in touch with Next Matter Support to request the change.
Billing is automatically adjusted based on the number of users in your account. The demo and troubleshooting users that have the @nextmatter.com email address are not counted for billing purposes.
If you want to update your invoicing address, email address, or subscription plan, get in touch with Next Matter Support.
You can export your process and instance-related data at any time with our CSV export available in **Data > CSV exports**.
To export specific metrics, send an email to [support@nextmatter.com](mailto:support@nextmatter.com) and we will provide you with your data export within 48 hours. Be sure to include in your request the time period requested, and the metrics you are looking for.
The ability to view a workflow depends on several factors:
* The privacy settings of the workflow
* The privacy settings of the folder that the workflow is in
* Teams and users that are assigned to the steps in the workflow
We have a ready-made integration with [Amazon Redshift](/docs/integrate-with-amazon-redshift). We also allow integrations with any third-party application that uses REST API.
Yes! You can integrate Typeform into a workflow by replacing the default Next Matter public form link with a Typeform link and sending back the collected data into Next Matter. This requires configuring a webhook that triggers when a form is completed in Typeform.
It's best not to delete users immediately but to revoke their passwords first. If they had admin credentials, transfer them to a colleague. Set up **Out of Office** to reassign tasks before deleting users.
| Feature/Capability | Light Users | Colleagues |
| --------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| **Portals access** | ✅ Can access portals and workflows shared through portals | ✅ Can access portals |
| **Inbox access** | ✅ Can access their Next Matter inbox | ✅ Can access their inbox |
| **Request status & monitoring** | ✅ Can view status of their requests and monitor progress | ✅ Can view status of requests and monitor progress |
| **Workflow creation** | ❌ Cannot create workflows | ✅ Can create and build workflows |
| **Workflow starting** | ✅ Can only start workflows through portals | ✅ Can start any workflow (unless restricted by visibility settings) |
| **Workflow editing** | ❌ Cannot edit workflows | ✅ Can edit their own workflows, but need explicit editor rights for others' workflows |
| **Access to Company settings** | ❌ No access | ❌ No access |
| **Access to Automations library** | ❌ No access | ❌ No access |
| **General platform access** | ❌ Limited access | ✅ Full access to Next Matter portal |
| **Team membership** | ✅ Can be added to teams | ✅ Can be added to teams |
| **Team roles** | ✅ Can have team-specific roles | ✅ Can have team-specific roles |
| **Overall rights** | More restricted access | Broader access to functionality |
# Field validation
Source: https://help.nextmatter.com/docs/field-validation
Validate text patterns using regular expressions or allowing only numerical input
Regular Expressions (Regex) are sequences of characters that define a search pattern in text. You can use them to validate text based on complex criteria and match common text patterns like phone numbers and IP addresses. Regular expressions are both flexible and powerful, capable of matching virtually any text-based pattern you might want to include in a form.
If you don't want to check for specific patterns but want to narrow down inputs to numbers, you can enforce this validation by allowing only numbers in the input field. This will narrow down possible errors when providing postcodes, identifiers, or bank account numbers.
## Validation of short text fields
When you create your form, you can decide what type of field input is allowed. To help you eliminate possible input errors, you can decide to enable field validation for the short text fields.
Based on the type of input you expect, you can also create a customized message for users to see when they provide incorrect data.
For limitations in the supported regular expressions, see [Syntax (external page)](https://github.com/google/re2/wiki/Syntax). You can use [this external page](https://regex101.com/r/AsHMJK/3) to test if your expression is correct.
## Common regex examples
| Input | Expression | Validation | Input match | Example of validation message |
| ----------------------------------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| IBAN | `^[A-Z]{2}\d{2}[A-Z0-9]{11,30}$` | Checks for IBAN structure (no spaces, no lowercase letters, between 15 and 34 characters in total) | DE89370400440532013000~~DDE89370400440532013000~~ | The IBAN has an incorrect format |
| German IBAN | `^DE\d{2}\d{8}\d{10}$` | Ensures the IBAN follows the structure for German accounts and is 22 characters long | **DE89370400440532013000**~~FR89370400440532013000~~ | Ensure this is a German IBAN |
| Supplier identifier | `^[A-Z]{2}\d{6}$` | Ensures that the identifier follows the pattern of 2 uppercase letters followed by exactly 6 digits | **NL336789**~~NL33557700N~~ | This is not a correct identifier |
| Postcode | `^\d{5}$` | Checks for 5 digits | **85774**~~874~~ | Ensure the code has five digits |
| Value greater than 0.00 | `^([1-9]\d*(\.\d{1,2})?\|0\.[1-9]\d?)$` | Check whether the value is greater than 0.00 | **2.54**~~0.00~~ | Enter a value greater than 0.00 |
| Positive value or 0 | `^(0\|[1-9]\d*)(\.\d{1,2})?$` | Check whether a value is a positive number or 0. Allow decimals. | **0.12**~~-12~~ | Enter a positive value or 0 |
| Email addresses with a specific domain | `^[a-zA-Z0-9._%+-]+@mycompany\.com$` | Validates email addresses that end with "@mycompany.com" | **[magdalena@mycompany.com](mailto:magdalena@mycompany.com)**~~[magdalena@company.io](mailto:magdalena@company.io)~~ | |
| Price format with a comma for decimal and dot for thousands | `^[1-9]\d{0,2}(\.\d{3})*(,\d{2})?$` | Validates European-style formatted numbers with optional *thousands* separators and exactly two decimal places | **1.234,56** or **1.234.567,89**~~123456,78~~ | Enter the price separating thousands with a point |
Note that the operation doesn't support Pearl syntax in the editor. This means that look-around expressions such as: `(?=...)`, (`?!...)`, `(?<=...)`, or `(?
# Files, images, barcodes
Source: https://help.nextmatter.com/docs/files-and-images
File upload and image upload form fields enable quick upload of resources from desktop or mobile. The barcode field allows for fast scanning of barcodes.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
### File upload
You can upload multiple files of 50MB each. We support all file types except for potentially harmful executable and script-type files. These include, among others, the files with exe, ini, or jar extensions. As a workflow builder, you can also define the minimum and maximum number of files to upload.
To upload files using API, see [API specs](/reference/files_create)
There is also an option to attach files to comments, conversations, and instructions!
### Image upload
By default, you can upload up to 5 files of 25MB each. JPG, JPEG, PNG, TIFF, GIF, or WEBP files are allowed. If needed, you can increase the number of uploaded images to 10 in the form settings. As a builder, you can also define the minimum and maximum number of images to upload. **Tip**: Setting the minimum number can be helpful if you need your consultants to compare images (for example, for compliance reasons). **Note**: You can also add an image in the form of a publically accessible image link (50MB max)
To upload images using API, see [API specs](/reference/images_create)
Files and images are uploaded to the German bucket of the AWS service.
### Barcode scanning
The barcode field switches the device's camera and scans the provided barcode. The barcode is then transformed into numbers and entered into the field. You can enable validation for the barcode field to accept only numbers or match a specific regular expression.
For more on validation, see [Field validation](/docs/field-validation).
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a form using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Visual builder
Source: https://help.nextmatter.com/docs/flowchart-view
Understand how your workflow works and what the dependencies are by looking at a graphic representation of the workflow.
Visual builder allows you to draft workflows on the go by dragging and dropping components in the right place in the workflow. You can add steps, and integrations and use templates, rename steps and re-shuffle steps, and see what your workflow will look like with all the dependencies.
Building in the visual builder enables cross-team collaboration when a builder can sit side by side with the subject matter expert and draft workflows together in a joint session.
To open the view, click the **Show Visual** in the workflow editor.
To configure details of each integration or work on form fields and placeholders, click **Show Linear**.
# Formatting a date
Source: https://help.nextmatter.com/docs/formatting-a-date
Format date input to fit your needs
To format the date, do the following:
1. Go to the step configuration, and pick a date data reference using the braces icon.
2. Click the **Cog icon**.
3. Pick a format and click **Save**.
4. The format you selected will show next to the reference. To remove the format, click the cog icon again and click **Remove formatting**. If you remove formatting, the date format will go back to the default.
In most cases, the default for dates is the following:
* **started time** - %Y-%m-%d %H:%M:%S.%f%z
* **completed time** - %Y-%m-%d %H:%M:%S.%f%z
* **deadline** - %Y-%m-%dT%H:%M:%S.%f%z
* **form field output** - %A, %B %d, %Y
In some cases, especially when the data comes from an external source, such as a webhook trigger response, the default format might be different.
When you add another data reference, you need to pick its date format separately. You can pick the same format or a different one.
## Available date formats
Each data reference can have its own format. Refer to the table below to understand what each format contains. As you select the format for the date, you can see the preview of what the data will look like in the **Preview** field.
| Directive | Meaning | Example |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| %a | Weekday as locale's abbreviated name. | Sun, Mon, …, Sat (en\_US);So, Mo, …, Sa (de\_DE) |
| %A | Weekday as locale's full name. | Sunday, Monday, …, Saturday (en\_US);Sonntag, Montag, …, Samstag (de\_DE) |
| %w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 |
| %d | Day of the month as a zero-padded decimal number. | 01, 02, …, 31 |
| %b | Month as locale's abbreviated name. | Jan, Feb, …, Dec (en\_US);Jan, Feb, …, Dez (de\_DE) |
| %B | Month as locale's full name. | January, February, …, December (en\_US);Januar, Februar, …, Dezember (de\_DE) |
| %m | Month as a zero-padded decimal number. | 01, 02, …, 12 |
| %y | Year without century as a zero-padded decimal number. | 00, 01, …, 99 |
| %Y | Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
| %H | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 |
| %I | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 |
| %p | Locale's equivalent of either AM or PM. | AM, PM (en\_US);am, pm (de\_DE) |
| %M | Minute as a zero-padded decimal number. | 00, 01, …, 59 |
| %S | Second as a zero-padded decimal number. | 00, 01, …, 59 |
| %f | Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 |
| %z | UTC offset in the form±HHMM\[SS\[.ffffff]] (empty string if the object is naive). | (empty), +0000, -0400, +1030, +063415, -030712.345216 |
| %Z | Time zone name (empty string if the object is naive). | (empty), UTC, GMT |
| %j | Day of the year as a zero-padded decimal number. | 001, 002, …, 366 |
| %U | Week number of the year (Sunday as the first day of the week) as a zero-padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, …, 53 |
| %V | Week number of the year starting from 01 instead of 00. | 01, 02, ...54 |
| %c | Locale's appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en\_US);Di 16 Aug 21:30:00 1988 (de\_DE) |
| %x | Locale's appropriate date representation. | 08/16/88 (None);08/16/1988 (en\_US);16.08.1988 (de\_DE) |
| %X | Locale's appropriate time representation. | 21:30:00 (en\_US);21:30:00 (de\_DE) |
| %% | A literal '%' character. | % |
# Create document from HTML text
Source: https://help.nextmatter.com/docs/generate-document
Add custom HTML text and generate a document with a link you can use in Next Matter.
1. In your workflow editor, click **+ Add step**.
2. Select **Integrations > Quick action**.
3. Click **Configure**.
4. Select the **Generate Document from Custom Text** operation.
5. Add the text as data reference or enter it manually.
6. Enter the title for the file (it will be used as H1) and the file name.
7. (Optional) Provide a URL of the DOCX template to be used as the template for the generated file.
We'll create a URL for the file. Note that you'll need Next Matter access to access the link.
# Generate hash
Source: https://help.nextmatter.com/docs/generate-hash
Hashing combined inputs ensures a fixed-length unique ID.Now, you can concatenate strings and hash them with a no-code quick action.
This quick action helps you concatenate a set of strings and calculate a hash of the combined string. Hashing is useful for password storage, data integrity, and digital signatures and speeds up data retrieval while requiring less storage.
1. In your workflow, go to **+ Add step > Integrations > Quick action**.
2. Select the **Generate hash** operation.
3. Enter the input strings or use \{} to refer to data already used in the workflow. **Tip**: the string can be static or dynamic and have the following format: string, integer, boolean or JSON
4. Select the separator for the strings. For example, it can be an underscore(`_`) or a pipe (`|`).
5. Select the hashing method that best fits your needs.
* Message-digest hash functions such as MD5 hash digital signatures. Once hashed, the signature is transformed into a shorter value called a message digest. This method is good for error-checking purposes such as detecting file corruption,
* SHA-256 is a standard algorithm for creating a larger message digest. It's useful for database storage and retrieval, digital signatures, and cryptographic security. SHA-512 is stronger than SHA-256.
* BLAKE2b is efficient in hashing digital signatures and fast hashing for large data processing (due to high performance).
6. Save your changes.
# Automation explained
Source: https://help.nextmatter.com/docs/get-buy-in-for-automated-processes
Automation might be a technical concept, but its application is not technical. In fact, it happens everywhere.
## What is automation
**Automation happens everywhere**. For example, when you've paid for something your bank might send you a notification about your account being debited. When you apply for a job, you get an email confirming your CV has been sent out. This all happens automatically, without you needing to push a button.
## What should I automate with Next Matter
With Next Matter you connect a string of tasks that will automatically flow from one person to the next:
You can also **automate complex tasks** that together create **a workflow connecting multiple tools and teams**. For example, you can automate:
1. **End-to-end product return workflow** (this is when a customer wants to return a purchased product and get a refund)
2. **Car rental and return workflow** (with all side actions such as getting a crew to clean up the car after rental)
3. **Onboarding workflow** (when you take on a new supplier or employee)
and hundreds more...
## What are workflows
In a nutshell, workflow is a **set of steps that gets you from A to B**. Come to think of that, even preparing lunch is a workflow starting with getting the bread out and finishing with placing the plate in a dishwasher. Workflows can:
* have multiple steps and step types (forms to fill in, steps when a decision is needed, steps that need completing in parallel)
* branch out or take a different route based on conditions
* involve internal and external participants
* connect to 3rd party tools to exchange data
* have deadlines
You will be able to create and participate in all kinds of workflows in Next Matter.
## Time saved
Next Matter calculates how much time automation saves you every week.
We assume that each completed step saves you, on average, three minutes.
Not only does the time saved on the activity itself count but also the hidden cost of lost focus and employee overwhelm. Research indicates, that one context switch alone costs 23 minutes and decreases overall employee satisfaction and health.
Indeed, your very own Next Matter use cases might lead to a different minute average per step. Still, looking at the research and having analyzed and discussed this with our customers over and over again we are confident that this figure is conservative.
That's why the calculation we use is the following: **(Steps completed this week x 3 minutes) / 60 = Hours saved this week**
Additionally, it's worth mentioning that each Next Matter step automates many aspects of operations at once:
* Writing a task
* Assigning it to the right person or team
* Explaining to them how to do it right
* Follow-ups
* Escalations
* Keeping the team in the loop
* Updating the spreadsheet tracker
* Remembering to make the quarterly budget adjustment
* Validating customer input
* Writing the auditor report
# Get started: Build workflows
Source: https://help.nextmatter.com/docs/get-stared-builder
As a builder, you'll be creating and managing workflows and integrations.
Let's get you started, nice and easy.
## Product overview
Start by getting to know the app. This tour gives you an overview of what you can find in each of the navigation items.
## Prepare to build
The best way to start with Next Matter is to build a workflow and see how it works in practice. Then you can move on to adding team members and trying out more complex integrations.
Watch this tour to learn how to:
* Add users
* Start integrating other tools
* Generate your key for any custom integration you might need
* Start building workflows
## Advanced configuration
When you feel confident building a basic workflow and adding users, it's a good idea to explore other features to help you become a Next Matter expert.
When a task is assigned, users get notified about it in their Next Matter inbox and by email.
However, you can also notify them by Slack.
1. Start by connecting Slack in Next Matter. You can do it in **Automations library**.
2. Click the avatar in the bottom-left corner and open **User profile**.
3. In **Notifications**, select **Slack**.
Note that as an admin, you connect Slack, but each Next Matter user can decide on their own how they want to be notified.
If you're looking for ideas on how to break your workflow into steps, our AI can help you out. Click **Create new workflow with AI** and describe your workflow in a few words. We'll give you some ideas of what your steps might be.
When you start building your workflow, click **Show visual** in the top bar. Visual builder allows for drafting workflows in collaboration with Subject Matter Experts, where you can drag and drop steps together.
In the case of tools such as Asana, you'll need to connect them using REST API.
To do that, you'll need the 3rd party app's API key. If you're not an admin, you can ask your IT department to generate those for you.
To use such an integration when building a workflow, you'll need a **Integrations > Custom integration** step.
You'll need to provide:
* the 3rd party key in **3** (as in the screenshot)
* REST API endpoint URL in **1** (screenshot)
* JSON request body in **4** (screenshot)
* any additional headers in **2** (screenshot)
You will find the 3rd party calls in their developer documentation.
Actions such as completing a step can be easily achieved with Next Matter own REST API. You can find all the details [here](/reference/intro/getting-started).
You'll need to authenticate with the Next Matter API key, which you can generate in [**Company > Next Matter API keys**](https://app.nextmatter.com/app/workspace/nm-api-keys).
## Key features to explore as next steps
* **Data references**: When building workflows, you can re-use data from the workflow (metadata, user-entered data, and data obtained from integrations). Learn how to [use data references](/docs/use-data-references) and [variables](/docs/pull-variables-into-a-process)
* **Changelog**: You can build workflows, test draft versions, and revert changes. Learn more about [version control](/docs/workflow-versions)
* **Branching**: Base steps on conditions to account for multiple workflow paths. Learn more [about conditions](/docs/set-conditions-to-a-step)
* **Multiple ways to start a workflow**: Start workflows manually or when a trigger is received. Learn more about how to [start workflows](/docs/work-with-instances)
* **Portals**: You can share specific workflows as portals available to users. The users can start workflows from there and use this space as their quick resolution center. Learn more [about portals](/docs/share-workflows-in-portals)
# Get started: Work with tasks
Source: https://help.nextmatter.com/docs/get-started-user
As a Next Matter user you'll be working with tasks and getting notifications in your inbox.
As a full user, you have access to most Next Matter functionalities. However, it's a good idea to start your journey with the following:
* how to use your inbox
* how to complete a task
* how to collaborate on workflows or ask a question
### Using your inbox: Watch a tour
### Completing a task: Watch a tour
### Collaborating on tasks: Watch a tour
### Managing notifications: Watch a tour
## Tips and tricks
When you've mastered the basics, you can move to to these articles to get more insights into Next Matter.
Sometimes, company admins can collect workflows and present them as portals. These are pages you can use to start a workflow and get to a solution quickly.
If your admin shares a portal with you, you'll get an email invitation to create a Next Matter account. Create it and do the following:
1. Open **Portals** (under **Inbox** in your left-hand navigation).
2. Start the workflow by clicking its tile.
# Add users
Source: https://help.nextmatter.com/docs/grow-your-team
You can quickly invite new colleagues and create and manage your team.
You must be an administrator to invite colleagues or light users to the Next Matter workspace.
## Invite colleagues or light user
1. In the main navigation, go to **Company.**
2. Click **Colleagues**.
3. In the top right corner, click **+Add colleague**.
4. Enter the personal details of the invitee.
5. Select the role for the person.
6. Click **Send invitations**.
Each user you invite will receive an email from Next Matter inviting them to activate their account and set up their password.
The **Onboard a list of light users** Next Matter template will help you quickly add a list of light users and share a portal with them. You can find the template when you add a step and select **Templates > Next Matter templates**.
## Add colleagues and light users to teams
To add your colleagues to a team, click **+ Add** next to the colleague's name (in **Company > Colleagues**).
Currently, you can only add colleagues to teams one by one.
# Complete tasks as guest
Source: https://help.nextmatter.com/docs/guest-user
You can complete workflow tasks and start requests by opening a link or scanning a QR code.
Need to exchange equipment, request car support, or log in a maintenance issue? This is what workflows are for. You can easily do it by completing an online form. The form opens with a link or a QR code, which you can scan with your mobile device.
## Complete tasks
When you complete your form, simply click **Complete**. This will set your request in motion, and the responsible parties will be notified about it.
A company might send you a confirmation email with a link to track your request. If you click the link, you'll see the stages of the workflow and which ones have already been completed.
## Track progress
Should your request require additional input, you'll be notified by email with a link to another form to complete.
# Inbox
Source: https://help.nextmatter.com/docs/inbox
All your tasks are visible in your Next Matter inbox helping you to organize your work.
Inbox allows you to organize your work and splits the incoming tasks into those that need your immediate attention, and those that can wait.
You can also see which task is assigned directly to you and which you can take over on behalf of your team.
# Integrate across tools
Source: https://help.nextmatter.com/docs/integrate-across-tools
Next Matter is the common interface for all your team's tools. Explore our extensive integration capabilities.
## No-code integrations
No-code integrations only require you to [connect the app](https://app.nextmatter.com/app/workspace/integrations) and configure the step.
### Start with no-code integrations
1. Connect the app in Next Matter. You can do it in **Automations library**.
2. When creating a workflow, click **Add step**, and select the app you want to connect with.
3. Configure the step by providing the required values.
[Connect to Zendesk (Code-Free)](https://help.nextmatter.com/docs/connect-to-zendesk-code-free)
[Connect to Google Sheets](https://help.nextmatter.com/docs/connect-to-google-sheets)
[Create a No-Code Email](https://help.nextmatter.com/docs/create-a-no-code-email)
[No-Code Slack Notifications](https://help.nextmatter.com/docs/no-code-slack-notifications)
[Connect to Front (Code-Free)](https://help.nextmatter.com/docs/connect-to-front-code-free)
[Connect to Freshdesk](https://help.nextmatter.com/docs/connect-to-freshdesk)
[Analyze Text Code-Free with AI](https://help.nextmatter.com/docs/analyze-text-code-free-with-ai)
[Connect to Microsoft Outlook (Code-Free)](https://help.nextmatter.com/docs/connect-to-microsoft-outlook-code-free)
[Connect to SharePoint (No-Code)](https://help.nextmatter.com/docs/connect-to-sharepoint-no-code)
[Connect to Gmail (No-Code)](https://help.nextmatter.com/docs/connect-to-gmail-no-code)
## Advanced (templates)
These integrations require you to [connect the app](https://app.nextmatter.com/app/workspace/integrations), enter the API endpoint, and provide a JSON body with values.
These integrations require technical setup, but we provide ready-made templates to get you started quickly. You can find them when you click **Add step > Templates > 3rd party templates**.
### Start with advanced integrations
1. Connect the app in Next Matter. Go to [**Automations library**](https://app.nextmatter.com/app/workspace/integrations).
2. When creating a workflow, click **Add step > Templates > 3rd party templates** or **Add step > Integrations**.
3. Select the template or integration to add to your workflow.
## Pro (API and HTTP integrations)
These integrations require you to authenticate with the 3rd party token, enter the API endpoint, and provide a JSON body with values.\
These integrations require technical setup, but we provide ready-made templates to get you started quickly.
### Start with API integrations
You can connect with any tool that supports REST API. Depending on the API, you will need to authenticate your call using Basic authentication, an API token, or an API key.
* When editing a workflow, add an **Integrations> Custom integration** step, and enter the API call details yourself.
**Tip**: Some integrations are available as ready-to-use templates. Click **Add step > Templates > 3rd party templates** and find out if there is a template available for your integration.
Need an integration that's not listed? Ask our Support for help (top-right corner)!
### Explore custom credentials
You can store credentials to use for 3rd party connections directly in Next Matter. This way, you don't need to add them every time you build a custom integration step. [Learn more...](/docs/api-keys)
# Integrate with Airtable
Source: https://help.nextmatter.com/docs/integrate-with-airtable
Integrate with Airtable to create and update Airtable records.
## Before you begin
* Make sure you have your Airtable API at hand. To generate it, see [Airtable documentation](https://support.airtable.com/docs/creating-and-using-api-keys-and-access-tokens#personal-access-tokens-basic-actions).
* Get your Airtable App ID.
To obtain the ID of your Airtable base, open the Airtable Standard API page and click the Airtable base that you want to use. This will open the API page of the base. The base ID can be found in the URL of the API page of the base. In the URL, the base ID is immediately after [https://airtable.com/](https://airtable.com/) and starts with app .
For details, see [Airtable documentation](https://support.airtable.com/docs/finding-airtable-ids). You can also open the Airtable API documentation directly from your Airtable portal by clicking **Help** and accessing the **API documentation**.
* Get your Airtable table name. You can find it on the table tab. For example:
To use the name in the endpoint URL, you need to encode the space to `Imported%20table`.
* To update a record, you also need the `recordId`. You can find it by calling the List records endpoint. For details, see [Airtable documentation](https://airtable.com/developers/web/api/list-records#response-records).
## Create a record
1. In Next Matter select the workflow that should integrate with Airtable, and add a new integration step.
2. Click **Settings** and enter the details (with your data insead of our placeholders)
* **Method**: POST
* **URL**: [`https://api.airtable.com/v0/YOUR_APP_ID/YOUR_TABLE_NAME`](https://api.airtable.com/v0/YOUR_APP_ID/YOUR_TABLE_NAME)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Airtable_API_KEY`
* **Body** might look like the following:
```json JSON theme={null}
{
"records": [
{
"fields": {
FIELDS_FOR_NEW_RECORD //this is a placeholder
}
}
]
}
```
The filled-in Body might look like the folling:
```json JSON theme={null}
"fields": {
"NM Instance ID": 1234,
"Instance Name": "Test1",
"Instance Tags": "test",
"Instance Started Time": "2022-10-02"
}
```
3. Create a variable for the `recordId` with the value of `$.records[0].id`.
4. Save your changes.
You can access the ID of the newly created record in subsequent steps through a data reference. This can be used to update the record later on.
## Update a record
1. In Next Matter select the process that should integrate with Airtable, and add a new integration step.
2. Click **Settings** and enter the following details:
* **Method**: PATCH
* **URL**: [`https://api.airtable.com/v0/YOUR_APP_ID/YOUR_TABLE_NAME/RECORD_ID`](https://api.airtable.com/v0/YOUR_APP_ID/YOUR_TABLE_NAME/RECORD_ID)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Airtable_API_KEY`
* **Body** might look like the following:
```json json theme={null}
{
"fields": {
"field1": "value1",
"field2": "value2"
}
}
```
3. Save your changes.
# Integrate with Amazon Redshift
Source: https://help.nextmatter.com/docs/integrate-with-amazon-redshift
Get data out of your database or push data back to Amazon Redshift from a Next Matter workflow.
## Before you begin
* Set up a connection to Amazon Redshift. For details on allowing outside connections, see [Amazon documentation](https://aws.amazon.com/premiumsupport/knowledge-center/cannot-connect-redshift-cluster/).
* You need to have a basic understanding of SQL queries.
* Reach out to our Support team in case you need to allowlist our IP address.
## Set up the integration in Next Matter
1. Go to **Automations library**.
2. In the Amazon Redshift app tile, click **Connect**.
3. Enter the required data. You might want to contact your admin about it.
## Use the integration
1. Click a workflow in which you want to use Redshift.
2. Click **+ Add step**.
3. Select **Integrations > Amazon Redshift**.
4. Click **Settings**.
5. In **Query**, enter a PostgreSQL query you want to run. It can be an INSERT, SELECT, UPDATE, or DELETE query. Make sure it's one query per integration step. Nested queries and subselects are not allowed.
You can use data references to dynamically build your query and fill it with values from your workflow instance. You can also store query results in variables for using them later in the workflow.
## Security restrictions
* The query will only return a maximum of a hundred rows. We recommend using an ORDER BY statement in your query so that you can control which hundred rows will be returned.
* Queries that are very complex and run longer than one minute are not supported.
* If you need support to run queries without these restrictions, contact our Support team.
# Integrate with Asana
Source: https://help.nextmatter.com/docs/integrate-with-asana
You can integrate with Asana to automatically create a task in Asana in a workspace, project, and section from a Next Matter workflow.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
To start integrating, you need the following data from Asana:
* your Personal Access Token (see [Asana documentation](https://developers.asana.com/docs/personal-access-token))
* your workspace, project, and task IDs. These can be extracted from URLs. For example, a task URL is constructed in the following way: [`https://app.asana.com/0/PROJECT_ID/TASK_ID`](https://app.asana.com/0/PROJECT_ID/TASK_ID)
* your Asana section ID. You can query for it with [this call](https://developers.asana.com/reference/getsection).
* your task name. You can use Asana search to get it.
## Dynamically assign tasks in Asana
### 1. Get assignee\_ID
1. Create a step in **Integration > Custom integration** with the following settings:
* Method: GET
* URL: [`https://app.asana.com/api/1.0/users/USER_EMAIL`](https://app.asana.com/api/1.0/users/USER_EMAIL)
* Headers: Content-type: `application/json`
* Headers: Authorization: `ASANA_PERSONAL_ACCESS_TOKEN`
* Headers: Accept: `application/json`
2. In the **Settings**, click **+ Add a variable**.
3. Enter the following variable values:Name: `assignee_id`Value: `$.data.gid`
4. Save your changes.
### 2. Create a task in Asana from Next Matter
1. Create a step in **Integration > Custom integration** with the following settings:
```json JSON theme={null}
{
"data": {
"approval_status": "pending",
"assignee": "{2. Get Assignee Id - Integration step - assignee_id (string)}",
"due_at": "2022-07-25T00:00:00+0000",
"followers": ["{1. Enter Task details - Task assignee - User Selection (user email)}"],
"name": "{1. Enter Task details - Task name - Input}",
"html_notes": "{1. Enter Task details - Task details - Input} ",
"projects": ["ASANA_PROJECT_ID"],
"start_at": "2022-07-11T00:00:00+0000",
"workspace": "ASANA_WORKSPACE_ID"
}
}
```
* **Method**: POST
* **URL**: [`https://app.asana.com/api/1.0/tasks`](https://app.asana.com/api/1.0/tasks)
* **Headers**: Content-type: `application/json`
* **Headers**: Authorization: `ASANA_PERSONAL_ACCESS_TOKEN`
* **Headers**: Accept: `application/json`
* **Body** (an example)
2. In the **Settings**, click **+ Add a variable**.
3. Enter the following variable values:Name: `task_id`Value: `$.data.gid`
4. Save your changes.
### 3. Update the task section
This is an optional step. In case your Asana project is organized in sections, you can add a step to move the just-created task to the correct section.
1. Create a step in **Integration > Custom integration** with the following settings:
* **Method**: GET
* **URL**: [`https://app.asana.com/api/1.0/users/USER_EMAIL`](https://app.asana.com/api/1.0/users/USER_EMAIL)
* **Headers**: Content-type: `application/json`
* **Headers**: Authorization: `ASANA_PERSONAL_ACCESS_TOKEN`
* **Headers**: Accept: `application/json`
2. In the **Settings**, click **+ Add a variable**.
3. Enter the following variable values:Name: `assignee_id`Value: `$.data.gid`
4. Save your changes.
### 4. Move a task to a specific Asana section
1. Create a step in **Integration > Custom integration** with the following settings:
```json JSON theme={null}
{ "data": { "task": "{Data reference to task_id}" } }
```
* **Method**: POST
* **URL**: [`https://app.asana.com/api/1.0/sections/SECTION_ID/addTask`](https://app.asana.com/api/1.0/sections/SECTION_ID/addTask)
* **Headers**: Content-type: `application/json`
* **Headers**: Authorization: `ASANA_PERSONAL_ACCESS_TOKEN`
* **Headers**: Accept: `application/json`
* **Body** (an example)
2. Save your changes.
# Integrate with Azure Event Hubs
Source: https://help.nextmatter.com/docs/integrate-with-azure-event-hub
Exchange data with 3rd party services using Azure Event Hubs.
## Authentication
Azure Event Hubs doesn't use OAuth 2.0 scopes like Microsoft Graph API. Instead, authentication is handled through Shared Access Policy.
## Before you begin
### Connect your hub
1. Log in to Next Matter with an admin account.
2. In **Automations Library** \[left-hand navigation panel], click **Connect** on the Azure Event Hubs tile.
3. Paste your Connection string for a specific event hub from your Azure Portal.
1) Open your **Azure Portal**.
2) Navigate to **Event Hubs** and select your **Event Hub Namespace**. This should be the namespace where the event hub you'll use with Next Matter resides.
3) In the left-hand menu, click **Settings > Shared access policies**.
4) If the policy hasn't been created for this event hub, click **+ Add**, give the namespace a name, and select the **Listen** and **Send** policies.
5) Click **Create**.
6) Click the policy to open it and copy the **Primary connection string**.\
It should look like the following:
```
Endpoint=sb://.servicebus.windows.net/;SharedAccessKeyName=;SharedAccessKey=
```
Make sure you're at the Namespace level, not inside a specific Event Hub instance.
### Create a consumer group for Next Matter listener
A consumer group specifies the listener that should receive the data from an event.
1. In your Azure Portal.
2. In the search bar at the top, type Event Hubs and select **Event Hubs** from the results.
3. Select your **Event Hub Namespace**.
4. Select the **Event Hub** and click it.
5. In the left menu, select **Consumer groups** (under **Entities**).
6. Click **+ Consumer group**.
7. Enter a unique name (for example, NM-service).
8. Click **Create**.
## Receive data
This operation extracts the data from an event, turns it into reusable variables, and sends the data to the specified fields in the Next Matter workflow. Before you configure this operation, you should have the workflow created as you'll need the IDs of the specific form fields where you want the event data to reside.
1. In your Next Matter portal, click **Workflows**.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Azure Event Hubs**.
4. Select the **Receive event data** operation.
5. Select the event hub you want to receive the data from and the consumer group you created for Next Matter.
6. Select the data you need to use in the Next Matter workflow. In the **Event data filters**, specify the filter path and value (this is the value we'll be filtering the event for). After we've filtered the event payload, we'll turn the data into variables you can reuse later.\
To get the right path, check the data section of the payload. For example, if your schema looks like the one below and you want to extract the ID data, enter `data.inputdata.id` in the **Property path** field. Do not use `$` or `[]` list access.
```json theme={null}
{
"data":{
"inputdata":{
"id": 123,...
}
}
}
```
1. Enter **User properties filters** to extract custom properties and optionally **System properties filters** to extract event metadata, such as timestamp.
2. In your workflow, create the next step. It should be a form with short or long text fields. The fields will be populated with the filtered data and the step will automatically be marked as completed. Copy the IDs of the form fields into the **Receive event data** operation.
**Tip**: Ensure the form fields are set to **Optional**. This will prevent the integration step from failing when there isn't any value provided. It's also a good idea to create a **Long text** form field for the payload summary in case troubleshooting is needed. To fill it out, add the `$` **Variable JSON path** in the **Receive event data** operation.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up process and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
1. Enter the IDs of the form fields in the **Data destination** section and the variable JSON path. For example, if the data looks like the following, the `id` path will be: `$.data.inputdata.id`
```json theme={null}
{
"data":{
"inputdata":{
"id": 123,...
}
}
}
```
2. Save your changes.
Testing the integration is not available as it involves data from a future event.
When the event happens and the data is received, the workflow form will automatically be populated with data and the step will be completed.
## Send data from Next Matter to the Event Hub
1. In your Next Matter portal, click **Workflows**.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Azure Event Hubs**.
4. Select the **Send event to Hub** operation.
5. Select the event hub to send the data to.
6. In the **Event data** field, enter the data you need to send. You can enter the JSON manually or use data references to replace specific data chunks. Your data to send might look like the following:
7. (Optional) You can send custom workflow data as properties to the event hub. Enter the name and value of the data chunk, or select a data reference.
8. Save your operation.
All timestamps and date formats are displayed according to UTC time.
# Integrate with Box
Source: https://help.nextmatter.com/docs/integrate-with-box
Connect your workflow to Box to handle your documents and upload them to workflow steps
You can connect Box in Next Matter so that you don't have to authenticate your API calls in specific steps.
You need to first connect Box in your Next Matter portal.
## Connect an integration
1. In your Next Matter portal, go to **Automations library**, and click **Connect** in the Box app tile.
2. Authenticate with your Box credentials. If you connect the integration in Next Matter you will not need to authenticate your API calls. When you configure your Box integration step in the workflow, select Box from the drop-down in the **Authorization** field in the **Headers** section.
## Box use cases
You can use your Box integration to upload files to workflow steps or to download documents from steps and send them to Box.
Refer to the following Box developer documentation links to structure your API calls:
* [Upload a file to Box](https://developer.box.com/reference/post-files-content/)
* [Send a document sign request](https://developer.box.com/reference/resources/sign-request/)
* [Create a task for a Box file](https://developer.box.com/reference/resources/task/)
# Integrate with DHL
Source: https://help.nextmatter.com/docs/integrate-with-dhl
Create shipments and return corresponding shipment tracking numbers, labels, and documentation.
1. Select the Next Matter workflow that should integrate with DHL.
2. Click **Edit workflow**.
3. Click **Add step** and select **Integrations** as the step type.
4. Click the step to open it.
5. Click **Settings**.
6. Select POST as the Method and enter the following URL:
```http HTTPS theme={null}
URL: https://api-eu.dhl.com/parcel/de/shipping/v2/orders
```
7. Create the following **Headers**
* **Accept**: application/json
* **dhl-api-key**: `YOUR_DHL_API_KEY` You can create the key by clicking [this link](https://developer.dhl.com/api-reference/parcel-de-shipping-post-parcel-germany-v2#get-started-section/user-guide) and clicking the **Get Access** button in the top right corner.
* **Content-type**: application/json
* **Authorization**: `Basic authentication` (replace with your data)
* **Accept-Language**: DE-de
8. Enter the **Body** of the request. It might look like the following (make sure to replace the placeholders)
```json JSON theme={null}
{
"profile": "STANDARD_GRUPPENPROFIL",
"shipments": [
{
"product": "REPLACE_PRODUCT",
"billingNumber": "BILLING_NUMBER",
"refNo": "ORDER_NUMBER",
"shipper": {
"name1": "REPLACE_SHIPPER_COMPANY_NAME",
"addressStreet": "REPLACE_SHIPPER_STREET",
"additionalAddressInformation1": "REPLACE_SHIPPER_STREET,
"postalCode": "REPLACE_SHIPPER_POSTALCODE",
"city": "REPLACE_SHIPPER_CITY",
"country": "DEU",
"email": "REPLACE_SHIPPER_EMAIL",
"phone": "REPLACE_SHIPPER_PHONE"
},
"consignee": {
"name1": "REPLACE_CONSIGNEE_NAME",
"addressStreet": "REPLACE_CONSIGNEE_STREET",
"additionalAddressInformation1": "REPLACE_CONSIGNEE_STREET",
"postalCode": "REPLACE_CONSIGNEE_POSTALCODE",
"city": "REPLACE_CONSIGNEE_CITY",
"country": "DEU",
"email": "REPLACE_CONSIGNEE_EMAIL",
"phone": "REPLACE_CONSIGNEE_PHONE"
},
"details": {
"dim": {
"uom": "mm",
"height": REPLACE_DIM_HEIGHT,
"length": REPLACE_DIM_LENGTH,
"width": REPLACE_DIM_WIDTH
},
"weight": {
"uom": "g",
"value": REPLACE_DIM_WEIGHT_IN_GRAMS
}
}
}
]
}
```
9. Click **Save changes**.
If needed, refer to the [DHL API docs](https://developer.dhl.com/api-reference/parcel-de-shipping-post-parcel-germany-v2?language_content_entity=en#operations-tag-Shipments_and_Labels).
# Integrate with Docusign
Source: https://help.nextmatter.com/docs/integrate-with-docusign
You might want to send documents that are part of the Next Matter workflow to sign with Docusign. Integrate with Docusign to manage document signing end to end.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* To connect Docusign, you first need to generate your Docusign Account ID and then connect Docusign and Next Matter.
## 1. Get the details from Docusign
1. Sign in to Docusign as an administrator.
2. Navigate to **Settings > Apps and Keys**.
3. Copy the **Account API ID** that is displayed in **My Account Information**.
## 2. Connect to Next Matter
1. In your Next Matter portal, go to **Automations library**.
2. Click **Connect** in the Docusign app tile.
3. Follow the prompts to allow access for Next Matter to create and send envelopes.
## 3. Build your process with Docusign integration
## Upload the files to Next Matter and send them to sign
1. Select the Next Matter workflow that should integrate with Docusign.
2. Click **Edit workflow**.
3. Click **Add step** and select **Integrations** as the step type.
4. Select DocuSign as the integration.
5. Click the step to open it.
6. Click **Settings**.
7. Select POST as the Method and enter the following URL:
```http HTTPS theme={null}
URL: https://eu.docusign.net/restapi/v2.1/accounts/API_ACCOUNT_ID/envelopes
```
Note that this URL is set to European instances of Docusign. You might want to check where your instance is hosted.
8. Select DocuSign from the drop-down in the **Authorization** field in the **Headers** section.
9. Enter the Body of the request. It might look like the following:
```json JSON theme={null}
{
"emailSubject": "Please sign this document",
"documents": [{
"documentBase64": "{File Upload - First file (base64)}",
"name": "Employment Contract",
"fileExtension": "pdf",
"documentId": "1"
}],
"recipients": {
"signers": [{
"name": "John Doe",
"email": "[email protected]",
"recipientId": "1",
"routingOrder": "1",
"tabs": {
"signHereTabs": [{
"anchorString": "**signature_1**",
"anchorUnits": "pixels",
"anchorXOffset": "20",
"anchorYOffset": "10"
}]
}
}],
"carbonCopies": [{
"name": "Jane Smith",
"email": "[email protected]",
"recipientId": "2",
"routingOrder": "1",
}]
},
"status": "sent"
}
```
Make sure there is a form step with a field to upload the DocuSign document that proceeds the integration step.
There can be multiple uploaded files but each needs the base64 encoding format as the Data reference.
10. Click **Save changes**.
#### Considerations
* The **Sign** field specified in the example above is one of many fields (called [Tabs in Docusign](https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipienttabs/)) that can be configured. You can add configure fields per recipient and assign each recipient different fields to fill in. Configure these fields in the tabs parameter.
* The position of the field in the document is specified by the `anchorOffset`.
* For each recipient, you can configure the name and email either with predefined values or using data references from previous form fields. Each recipient has a different recipient ID, so just increase the ID by one each time a new one is included. For details on. recipients, see [Docusign documentation](https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipients/). The above example uses the signer and the person receiving a carbon copy.
* The `sent` status indicates that an envelope will be created and directly sent.
## Send an Envelope Template to sign
1. Select the Next Matter workflow that should integrate with Docusign.
2. Click **Edit workflow**.
3. Click **Add step** and select **Integrations** as the step type.
4. Select Docusign as the integration.
5. Click the step to open it.
6. Click **Settings**.
7. Select POST as the Method and enter the following URL:
```http HTTPS theme={null}
URL: https://eu.docusign.net/restapi/v2.1/accounts/API_ACCOUNT_ID/envelopes
```
8. In **Authorization**, select Docusign.
9. Enter the Body of the request. It might look like the following:
```json JSON theme={null}
{
"templateId": "ENVELOPE_TEMPLATE_ID",//this is a placeholder
"templateRoles": [
{
"name": "John Doe",
"email": "[email protected]",
"recipientId": "1",
"roleName": "signer",
"tabs": {
"textTabs": [{
"tabLabel": "Job Position",
"value": "Marketing manager"
},
{
"tabLabel": "Organization",
"value": "Organization"
}]
}
},
{
"name": "Jane Smith",
"email": "john@[company].com",
"recipientId": "2",
"roleName": "cc"
}],
"status": "sent"
}
```
#### Considerations
* You can get the Template ID from Docusign. Navigate to Templates and select the template to use. The template ID is at the top of the template.
* To get Docusign `recipientId`, see [Docusign documentation](https://developers.docusign.com/docs/esign-rest-api/how-to/get-envelope-recipients/).
* Each template has defined recipients, documents, and fields (tabs). The recipients for each envelope in Docusign are defined by a Rolename to identify them. Each recipient may have a different role type defined in the template itself. The document can contain custom fields created in Docusign. You can fill them out automatically in your Next Matter workflow. Each custom field is associated with one recipient. This is why the "tabs" attribute is defined per recipient. You can create a custom field, label it, and enter the value in the `tabLabel` attribute of the **Body**.
For more on creating custom fields in Docusign, watch [this Docusign tutorial](https://www.youtube.com/watch?v=kH09yhOCfMA).
# Integrate with Freshdesk
Source: https://help.nextmatter.com/docs/integrate-with-freshdesk
You can trigger a Next Matter workflow directly from Freshdesk or send Next Matter workflow data to a Freshdesk ticket.
## Before you begin
* You need the Next Matter API Key. If you don't have it, contact your organization admin, or, if you're an admin, generate the key in Next Matter by going to **Company > Next Matter API keys**.
* You need the ID of the workflow that should be started from Freshdesk. You can get the ID by clicking the workflow and copying the number from the URL in your browser.
## Add workflow-related data to Freshdesk ticket
### Set up custom fields in Freshdesk
1. In Freshdesk, go to **Admin > General Settings > Ticket Fields**.
2. From the left side, drag a **Single-line text** field into the field list. Click on the new field and label it "Next Matter URL". This will create a custom field for Next Matter-related information and will help your agents identify tickets that have already been sent to Next Matter.
### Set up automation rule in Freshdesk
1. Create an automation rule in Freshdesk and decide when a Next Matter workflow should be launched. To create a rule, go to **Access Admin > Helpdesk Productivity > Automations**.
2. Go to the **Ticket Creation** tab and click **New Rule**. Set the conditions for triggering the workflow. They might look like the following:
3. In **Perform these actions** select **Trigger Webhook** and fill in the Form with the following data:
* **URL**: [`https://core.nextmatter.com/api/instances/`](https://core.nextmatter.com/api/instances/)
* **Request type**: POST
* **Enable custom headers**: (Authorization: `API-Key MY_NM_Key` and Encoding: `complete`)
* **Content**: Advanced, for example:
```json theme={null}
{
"process": "https://core.nextmatter.com/api/processes/NEXTMATTER_WORKFLOW_ID/",
"name": "{{ticket.id}}"
}
```
Now you can use Next Matter **no-code steps** to update the ticket, view its details, or reply to it. \
For details, see [Connect to Freshdesk no-code](/docs/connect-to-freshdesk)
# Integrate with Front
Source: https://help.nextmatter.com/docs/integrate-with-front
Connect to the Front App and add a comment to a conversation.
## Before you begin
* Have your Front API token at hand. See [Create Front API token](https://dev.frontapp.com/docs/create-and-revoke-api-tokens). Click the Front tile in Next Matter Automations Library and enter the token in the provided field to connect the integration.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
You can see and work with Next Matter workflows from within Front.
Features:
* The list of instances is sorted by started date and filtered by the conversation ID as a tag
* If you start an instance in the conversation view, this instance is automatically tagged and linked to this conversation enabling searching and tracking. At any moment, you can unlink the instance (if you have the permissions to modify the instance).
* If you want to sort through the list of all available workflows click **Start** left of **Instance Overview**.
To add the widget, do the following:
1. Log in to [https://app.frontapp.com](https://app.frontapp.com) and click **Settings** (top right).
2. Open **Company** and click **App Store**.
3. Search for Next Matter.
4. Click **Enable app**.
Your app will now be available in the right-hand sidebar of your inbox. Click the Next Matter logo to open the app.
Note that to link an instance to the conversation, you need one of the following permissions:
* organization admin
* workflow lead
* instance lead
To do that use a no-code step. You can find it when you add an integration step. For details, see [Front no-code](/docs/connect-to-front-code-free)
# Integrate with GIPHY
Source: https://help.nextmatter.com/docs/integrate-with-giphy
Get a gif with a specified name.
1. Click **Workflows**.
2. Click **+ Add step**, and select to create a custom integration step.
3. Click the gear icon to configure the step. This step will get your GIF from GIPHY.
4. In the **Settings**, enter the following details:
* Call **GET** to the following **URL**: `http://api.giphy.com/v1/gifs/random?tag={Instance name}&api_key=KEY_VALUE&rating=g`
**Tip**: The instance name is a data variable you can pick by clicking `{}`. You also need to replace the API key value with your own key. See [GIPHY documentation](https://developers.giphy.com/docs/api/endpoint#random).
* Leave the remaining fields empty
1. Create a variable for the gif's URL with the value of `$.data.images.downsized_medium.url`.
2. Create a custom integration step to get an embeddable URL of the GIF. To do so:
1. Make sure you have Google Sheets set up in **Automations library**.
2. Create a **Custom integration** step with the following settings:
* **Authorization**: Google Sheets
* Call **PUT** to the following**URL**: `https://sheets.googleapis.com/v4/spreadsheets/1XX4AD12BbK1noehLXe9BNd3-RwELXfGk2FqGes1ZGYM/values/Sheet1!A1:A1?valueInputOption=USER_ENTERED&includeValuesInResponse=true`
* In **Body**, replace the image source data reference with your values:
```json json theme={null}
{
"majorDimension": "ROWS",
"range": "Sheet1!A1:A1", //leave as is
"values": [
[ 'img src="{1. Get a GIF - GIPHY Query - URL (plain)}"' ] //this a data reference to the GIF fro the previous step
]
}
```
iii. Create a variable for the GIF with the value of `$.updatedData.values[0][0]`.
3. Save your changes.
4. Create a step to show the GIF.
# Prepare to integrate
Source: https://help.nextmatter.com/docs/integrate-with-google
Connect to Google and exchange data between Google services and Next Matter.
## Prepare to integrate
Start by integrating a specific Google app in Next Matter.
1. Set up your Next Matter account
* Create an account: Sign up for Next Matter and set up your workspace.
2. Create an account to connect Google services.
Use a specific Google user (or a service account) to easily control what files and sites Next Matter has access to. Such a user could be called service@\[company-domain].com. We connect Google apps separately so that you can control permissions and access better. The default connection is read and write; however, it can be limited on your end.
3. Connect Google services in Next Matter in **Automations library** (one-click connection).
1. In **Automations Library** \[ left-hand navigation panel], click **Connect** for the integration you want to connect.
2. In the 3rd party pop-up, select the account you'll use for the integration (the service account). You'll be asked to log in to the 3rd party tool using this account.
You can use the same service account to connect all integrations or use separate ones for each.
Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
### Define account permissions
**Tip**: Think of the account as a user - anything the account has access to, the user logging in with this account also has access to. The connected user will authenticate Google requests within the scopes that the admin permits for the account. If you deactivate the account, the integration stops working. When the account is authenticated, you can use it with any resource to which the account has access and that is within the permitted scopes.
For example, if you want to use no-code Google Sheet steps, ensure spreadsheets are shared with the account connected to Next Matter. Otherwise, they won't appear in the dropdown.
If you get a 401 error when running a connected integration step, it might mean that the connected account got deactivated or deleted. It might also show when the same account was connected in another environment and then disconnected. This disconnect leads to all workspaces being deauthorized.
## Check which account is connected
If you need to check which account has been used to connect the integration, you can do one of the following:
* To find the Google Drive user:
* Create an integration step with a GET request to: [https://www.googleapis.com/drive/v3/about?fields=user](https://www.googleapis.com/drive/v3/about?fields=user) This will return the user information.
* For Google Sheets: Use a Next Matter integration step (which can be a no-code step) to make a change in a sheet and check the [version history](/docs/workflow-versions#use-versions) to identify the user.
## Disconnect the account
You can disconnect an integration in the **Automations library**.
# Integrate with Google Chat
Source: https://help.nextmatter.com/docs/integrate-with-google-chat
Send customized Google chat messages directly from a Next Matter process to dedicated channels.
## Before you begin
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Create the Next Matter Bot in your Google Chat room
1. In your Gmail click **Spaces**.
2. At the top, next to the space title, click the down arrow and select **Apps & integrations**.
3. Click **Manage webhooks**.
4. If this space already has other webhooks, click **Add another**. Otherwise, skip this step.
5. Enter the name for the webhook, for example, Next Matter bot.
6. Click **SAVE**.
## Configure the notification step in a process
1. In your Next Matter portal, click **Workflows**, and then click the workflow you want to send messages to Slack.
2. Click **Edit process**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
```json json theme={null}
{
{"text":"my_text"}
}
```
* **Method**: POST
* **URL**: `Google_Webhook_URL`
* **Headers**: Content-Type: application/json
* In the **Body** enter the text of the message. For example, the body might look like the following.
6. Save your changes.
# Integrate with Google Docs
Source: https://help.nextmatter.com/docs/integrate-with-google-docs
You can copy and populate documents with data from the process.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
* Get the Google Drive folder ID. You can find it in the folder's URL, which is [`https://drive.google.com/drive/u/0/folders/FOLDER_ID`](https://drive.google.com/drive/u/0/folders/FOLDER_ID)
* Get your Google document ID. To do this, open your Google file - it can be a spreadsheet or a document. Copy the value from the URL of your file: [https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB\_kT93qrQU/edit](https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB_kT93qrQU/edit)
* You need to have a template ready and available in Google Drive.
## Copy and populate a Google Docs template
1. In your Next Matter portal, click **Workflows** which should copy and populate a document.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step. In this step, you'll be creating a copy of the template.
4. Enter the following details:
Open your Google file - it can be a spreadsheet or a document. Copy the value from the URL of **your file** ( between /d/ and /edit)
[`https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB_kT93qrQU/edit`](https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB_kT93qrQU/edit)
Open your Google file - the name of your document is in the top left-hand corner. By default, Google calls your file *Untitled* until you rename it.
```json theme={null}
{
"name":"FILE_NAME",
"parents":"PARENT_FOLDER_ID"
}
```
* To make sure Google Sheets uses the next empty row every time a new data set is populated, click **+ Add variable**. Create an **id** variable and enter the **\$.id** value.
- **Authorization**: Google Drive
- **Headers**: Content-Type: application/json
- In the **Body** enter the values. For example, the body might look like the following:
* **Method**: POST
* **URL**: [`https://www.googleapis.com/drive/v3/files/DOCUMENT_ID/copy?supportsAllDrives=True`](https://www.googleapis.com/drive/v3/files/DOCUMENT_ID/copy?supportsAllDrives=True)
5. Save your changes.
6. Now click **+ Add step** and create another integration step to populate the data.
7. Click **Settings** to configure the step.
8. Enter the following details:
Note that in the URL above the data in is a data reference from the previous step. Click the icon in the editor and find the data reference you need.
* **Authorization**: Google Docs
* **Headers**: Content-Type: application/json
* In the **Body** enter the values. For example, the body might look like the following.
* **Method**: POST
* **URL**: `https://docs.googleapis.com/v1/documents/{64. Copy the template - Copy the template document linked here - id (plain)}:batchUpdate/`
9. Save your changes.
10. Now export the editable file to PDF. To do that, create an integration step with the following settings:
Note that in the URL above the data in is a data reference from the previous step. Click the icon in the editor and find the data reference you need.
* **Authorization**: Google Docs
* **Headers**: Content-Type: application/json
- **Method**: GET
- **URL**: `https://docs.googleapis.com/drive/v2/files/{64. Copy the template - Copy the template document linked here - id (plain)}/pdf/export`
## Insert the signature to a Google Docs file
The process of copying and populating the document has been described above. If you want the new version of the document to be signed, you need to get the signature before you copy and populate the file and after the file has been copied and populated with data, insert the signature in the document.
**To get the signature**:
1. Click **+ Add step**. Select to add a form.
2. Click **+ Add form field**. Select **Signature**.
When you have the signature, go to the template file and place an image where you want the signature to be. This can be any image - you'll be replacing it in the course of the workflow.
To replace the image, you'll need its object ID. It will be the same for all signatures, so you only need to get it once.
**To get the ObjectId, do the following**:
1. Click this Google Developer [link](https://developers.google.com/docs/api/reference/rest/v1/documents/get).
2. In the right-hand side **Try this method** section, in the **Request parameters**, enter your document ID in the **documentId** field.
3. Click **Execute**.
4. Copy the **ObjectId** from the response. It might look the following `"objectId": "kix.pc8vwkqlqnur"`. You can find it within the `inlineObjects` attribute.
Copy the document file and populate it with data as described above.
When the new file is ready, replace the image with the signature.
**To replace the image, do the following:**
1. In your workflow, create a new step. Select **Integration> Custom integration** as the type.
2. Click **Settings** and enter the following details:
Note that in the URL above the data in is a data reference from the previous step. Click the icon in the editor and find the data reference you need.
```json theme={null}
{
"requests": [
{
"replaceImage": {
"imageObjectId": "OBJECT_ID",
"uri": "{72. Provide the signature - Signature Input - Signature (plain)}",
"imageReplaceMethod": "CENTER_CROP"
}
}
]
}
```
* **Authorization**: Google Docs
* **Headers**: Content-Type: application/json
* In the **Body** enter the values. For example, the body might look like the following:
- **Method**: POST
- **URL**: `https://docs.googleapis.com/v1/documents/{64. Copy the template - Copy the template document linked here - id (plain)}:batchUpdate/`
3. Save your changes.
## Add a footnote to the document
1. In your workflow, create a new step. Select **Integration> Custom integration** as the type.
2. Click **Settings** and enter the following details:**Tip**: use `document.get` from the Google Doc API to obtain the position of the index. See [Google documentation](https://developers.google.com/docs/api/reference/rest/v1/documents/get).
```json theme={null}
{
"requests": [
{
"createFootnote": {
"location": {
"index": "INDEX"
}
}
}
]
}
```
* Add a variable for the `footnote_id` with the value of `$.replies[0].createFootnote.footnoteId`.
- **Method**: POST
- **URL**: [`https://docs.googleapis.com/v1/documents/DOCUMENT_ID:batchUpdate`](https://docs.googleapis.com/v1/documents/DOCUMENT_ID:batchUpdate)
- **Authorization**: Google Docs
- **Headers**: Content-Type: application/json
- In **Body**, enter the values. For example, the body might look like the following:
3. Save your changes.
4. To add the text to the footnote, create another integration step and edit the settings with the following values:
```json theme={null}
{
"requests": [
{
"insertText": {
"text": "TEXT",
"endOfSegmentLocation": {
"segmentId": "{2. Create Footnote - Fill out the template - footnote_id (plain)}"
}
}
}
]
}
```
* **Method**: POST
* **URL**: [`https://docs.googleapis.com/v1/documents/DOCUMENT_ID:batchUpdate`](https://docs.googleapis.com/v1/documents/DOCUMENT_ID:batchUpdate)
* **Authorization**: Google Docs
* **Headers**: Content-Type: application/json
* In **Body**, enter the values. For example, the body might look like the following:
5. Save your changes.
# Integrate with Google Drive
Source: https://help.nextmatter.com/docs/integrate-with-google-drive-to-upload-files
You can use Next Matter integration steps to directly integrate your workflow with Google Drive to, for example, upload files.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
* Get a Google Drive file ID.
Open your Google file - it can be a spreadsheet or a document. Copy the value from the URL of **your file** ( between /d/ and /edit)
[`https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB_kT93qrQU/edit`](https://docs.google.com/document/d/143uVKzah2WhnPEHY3ATwM4UM0K-hjvZ3OB_kT93qrQU/edit)
* Get the Google Drive folder ID. You can find it in the folder's URL, which is [`https://drive.google.com/drive/u/0/folders/FOLDER_ID`](https://drive.google.com/drive/u/0/folders/FOLDER_ID)
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Upload files to process and then Drive
1. Create a step to upload a file. To do that, in your workflow add a step that's a form.
2. Click **+ Add form field** and select the **File upload** as the form field.
3. Create the next step to upload the file to Google Drive. Click **Settings** to configure the step.
4. Enter the following details:
| Key | Type | Value |
| -------- | ---- | --------------------------------------------------------------------------------------------------- |
| metadata | text | `{"name": "{data reference to the filename of the uploaded file}", "parents":["GDRIVE_FOLDER_ID"]}` |
| key1 | file | `{data reference to the "First File" field from the file upload step}` |
You can only upload one file from the File Upload step.
* **Method**: POST
* **URL**: [`https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart`](https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart)
* **Authorization**: Google Drive
* **Body type**: Form-data
* In the **Body** add the two following rows:
5. If you need the Google Drive file ID of the file to be referenced in later steps, click **+ Create variable** and create a `fileid` reference of the value **\$id**.
6. Save your changes.
## Give access to the file stored in Google Drive to a user
1. Create an **Integrations > Custom integration** step to upload the file.
2. Click **Settings** to configure the step.
3. Enter the following details:
```json json theme={null}
{
"type": "user",
"role": "reader OR writer",//select a permission profile
"value":"EMAIL_OF_THE_GDRIVE_ACCOUNT_TO_HAVE_ACCESS"
}
```
* **Method**: POST
* **URL**: [`https://www.googleapis.com/drive/v2/files/FILE_ID/permissions?supportsAllDrives=true&includeTeamDriveItems=true&includeItemsFromAllDrives=true`](https://www.googleapis.com/drive/v2/files/FILE_ID/permissions?supportsAllDrives=true\&includeTeamDriveItems=true\&includeItemsFromAllDrives=true)
* **Authorization**: Google Drive
* **Headers**: Content-Type: `application/json`
* In the **Body** enter the following data:
4. If you need the Google Drive file ID of the file to be referenced in later steps, click **+ Create variable** and create a `fileid` reference of the value **\$id**.
5. Save your changes.
## Copy file stored in Drive
1. Create an **Integrations > Custom integration** step to copy the file.
2. Click **Settings** to configure the step.
3. Enter the following details:
```json json theme={null}
{"name": "FILENAME_OF_THE_FILE_TO_COPY",
"parents": ["GDRIVE_FOLDER_ID"] }
```
* **Method**: POST
* **URL**: [`https://www.googleapis.com/drive/v3/filesFILEID_OF_THE_FILE_TO_COPY/copy?supportsAllDrives=True`](https://www.googleapis.com/drive/v3/filesFILEID_OF_THE_FILE_TO_COPY/copy?supportsAllDrives=True)
* **Authorization**: Google Drive
* **Headers**: Content-Type: `application/json`
* In the **Body** enter the following data:
4. If you need the Google Drive file ID of the file to be referenced in later steps, click **+ Create variable** and create a `fileid` reference of the value **\$id**.
5. Save your changes.
## Create a Google Drive folder
### Before you begin
* Get the Google Drive parent folder ID. You can find it in the folder's URL, which is [`https://drive.google.com/drive/u/0/folders/FOLDER_ID`.](https://drive.google.com/drive/u/0/folders/FOLDER_ID.) The parent folder is the folder in which you're creating a sub-folder.
1. Create an **Integrations > Custom integration** step.
2. Click **Settings** to configure the step.
3. Enter the following details:
```json json theme={null}
{
"name": "FOLDER_NAME",//if the name was referenced in a previous step, use data reference. If not use real value.
"mimeType": 'application/vnd.google-apps.folder',
"parents": ["PARENT_FOLDER_ID"] //if the ID was referenced in a previous step, use data reference. If not use real value.
}
```
* **Method**: POST
* **URL**: \`[https://www.googleapis.com/drive/v3/files](https://www.googleapis.com/drive/v3/files) Note that for the request to work, you need to give full access to the parent folder, such as the "Anyone with the link can edit" permission.
* **Authorization**: Google Drive
* **Headers**: Content-Type: `application/json`
* In the **Body** enter the following data:
4. If you need the Google Drive file ID of the file to be referenced in later steps, click **+ Create variable** and create a `folderid` reference of the value **\$id**.
If you need to move a file to this newly created folder, create a follow-up integration step with the following details:
* **Method**: PATCH
* **URL**: [`https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=FOLDER_ID`](https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=FOLDER_ID)
* **Authorization**: Google Drive
* **Headers**: Content-Type: `application/json`
* **Body** is empty
## Move a file to a new folder
You can move a file from one folder to another in Google Drive.
1. In Next Matter, create an **Integrations > Custom integration** step.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: PATCH
* **URL**: [`https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=PARENT_FOLDER_ID`](https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=PARENT_FOLDER_ID)
The file ID and the parent folder ID can also be references to data from previous steps.
* **Authorization**: Google Drive
* **Body** is empty.
## Replace one file with another
1. Create a step to upload a file. To do that, in your workflow add an action step.
2. Click **+ Add action** and select the **File upload** as the action type.
3. Create the next step to replace an old file with the uploaded one in Google Drive. Click **Settings** to configure the step.
4. Enter the following details:
| Key | Type | Value |
| -------- | ---- | ------------------------------------------------------------------- |
| metadata | text | `{"name": "{data reference to the filename of the uploaded file}"}` |
| key1 | file | `{data reference to the uploaded file}` |
* **Method**: PUT
* **URL**: [`https://www.googleapis.com/upload/drive/v3/FILE_ID`](https://www.googleapis.com/upload/drive/v3/FILE_ID)
* **Authorization**: Google Drive
* **Body type**: Form-data
* In the **Body** add the two following rows:
5. If you need the Google Drive file ID of the file to be referenced in later steps, click **+ Create variable** and create a `fileid` reference of the value **\$id**.
6. Save your changes.
# Integrate with Google Forms
Source: https://help.nextmatter.com/docs/integrate-with-google-forms
You can connect to Google Forms to trigger r a new instance of a workflow when a Google Form is submitted and populate fields in the first active step of the new workflow instance with the Google Form data.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* You need to have a basic Javascript knowledge
* You must be familiar with [Google App Script documentation](https://developers.google.com/apps-script/reference/)
* Ensure you have created the form and have the form's ID. You can find the ID in the URL of the form page.
* Make sure you have the Next Matter API key. If you don't have it, contact your organization admin, or, if you're an admin, generate the key in Next Matter by going to **Company > Next Matter API keys**.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
* You need the ID of the workflow that should be started from Google Forms. You can get the ID by clicking the process and copying the number from the URL in your browser.
## Connect with Next Matter
1. Create your Next Matter workflow.
2. Click the top right corner menu icon in your Google form, and click **More > Script editor**. Alternatively, navigate to [https://script.google.com/home/](https://script.google.com/home/) and click **New Project**. This will open the script editor with a pre-populated function template.
3. Create your app script for the form. Make sure the process and form field IDs, as well as the response item sequence, are those of your target workflow.
```javascript Google Script theme={null}
const API_KEY = "ADD_TARGET_ORG_API_KEY_HERE";
const FORM_ID = "ADD_SOURCE_GOOGLE_FORM_ID_HERE";
const PROCESS_ID = "ADD_NM_TARGET_PROCESS_ID_HERE";
const INSTANCES_URL = "https://core.nextmatter.com/api/instances/";
const fetchOptions = {
muteHttpExceptions: true,
method: "post",
contentType: "application/json",
headers: {
Authorization: `Api-Key ${API_KEY}`,
},
};
function submitForm(e) {
if (!e || !e.response) {
return;
}
let apiResponse = UrlFetchApp.fetch(INSTANCES_URL, {
...fetchOptions,
payload: JSON.stringify({
name: "Product form " + new Date().toUTCString(),
process: `https://core.nextmatter.com/api/processes/${PROCESS_ID}/`,
tags: [`form:${FORM_ID}`, `response:${e.response.getId()}`],
}),
});
let responseCode = apiResponse.getResponseCode();
if (!apiResponse || ![200, 201].includes(responseCode)) {
Logger.log("Next Matter API call failed");
if (apiResponse) {
Logger.log(apiResponse.getContentText());
}
return;
}
const instance = JSON.parse(apiResponse.getContentText());
const { id, active_step_ids } = instance;
Logger.log(`Instance ID: ${id}`);
const completeStepUrl = `${INSTANCES_URL}${id}/complete_step/`;
const responses = e.response.getItemResponses();
const responseCollectionItems = responses[5].getResponse();
const allCollectionItems = responses[5]
.getItem()
.asCheckboxItem()
.getChoices()
.map((choice) => ({
name: choice.getValue(),
checked: responseCollectionItems.includes(choice.getValue()),
}));
const actions = [
{
action_id: 19566,
input_object: {
inputValue: responses[0].getResponse(),
},
},
{
action_id: 19568,
input_object: {
inputValue: responses[1].getResponse(),
},
},
{
action_id: 19569,
input_object: {
date: new Date(responses[2].getResponse()).toISOString(),
},
},
{
action_id: 19572,
input_object: {
itemSelected: responses[3].getResponse(),
},
},
{
action_id: 19573,
input_object: {
radioItemSelected: responses[4].getResponse(),
},
},
{
action_id: 19574,
input_object: {
allItems: allCollectionItems,
itemsChecked: allCollectionItems
.filter((item) => item.checked == true)
.map((item) => item.name),
itemsNotChecked: allCollectionItems
.filter((item) => item.checked == false)
.map((item) => item.name),
numberOfItemsChecked: responseCollectionItems.length,
numberOfItemsNotChecked:
allCollectionItems.length - responseCollectionItems.length,
},
},
{
action_id: 19575,
input_object: {
inputValue: responses[6].getResponse(),
},
},
];
Logger.log(JSON.stringify(actions));
apiResponse = UrlFetchApp.fetch(completeStepUrl, {
...fetchOptions,
payload: JSON.stringify({
step_id: active_step_ids[0],
actions,
}),
});
responseCode = apiResponse.getResponseCode();
if (!apiResponse || ![200, 201].includes(responseCode)) {
Logger.log("Next Matter API call failed");
if (apiResponse) {
Logger.log(apiResponse.getContentText());
}
return;
}
Logger.log(apiResponse.getContentText());
```
4. In the Google Apps Script project, click **Triggers > Add trigger**.You can also call `ScriptApp.newTrigger(functionName)`, which returns a TriggerBuilder.
5. Configure the trigger for the "**On form submit**" event type, and click **Save**.
Your trigger might look like the following:
```javascript Google Script theme={null}
function setUpTrigger() {
ScriptApp.newTrigger('startProcess')
.forForm('')
.onFormSubmit()
.create();
}
function startProcess() {
const PROCESS_ID = "ADD__WORKFLOW_ID_HERE";
const INSTANCES_URL = "https://core.nextmatter.com/api/instances/";
}
```
Now, if you fill in your Google Forms sheet and click **Submit**, a new instance of the workflow will be created.
# Integrate with Google Sheets
Source: https://help.nextmatter.com/docs/integrate-with-google-sheets
You can easily send data to Google Sheets, create rows or find information in spreadsheets and send it back to workflows.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
* Have a Google Sheets spreadsheet ID at hand. You can find it in the spreadsheet URL.
* Have a sheet name of the sheet that you want to populate with data. You can find it at the bottom of your sheet.
## Add a row and populate it with process data
You can now use our low-code Google Sheet integration, instead of creating everything from scratch. When creating a step, select **Integrations > Google Sheets (low-code)**. For details, see [No-code Google Sheets integration](/docs/connect-to-google-sheets).
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be sending data to Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4. Enter the following details:
* **Method**: POST
* **URL**: `https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/SHEET_NAME!CELL_RANGE:append?valueInputOption=user_entered`
The range marks the first and the last cell that you want to populate. For example, if your data is supposed to be in row 2 and take up cells A, B, and C, then your range is A1:C.
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* In the **Body** enter the values you want to move to Google Sheets. These might be the data references of the data you collected in previous steps. For example, the body might look like the following:
```json json theme={null}
{
"values": [//all values are data references that you need to change
[
"{1. Collect stock data - Name - Input (json)}",
"{1. Collect stock data - Email - Input (json)}",
"{1. Collect stock data - Address - City (json)}"
]
]
}
```
* To make sure Google Sheets uses the next empty row every time a new data set is populated, click **+ Add variable**. Create a **Range** variable and enter the **\$.ranges.updatedRange** value.
**Watch a video tutorial**
## Add a row and update its data
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be sending data to Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4. Enter the following details:
* **Method**: POST
* **URL**: `https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/SHEET_NAME!CELL_RANGE:append?valueInputOption=user_entered`
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* In the **Body** enter the values you want to move to Google Sheets. These might be the data references of the data you collected in previous steps. For example, the body might look like the following:
```json json theme={null}
placehoders with data reference to the value provided ikn {"majorDimension": "ROWS", "values": [ ["VALUE1","VALUE2"]]} //you can replace the VALUE placeholder with the values from your sheet
```
5. Create a variable for range with the value of `$.updates.updatedRange`.
6. Create a step with a form with an input form field to collect the new field value.
7. Create an integration step to update the value.
8. As **Body** type values, replace the values placeholder with real values.
9. Click **Settings** to configure the step.
10. Enter the following details:
* **Method**: PUT
* **URL**: `https://sheets.googleapis.com/v4/spreadsheets/SHEET_ID/values/RANGE_REFERENCE?valueInputOption=USER_ENTERED`
Replace `RANGE_REFERENCE` with a data reference to your integration step range variable. Click the button to select the data reference.
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* Body
```json json theme={null}
{"values": [ [null,"{3. New Value - Column B - Input (plain)}"]]
} //replace the placeholder data reference with the data reference to the updated value
```
11. Save your changes.
## Find and replace data in a specific column of a sheet
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be sending data to in Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4. Enter the following details:
The range marks the first and the last cell that you want to populate. For example, if your data is supposted to be in row 2 and take up cells A, B, and C, then your range is A1:C.
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* In the **Body** enter the values you want to move to Google Sheets. These might be the data references of the data you collected in previous steps. For example, the body might look like the following:
```json json theme={null}
{ "requests": [
{ "findReplace": {
"find": "TEXT_TO_FIND",
"replacement": "NEW_TEXT",
"matchCase": false,
"matchEntireCell": true,
"searchByRegex": false,
"includeFormulas": false,
"range": {
"sheetId": SHEET_ID,
"startRowIndex": 1, //this attribute defines the row where the search starts
"startColumnIndex": 4,
"endColumnIndex": 5 //these attributes define the columns included in the search
}
}
}],
"includeSpreadsheetInResponse": false }
```
* **Method**: POST
* **URL**: [`https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/:batchUpdate`](https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/:batchUpdate)
## Identify a piece of information in Google Sheets and display it in the process
To do so, you'll be using the Vlookup function.
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be sending data to Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4. Enter the following details:
The range marks the first and the last cell that you want to work with. For example, if the data is in row 2 and take up cells A, B, and C, then your range is A1:C.
For example, the body might look like the following:
```json json theme={null}
{
"majorDimension": "ROWS",
"values": [
[
"=VLOOKUP(\"SEARCH_KEY\",RANGE,INDEX,false)"
]
]
}
```
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* In the **Body** enter the values you want to look for in Google Sheets. If you need more insights into how the function works, see [Google documentation](https://support.google.com/docs/answer/3093318?hl=en). If you want to find a number field and not a text field, remove the`\`from around the \SEARCH\_KEY.
* **Method**: PUT
* **URL**: `https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/SHEET_NAME!RANGE?valueInputOption=user_entered&includeValuesInResponse=true`
5. Save your changes.
6. Create a step with a form that has an **Instruction** form field and use the data reference to display the found data in the instruction.
## Create a dynamic dropdown from a sheet
As part of the workflow, you can create a single or multi-value dropdown from a data source. When the source is updated, so is the dropdown that displays. The values are supported when they are a 2D array where the first item in each record is the key and the second item in each record is what the workflow user should see (value).
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
1. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
2. Click **Settings** to configure the step.
3. Enter the following details:
We support long data sets however show only the first 250 items. The remaining ones are displayed as search results.
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* **Method**: GET
* **URL**: `https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/SHEET_NAME!RANGE/` Make sure to change the dataset values to your own.
4. Create a variable for the dataset result with the value of: `$.values.[*]`.
If the source is a list, the variable is `$.values`.
5. Save your changes.
6. Create a form step with the single-value dropdown as a form field. Click **Settings** to configure the step.
7. Select the **Dynamic from external data source** option as **Source of Items**.
8. In the **Data Source**, click to select the data reference. This should be the variable from the previous step. For example, it might look the following:
Select the JSON format to get the values in a dropdown. The plain format will render the values as a list.
9. Save your changes.
We support 1D or 2D arrays at the moment. It can either be: \["test", "test2"] or \[\["1", "test"], \["2", "test2"]] where "1" and "2" are treated as the actual submitted values and "test" and "test2" would be the display values.
## Use Vlookup
Use VLOOKUP to find things in a table or a range by row. For example, look up a price of an automotive part by the part number, or find an employee name based on their employee ID.
1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:**Tip**: For more on the Vlookup values, see [W3 (external link)](https://www.w3schools.com/googlesheets/google_sheets_vlookup.php)
* **Method**: PUT
* **URL**: [https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET\_ID/values/SHEET\_NAME\\\\\\!RANGE?valueInputOption=USER\_ENTERED\&includeValuesInResponse=true](https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/SHEET_NAME\\\\\\!RANGE?valueInputOption=USER_ENTERED\&includeValuesInResponse=true) Note: Provide the range in the format of A1:A1 (it defines the cell or cells containing VLOOKUP formula)
* **Authorization**: Google Sheets
* **Content-Type**: application/json
* In the **Body** enter the values you want to add in the table row.
```json json theme={null}
{
"formulas" : \[ ["=VLOOKUP(\"LOOKUPVALUE\",SEARCH_RANGE,INDEX,false)"] ]//the capitalized values are all placeholders;
}// if you want to lookup a number field instead of a text field, remove the \" characters from Vlookup
```
4. Add a variable for the Vlookup result with the value of `$.updatedData.values[0][0]`
5. Save your changes.
## Add a sheet to an existing spreadsheet
To do so, you'll need the `spreadsheet_ID` of the spreadsheet you'll be using.
[See how to get the ID...](/docs/integrate-with-google-sheets#before-you-begin)
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be creating a new sheet in Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4. Enter the following details:
* **Method**: POST
* **URL**: [`https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate`](https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate)
* **Authorization**: Google Sheets
* **Headers**: Content-Type: application/json
* In the **Body** enter the following:
```json json theme={null}
{
'requests': [
{
'addSheet': {
'properties': {
'title': "SHEET_NAME" //replace the variable
}
}
}
]
}
```
5. Create a variable to use the newly created ID of the sheet in the next steps. Create the sheet ID variable with the value of `$.replies[0].addSheet.properties.sheetId`.
6. Save your changes.
## Delete a sheet from an existing spreadsheet
To do so, you'll need the `spreadsheet_ID` of the spreadsheet you'll be using. [See how to get the ID...](/docs/integrate-with-google-sheets#before-you-begin)
1. In your Next Matter portal, click **Workflows** and click the workflow from which you'll be deleting a sheet from Google Sheets.
2. Click **+ Add step** and select **Integrations > Custom integration** as the step type.
3. Click **Settings** to configure the step.
4
# Integrate with Google Slides
Source: https://help.nextmatter.com/docs/integrate-with-google-slides
Using this integration, you can copy a Google Slides presentation stored on Google Drive and fill it out with your data.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* Connect Google services in Next Matter with a service account and share data with this account. [Learn more...](/docs/integrate-with-google)
* Have your presentation ID handy. To get the ID, open the presentation in Google Slides and extract the presentation ID from the URL in the browser's address bar.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Copy and fill in the presentation
### Copy the Google Slides presentation
1. Create a step in **Integration > Custom integration** with the following settings:
* **Method**: POST
* **URL**: [`https://www.googleapis.com/drive/v3/files/SLIDES_ID/copy/`](https://www.googleapis.com/drive/v3/files/SLIDES_ID/copy/)
* **Headers**: Content-type: `application/json`
* **Body**: Fill in if you want to control the filename and where to place the copy. By default, the copy will be placed in the same folder as the original file. Your body might look like the following: `{"name": "MY_FILENAME", "parents": ["MY_FOLDER_ID"]}`
2. In **Authorization**, select Google Drive.
3. In the **Settings**, click **+ Add a variable**.
4. Enter the following variable valuesName: `id`Value: `$.id`
5. Save your changes.
### Replace text in the newly created document
1. Create a step in **Integration > Custom integration** with the following settings:In the following example, 2 bits of text have been replaced.
```json JSON theme={null}
{
"requests": [{
"replaceAllText": {
"containsText": {
"text": "OLD_TITLE"
},
"replaceText": "{{instance_name}}"
}
},{
"replaceAllText": {
"containsText": {
"text": "OLD_CLIENT"
},
"replaceText": "Company GmbH"
}
}]
}
```
* **Authorization**: Google Slides.
* **Method**: POST
* **URL**: [`https://slides.googleapis.com/v1/presentations/SLIDES_ID:batchUpdate`](https://slides.googleapis.com/v1/presentations/SLIDES_ID:batchUpdate) **Tip**: The slides ID in this call can be replaced with the slides ID data reference from the previous step.
* **Headers**: Content-type: `application/json`
* **Body**: Fill in with the variable and the data reference that should replace the original. You can take the reference from the previous steps. For example, if you're adapting the deck for a new client, there can be a proceeding step with an input form field to enter the new client's name.
2. Save your changes.
# Integrate with HubSpot
Source: https://help.nextmatter.com/docs/integrate-with-hubspot
Send data to and get them from HubSpot straight into your workflow.
## Before you begin
* Get a HubSport API key. To do that, you need to create a private app and set permissions for this app based on the data you want to get from HubSpot. For details, see [HubSpot documentation](https://developers.hubspot.com/docs/api/private-apps). Make sure your app has the following CRM scope: `crm.objects.deals.read`
## Get deal and contract details from HubSpot
1. In Next Matter select the workflow that should integrate with HubSpot, and add a new integration step to get deal details.
2. Click **Settings** and enter the following details:**Tip**: Get a HubSpot Deal ID. You can find the ID of a deal on the deal record itself under the property **Deal ID**.
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer HUBSPOT_API_KEY`
- **Method**: POST
- **URL**: [`https://api.hubapi.com/crm/v3/objects/deals/DEAL_ID?associations=contacts`](https://api.hubapi.com/crm/v3/objects/deals/DEAL_ID?associations=contacts)
3. Create a variable for the deal name with the value of: `$.properties.dealname` and for the contact association ID with the value of `$.associations.contacts.results[0].id`
4. Save your changes.
5. Create a new integration step to get contact details.
6. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: `https://api.hubapi.com/crm/v3/objects/contacts/{2. Get Deal - Integration step - contact_association_id (plain)}` The \{VALUE} is a data reference to the Next Matter variable.
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer HUBSPOT_API_KEY`
* Create a variable for the contact ID with the value of: `$.id` and for the contact email with the value of `$.properties.email`, and for the contact's first name with the value of `$.properties.firstname`.
7. Save your changes.
## Search for a contact/deal in HubSpot
In Next Matter select the workflow that should integrate with HubSpot, and add a new integration step.
1. Click **Settings** and enter the following details:
You can also have a step that searches HubSport for a deal by property. In this case, make a call to [https://api.hubapi.com/crm/v3/objects/deals/search](https://api.hubapi.com/crm/v3/objects/deals/search)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer HUBSPOT_API_KEY`
* Body:
```json theme={null}
{
"filterGroups": [
{
"filters": [
{
"value": "PROPERTY_VALUE",
"propertyName": "PROPERTY_NAME",
"operator": "EQ"
}
]
}
]
}
```
- **Method**: POST
- **URL**: [`https://api.hubapi.com/crm/v3/objects/contacts/search`](https://api.hubapi.com/crm/v3/objects/contacts/search)
2. Create a variable for the contact ID with the value of `$.results[0].id`.
If you search for a deal, create a variable for deal ID with the value of `$.results[0].id`.
3. Save your changes.
## Create and update a HubSpot ticket
1. In Next Matter, select the process that should integrate with HubSpot, and add a new integration step to get deal details.
2. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: [`https://api.hubapi.com/crm/v3/objects/tickets`](https://api.hubapi.com/crm/v3/objects/tickets)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer HUBSPOT_API_KEY`
* **Body**:
```json theme={null}
{
"properties": {
"hs_pipeline": "PIPELINE_ID",
"hs_pipeline_stage": "PIPELINE_STAGE_ID",
"hs_ticket_priority": "TICKET_PRIORITY",
"subject": "TICKET_SUBJECT"
}
}
```
3. Create a variable for the `ticketID` with the value of: `$.id`.
4. Save your changes.
5. To push the ticket to the next stage, create a new integration step.
6. Click **Settings** and enter the following details:
1. Click the Settings cog in the main menu in HubSpot.
2. In the left-hand menu, click **Properties**.
3. Under **Contact properties**, type Owner in the search bar.
4. Hover over **Contact owner** and click **View**.
5. At the bottom of the next page, your HubSpot Owner IDs are listed in the **Dropdown options** table in the **Internal Value** column.
* **Method**: PATCH
* **URL**: `https://api.hubapi.com/crm/v3/objects/tickets/{2.Create Ticket - Integration Step - TicketID(plain)}?hapikey=KEY` The \{VALUE} is a data reference to the Next Matter variable. Make sure to replace the KEY variable with your HubSpot API key.
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer HUBSPOT_API_KEY`
* **Body**:
```json theme={null}
{
"properties": {
"hs_pipeline": "PIPELINE_ID",
"hs_pipeline_stage": "PIPELINE_STAGE_ID",
"hs_ticket_priority": "TICKET_PRIORITY",
"hubspot_owner_id": "OWNER_ID",
"subject": "{Instance name}"
}
}
```
7. Save your changes.
# Integrate with Intercom
Source: https://help.nextmatter.com/docs/integrate-with-intercom
Bring company or contact information from Intercom into your workflow
If you start the workflow with a [webhook trigger](/docs/webhook-triggers) (for example, a workflow starts when a customer contacts you), you can use one of these templates to extract more data from Intercom and feed it into the workflow.
## Before you begin
* Get an Intercom API key. For details, see [Intercom documentation](https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/).
* Verify the version of the Intercom API you're using. You'll need to provide the version in the call header. For details on the version, see [Intercom documentation](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/update-your-api-version/).
## Get the company details from Intercom
1. In Next Matter select the workflow that should integrate with Intercom, and add a new integration step to get deal details.
2. Click **Settings** and enter the following details:
This call will return all the company details stored in Intercom such as the company's profile or activity.
**Tip**: Get an Intercom Company\_ID. You can find the ID by going to Intercom and clicking the company link in **Contacts > Companies**.
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer INTERCOM_API_KEY`
* **Headers**: Intercom-Version: `2.10`
- **Method**: GET
- **URL**: [`https://api.intercom.io/companies/COMPANY_ID`](https://api.intercom.io/companies/COMPANY_ID)
3. Create a variable for the company name with the value of: `$.name`.
4. Save your changes.
## Get the details of a contact into the workflow
1. In Next Matter select the workflow that should integrate with Intercom, and add a new integration step to get deal details.
2. Click **Settings** and enter the following details:
This call will return all the user details stored in Intercom.
**Tip**: Get an Intercom CONTACT\_ID (user\_ID). You can find the ID by going to Intercom and clicking the person's link in **Contacts > People**.
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer INTERCOM_API_KEY`
* **Headers**: Intercom-Version: `2.10`
- **Method**: GET
- **URL**: [`https://api.intercom.io/companies/CONTACT_ID`](https://api.intercom.io/companies/CONTACT_ID)
3. Create a variable for the following: company ID with the value of: `$.companies.data[0].id`, custom attributes with the value of `$.custom_attributes` (if you want to get a list of all attribute values) or a CUSTOM ATTRIBUTE with the value of `$.custom_attributes.['CUSTOM ATTRIBUTE']`, when you want a specific attribute. In this case, enter the name of the CUSTOM ATTRIBUTE as used in Intercom.
4. Save your changes.
# Integrate with Jira
Source: https://help.nextmatter.com/docs/integrate-with-jira
You can trigger a workflow from a Jira issue or create a Jira ticket in a Jira project as a step in a workflow.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Create a Jira issue from workflow
### Before you begin
* Make sure to have the key of your Jira project at hand. The project key is the prefix of the issue number. For example, if your issue number is `JRA-123`, the `JRA` portion of the issue number is the project key.
### Create an issue in Jira
1. In Jira go to **Settings > Atlassian Account Settings > Security > Create and Manage API tokens**.
2. Create your Jira token and copy it to the clipboard.
3. You need the token to be base64-encoded (in the format of `useremail:api_token`). Base64-encode the string by using a tool like [https://base64encode.org](https://base64encode.org). Before encoding your string will look like the following: `email@example.com:12345`
4. In Next Matter select the workflow that should integrate with Jira, and add a new integration step.
5. Click **Settings** and enter the following details:
```json JSON theme={null}
{
"fields":{
"project": {
"key": "JIRA_PROJECT_KEY"
},
"summary": "SUMMARY",
"description": "DESCRIPTION",
"issuetype": {
"name": "TASK"
}
}
}
```
* **Method**: POST
* **URL**: [`https://JIRA_SUBDOMAIN.atlassian.net/rest/api/latest/issue/`](https://JIRA_SUBDOMAIN.atlassian.net/rest/api/latest/issue/)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Basic JIRA_API_KEY`
* **Body** might look like the following:
## Start a workflow from Jira Service Desk ticket or Jira issue
### Before you begin
* Make sure Next Matter is allowlisted in Jira. See [Jira documentation](https://confluence.atlassian.com/adminjiraserver/configuring-the-allowlist-1014667309.html).
* Note down the ID of the workflow that will be triggered with the first workflow. You can get the ID by clicking the workflow and copying the number from the URL in your browser.
### Start a workflow from Jira Service Desk
1. In Jira Service Desk, go to Project **Settings > Automation**.
2. Click **Create rule**.
3. Define the **When** trigger as **Issue created**.
4. Add a **Then** action and define it as **Send web request**.
5. In the **Send web request** section, enter the following details:
```json JSON theme={null}
{"name": "{{issue.key}}",
"process": "https://core.nextmatter.com/api/processes/ID_OF_THE_PROCESS/" }
```
* **Webhook URL**: [`https://core.nextmatter.com/api/instances/`](https://core.nextmatter.com/api/instances/)
* **Headers**: Content-Type: application/json
* **Headers**: Authorizations `API-Key NEXT_MATTER_API_KEY`
* **Method**: POST
* **Webhook body**: Custom data
* **Custom data**:
Every time that a Jira issue for this project is created, it will launch the specified Next Matter workflow and use the issue-key as the name of the instance.
### (Optional) Push additional data from Jira to the first step in Next Matter workflow
If you want to create a workflow with some Jira data in it, go back to the automation rule you created in Jira, and change the following:
1. In Jira, automation settings add an **And** to your rule. Define the **And** as an action to complete a subsequent step.
2. Configure the following attributes for the **And**:
* **URL**: `https://core.nextmatter.com/api/instances/{{webhookResponse.body.id}}/complete_step/`
* **Headers**: Content-Type: application/json
* **Headers**: Authorizations `API-Key NEXT_MATTER_API_KEY`
* **Method**: POST
* **Webhook body**: Custom data
* **Custom data** - you can map Jira issue information onto corresponding Next Matter actions. Next Matter actions can be identified with the IDs displayed in the editor. The payload might look like the following
```json JSON theme={null}
{
"step_id": 33890,
"actions": [
{
"action_id": 112505,
"input_object": {
"inputValue": "{{issue.created.format('dd/MM/yyyy')}}"
}
},
{
"action_id": 112468,
"input_object": {
"inputValue": "{{issue.description}}"
}
},
{
"action_id": 112478,
"input_object": {
"inputValue": "attachment.filename"
}
},
{
"action_id": 112479,
"input_object": {
"inputValue": "{{issue.url}}"
}
},
{
"action_id": 112579,
"input_object": {
"inputValue": "{{attachment.author.displayName}}"
}
}
]
}
```
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field you want to copy data to.
6. Copy **Form field ID**.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
If you've configured everything, the result is a newly created instance and a filled-out first step.
As a follow-up, you can make updates to your Jira issue, for example, you can add a comment that is sent to the user who raised the issue originally with an integration step.
You can refer to [Jira documentation](https://confluence.atlassian.com/automation/smart-values-993924860.html) to see which values you can send to the Next Matter workflow.
# Integrate with Mailchimp
Source: https://help.nextmatter.com/docs/integrate-with-mailchimp
Send Mailchimp transactional emails directly from your workflow.
You can use our Step templates to guide you through the integrations. You can find step templates in **Workflows > + Add step > Integrations > Templates > 3rd party templates > Mailchimp**.
1. In Mailchimp, generate your API key. You can find the details [here](https://mailchimp.com/developer/transactional/guides/quick-start/#generate-your-api-key).
2. You'll be sending the email using a message template. Review the [Mailchimp documentation](https://mailchimp.com/developer/transactional/api/messages/send-using-message-template/) to learn about the related API parameters.
3. In Next Matter select the workflow that should trigger a Mailchimp message, and add a new integration step.
4. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: `https://mandrillapp.com/api/1.0/messages/send-template`
* **Headers**: Content-Type: application/json
* **Body** might look like the following:
```json theme={null}
{
"key": "PLACEHOLDER_FOR_MAILCHIMP_API_KEY",
"template_name": "PLACEHOLDER_FOR_TEMPLATE_NAME",
"template_content": [
{
"name": "PLACEHOLDER_FOR_MC_EDIT_REGION",
"content": "PLACEHOLDER_FOR_CONTENT_TO_INJECT"
}],
"message": {
"html": "PLACEHOLDER_FOR_MESSAGE_IN_HTML", //optional full HTML content to be sent if not in template
"text": "PLACEHOLDER_FOR_MESSAGE_TEXT", //optional full text content to be sent
"subject": "PLACEHOLDER_FOR_SUBJECT",
"from_email": "PLACEHOLDER_FOR_SENDER_EMAIL",
"from_name": "PLACEHOLDER_FOR_SENDER_NAME",//this is optional
"to": [ {
"email": "PLACEHOLDER_FOR_RECIPIENT_EMAIL",
"name":"PLACEHOLDER_FOR_RECIPIENT_NAME",//optional
"type": "to"//you can enter bcc or cc here
}]
}
}
```
5. Save your changes.
To learn more about Mailchimp email format (plain text and HTML), see [Mailchimp documentation](https://mailchimp.com/resources/html-email-format/).
# Integrate with Microsoft
Source: https://help.nextmatter.com/docs/integrate-with-microsoft
You can integrate with Microsoft suite to get data in and out of the workflow.
## Prepare to integrate
Start by integrating a specific Microsoft app in Next Matter.
1. Set up your Next Matter account
* Create an account: Sign up for Next Matter and set up your workspace.
2. Set up Microsoft SSO to be able to log in to Next Matter with your Microsoft account.
* Provide Next Matter with Tenant ID so that we can verify it for the SSO
3. Connect Microsoft services in Next Matter in **Automations library** (one-click connection)
Use a specific Microsoft user (or a service account) to easily control what files and sites Next Matter has access to. Such a user could be called `service@[company-domain].com`. We connect Microsoft apps separately so you can control permissions and access them better. The default connection is read and write; however, it can be limited on your end.
### Connect service account
1. Log in to Next Matter with an admin account.
2. In **Automations Library** \[ left-hand navigation panel], click **Connect** for the integration you want to connect.
3. In the 3rd party pop-up, select the account you'll use for the integration (the service account). You'll be asked to log in to the 3rd party tool using this account.
You can use the same service account to connect all integrations or use separate ones for each. For example, you can use a separate service account for Outlook and Teams.
### Define account permissions
Go to the tenant configuration and decide what permissions you want to grant to the account.
**Tip**: Think of the account as a user - anything the account has access to, the user logging in with this account also has access to. The connected user will authenticate Microsoft Graph API requests with the scopes that the admin permitted for the account. If you deactivate the account, the integration stops working. When the account is authenticated, you can use it with any resource to which the account has access and that is within the permitted scopes. For example, you can create a separate site in SharePoint and give the account access only to that site and folders within the site. Alternatively, you can create the user (service account) with no initial permissions and explicitly share files with this user within the 3rd party app.
4. Set up a Teams channel for Next Matter in your workspace
* Make sure the MSFT Teams admin whitelists the Next Matter domain (nextmatter.com) and adds it to the External Collaboration Site in Microsoft Entra ID
* Create Next Matter as a webhook in Teams (... > Connectors > Incoming webhook)
5. Explore Next Matter templates for Microsoft (available in Next Matter) and the webhook feature to build workflows
## How does the integration work
When you connect an integration in Next Matter with an account, Next Matter asks for scopes to access the Graph API through which Next Matter authorizes the requests. Different apps need different scopes (see [Security matrix](/docs/security-matrix)). Whenever you use an integration, Next Matter calls Graph API to perform an action (such as sending an email) and it authorizes the call with the connected account.
You can [disconnect the integration](/docs/about-integrations#low-code-integrations) at any time. You connect and disconnect once (as you use one account to connect). You can connect a different account for Outlook or SharePoint, but the connection to any particular app (such as Outlook) is made with one account.
# Integrate with Microsoft Dynamics 365
Source: https://help.nextmatter.com/docs/integrate-with-microsoft-dynamics-365
Get data from Microsoft Dynamics 365 Business Central, which is an enterprise resource planning (ERP) solution
## Before you begin
Prepare to connect to Microsoft
As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
## Get companies data from Business Central
If you want to keep making calls to Microsoft Dynamics Business Central, you can use the **Token template** to request an OAuth 2.0 access token from the Microsoft Entra ID. You can find the template in **Templates > 3rd party templates**.
1. In your Next Matter workflow, click **+ Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: GET
* **URL**: `https://api.businesscentral.dynamics.com/v2.0/DIRECTORY (TENANT) ID/production/api/v2.0/companies`
Find the Tenant ID in the portal
1. Go to [https://portal.azure.com](https://portal.azure.com) and sign in with your admin account.
2. Navigate to the Microsoft Entra ID service from the left-hand side menu or search for it in the search bar.
3. On the Entra ID overview page, you'll see your tenant information, including the Tenant ID (also referred to as the Directory ID). Alternatively, you can use [this link]() to open the overview page directly.
* **Authentication**: Microsoft API token
4. Save your changes.
## Get opportunities
If you want to keep making calls to Microsoft Dynamics CRM, you can use the **CRM Token template** to request an OAuth 2.0 access token from the Microsoft Entra ID. You can find the template in **Templates > 3rd party templates**.
1. In your Next Matter process, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: GET
* **URL**: `YOUR_DYNAMICS_URL/api/data/v9.0/opportunities` (or if you used the Token template as the first step, use the URI variable from the previous step).
* **Authentication**: Microsoft API token (or if you used the Token template as the first step, use the token variable from the previous step).
4. Create the variables for the email address (value: `$.value[*].emailaddress`), description (`$.value[*].description`), and name (`$.value[*].name`).
5. Save your changes.
# Integrate with Outlook
Source: https://help.nextmatter.com/docs/integrate-with-microsoft-outlook
Send information and email invitations to event participants directly from your workflow.
As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
Use a Next Matter no-code step (**+ Add step > Integrations**) For details, see [Connect to outlook code-free](/docs/connect-to-microsoft-outlook-code-free)
### Send an email invite
1. In your Next Matter portal, click **Workflows**, and then click the workflow that should send invites to Outlook.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
* **Method**: POST
* **URL**: `https://graph.microsoft.com/v1.0/users/YOUR_USER_ID/calendar/events` Your user ID is the unique email address that was created for you to use when you sign in to Microsoft 365. A user ID may look similar to the following: `ellen@contoso.partner.onmschina.cn`
* **Headers**: Content-Type: application/json
* In the **Body** enter the values. For example, the body might look like the following.
```json JSON theme={null}
{
"subject": "EMAIL_SUBJECT", //this is a placeholder
"body": {
"contentType": "HTML",
"content": "EMAIL_CONTENT" //this is a placeholder
},
"start": {
"dateTime": "START_DATE_YYYY-MM-DD & START_TIME_HH:MM:SS", //this is a placeholder
"timeZone": "TIMEZONE" //this is a placeholder
},
"end": {
"dateTime": "END_DATE_YYYY-MM-DD & END_TIME_HH:MM:SS", //this is a placeholder
"timeZone": "TIMEZONE" //this is a placeholder
},
"location":{
"displayName": "LOCATION_NAME" //this is a placeholder; it can be event location or a meeting link for a virtual meeting
},
"attendees": [ //you cabn have multiple attendees
{
"emailAddress": {
"address":"ATTENDEE_1_Email_Address", //this is a placeholder
"name": "ATTENDEE_1_Name" //this is a placeholder
},
"type": "Required / Optional" //select one
},
{
"emailAddress": {
"address":"ATTENDEE_2_Email_Address", //this is a placeholder
"name": "ATTENDEE_2_Name" //this is a placeholder
},
"type": "Required / Optional" //select one
},
]
}
```
6. Save your changes.
# Integrate with Notion
Source: https://help.nextmatter.com/docs/integrate-with-notion
Connect your workflow and Notion to create new pages or add paragraphs.
Have a workflow trigger creating a new page in Notion.
You need to be a workspace admin to complete this task.
## Configure Notion
1. Create a new integration in Notion [here](https://www.notion.so/my-integrations).
2. On the Notion integration page, create a new internal app called "Next Matter”.
3. Click the app and copy the Integration secret. You'll need to provide it in the Next Matter workflow.
4. In Notion, click the parent page under which you'll be creating new pages. To do this, in the top right-hand corner click **... > + Add connections**.
5. Select the Next Matter app.
6. Allow Notion access to Next Matter.
7. On your parent page, in the top-right corner click **Share**.
8. Click **Copy link**.
9. Paste the link somewhere and extract the Notion page ID from the link. You can find the page ID at the end of a Notion page's URL (before any query strings starting with ?). For example, the page ID here [https://www.notion.so/nextmatter/Content-fa12225389b641339a46df8073992b62?pvs=4](https://www.notion.so/nextmatter/Content-fa12225389b641339a46df8073992b62?pvs=4) would be **fa12225389b641339a46df8073992b62**.
## Configure Next Matter to add a new page
1. In your Next Matter portal, click **Workflows**, and then click the workflow you want to create pages in Notion.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
* **Method**: POST
* **URL**: [`https://api.notion.com/v1/pages`](https://api.notion.com/v1/pages)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Notion's integration secret
* In the **Body** enter the values. For example, the body might look like the following:
```json theme={null}
{
"parent": {"page_id": "YOUR_PARENT_PAGE_ID"}, //Replace Parent page ID
"properties": {
"title": {
"title": [
{
"text": {
"content": "TITLE_OF_NEW_PAGE" //Replace with title
}
}
]
}
}}
```
6. Save your changes.
## Configure Next Matter to add a new paragraph
1. In your Next Matter portal, click **Workflows**, and then click the workflow you want to create pages in Notion.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
* **Method**: PATCH
* **URL**: [`https://api.notion.com/v1/blocks/PAGE_ID/children`](https://api.notion.com/v1/blocks/PAGE_ID/children)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Notion's integration secret
* In the **Body** enter the values. For example, the body might look like the following:
```json theme={null}
{
"children": [
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"type": "text",
"text": {
"content": "PARAGRAPH_TEXT_HERE" //replace the placeholder
}
}
]
}
}
]
}
```
6. Save your changes.
# Integrate with Nutshell
Source: https://help.nextmatter.com/docs/integrate-with-nutshell
Create a new contact in Nutshell CRM.
## Create a new contact
1. In Next Matter select the workflow that should integrate with Nutshell and add a new integration step.
2. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: [`https://app.nutshell.com/api/v1/json`](https://app.nutshell.com/api/v1/json)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Base64-encoded`username:Nutshell_API_KEY`.
For details on how to generate a Nutshell API key, see [Nutshell documentation](https://support.nutshell.com/hc/en-us/articles/115013717968-API-keys-Create-API-keys-to-integrate-3rd-party-apps).
* **Body** might look like the following:
```json JSON theme={null}
{
{
"method": "newContact",
"params": {
"contact": {
"name": {
"givenName": "FIRST_NAME", //Enter first name
"familyName": "LAST_NAME" //Enter last name
},
"email": {
"email": "EMAIL_ADDRESS" //Enter email address
},
"phone": {
"number": "PHONE NUMBER" //Enter phone number
},
"tags": ["TAG_1", "TAG_2"] //Enter tags for this contact
}
},
"id": "1"
}
}
```
3. If you want to use this contact's data further in the workflow, create a variable for the contact\_id with the value of: `$.result.id`.
4. Save your changes.
## Create a new account
1. In Next Matter select the workflow that should integrate with Nutshell and add a new integration step.
2. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: [`https://app.nutshell.com/api/v1/json`](https://app.nutshell.com/api/v1/json)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Base64-encoded`username:Nutshell_API_KEY`. It might look like the following: service@\[company-domain].com:bhu123b12y312312njh123 For details on how to generate a Nutshell API key, see [Nutshell documentation](https://support.nutshell.com/hc/en-us/articles/115013717968-API-keys-Create-API-keys-to-integrate-3rd-party-apps).
* **Body** might look like the following:
```json JSON theme={null}
{
"method": "newAccount",
"params": {
"account": {
"name": "COMPANY_NAME", //Replace with company name
"owner": {
"entityType": "Users",
"id": OWNER_ID //Replace with the Owner User ID in your Nutshell
},
"industryId": "INDUSTRY_ID", //Replace with industry ID
"accountTypeId": "1",
"url": ["COMPANY_WEBSITE"], //Replace with company website URL
"phone": ["COMPANY_PHONE"], //Replace with company phone number
"address": [
{
"address_1": "ADDRESS",
"city": "CityName",
"state": "StateName",
"postalCode": "12345",
"country": "US"
}
]
}
},
"id": "10"
}
```
3. If you want to use this account's data further in the workflow, create a variable for the account\_id with the value of: `$.result.id`.
4. Save your changes.
## Create a new lead
1. In Next Matter select the workflow that should integrate with Nutshell and add a new integration step.
2. Click **Settings** and enter the following details:
* **Method**: POST
* **URL**: [`https://app.nutshell.com/api/v1/json`](https://app.nutshell.com/api/v1/json)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Base64-encoded`username:Nutshell_API_KEY`. It might look like the following: service@\[company-domain].com:bhu123b12y312312njh123 For details on how to generate a Nutshell API key, see [Nutshell documentation](https://support.nutshell.com/hc/en-us/articles/115013717968-API-keys-Create-API-keys-to-integrate-3rd-party-apps).
* **Body** might look like the following:
```json JSON theme={null}
{
"method": "newLead",
"params": {
"lead": {
"description": "LEAD_DESCRIPTION", //replace the placeholder
"contacts": [
{
"entityType": "Contacts",
"id": "CONTACT_ID" //Please replace with contact ID
}
],
"accounts": [
{
"entityType": "Accounts",
"id": "ACCOUNT_ID" //Please replace with Account ID
}
],
"note": "Note about the lead"
}
},
"id": "20"
}
```
3. If you want to use this account's data further in the workflow, create a variable for the contact\_id with the value of: `$.result.id`.
4. Save your changes.
# Integrate with PostgreSQL
Source: https://help.nextmatter.com/docs/integrate-with-postgresql
You can push the data from a Next Matter workflow to the database or pull the data you need into a workflow.
## Before you begin
* Reach out to our Support team in case you need to allowlist our IP address.
* Open PostgreSQL to outside connections. To do that:
1. Update the `postgresql.conf` file. To trace the file, run the following command:
```pgsql pgsql theme={null}
$ find / -name "postgresql.conf"
/var/lib/pgsql/9.4/data/postgresql.conf
```
2. Replace the `listen_addresses = 'localhost'` line with `listen_addresses = '*'`.
3. Restart the PostgreSQL server.
## Set up the integration in Next Matter
1. Go to **Automations library**
2. In the PostgreSQL app tile, click **Connect**.
3. Enter the required data. You might want to contact your admin about it.
| Data | Description |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Database hostname | The network host name or the IP address of the PostgreSQL server. |
| Database name | The PostgreSQL database name that you want to access. If not specified, normally the operating system username is used as the database name. To get the name log in to the server using the SQL Shell (psql) app and run `SELECT datname FROM pg_database`. |
| Port | The network port that the PostgreSQL server is running on. By default, this is port 5432. |
| Username | The database username you wish to connect as. If not specified, the default username is `postgres`. |
| Password | The PostgreSQL password associated with the specified username. To get the password, run the `psql `command` \password`. |
1. Click **Connect**.
## Use the integration
1. Click a workflow in which you want to use PostgreSQL.
2. Click **+ Add step**.
3. Select **Integrations > PostgreSQL**.
4. Click **Settings**.
5. In **Query**, enter a PostgreSQL query you want to run. It can be an INSERT, SELECT, UPDATE, or DELETE query. Make sure it's one query per integration step. Nested queries and subselects are not allowed.
You can use data references to dynamically build your query and fill it with values from your process instance. You can also store query results in variables for using them later in the workflow.
# Integrate with Sendgrid
Source: https://help.nextmatter.com/docs/integrate-with-sendgrid
If you want to automatically send an email from Next Matter, you can tap into Next Matter's built-in integration to reach out to external partners by email.
If you have your own email provider, you can also send emails using your email provider details with Next Matter custom integration step.
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Before you begin
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
## Use Next Matter's built-in integration
1. In the workflow in which you want to send an email, click **+ Add step**.
2. Select **Step templates > Integrations > SendGrid - Send an email**.
3. Customize the **Body**. You'll be using Next Matter's built-in integration, so all other details have been populated for you. Note that your emails will be sent from the Next Matter email address.
You can use data references to populate the recipient's name or content.
```json JSON theme={null}
{
"from": {
"email": "[email protected]",
"name": "SENDER_NAME"//enter a name
},
"personalizations": [{
"to": [{
"email": "RECIPIENT_EMAIL_EDDRESS"}],//enter the address
"dynamic_template_data": {
"email-subject": "SUBJECT",//enter the subject
"email-content": "EMAIL_TEXT"}//enter the contents of the email
}],
"template_id": "d-1aa0b4cd59214c18924a28c96ed78f7f",
"attachments": [//you can delete this part if you don't send an attachment
{
"content": "REFERENCE_TO_ATTACHMENT_FILE",//use the data reference to find the attachment if it was added to the process
"filename": "Attachments.zip"//enter the file name
}
]
}
```
If you want to send an email with an attachment, use the **SendGrid - Send an email with attachment template**.
## Integrate with Sengrid with your own account
1. In Sendgrid, go to **Settings > API keys**.
2. Click **Create API-Key** and define the scopes for the integration. You can only generate the key if you're an admin.
3. In Next Matter, open the process in which an email should be sent out and click **+ Add step**.
4. Select **Integrations > Custom integration**.
5. Click **Settings**.
6. Enter the following details:
```json JSON theme={null}
{
"from": {
"email": "[email protected]",//change this for your company
"name": "EMAIL_SUBJECT"
},
"personalizations": [{
"to": [{
"email": "[email protected]"//this can be a Next Matter data reference
}],//copy and paste the enitire "to:"section for every user that should also receive this email
"cc": [{
"email": "[email protected]"
}],
"dynamic_template_data": {
"email-subject": "NEW_SUBJECT",
"email-content": "EMAIL_TEXT"
}
}],
"template_id": "d-1ab0b3cd57213c18225a28c96ed78f7f" //you can find the template in Sendgrid > Email Api> Dynamic Templates
}
```
* **Method**: POST
* **URL**: [https://api.sendgrid.com/v3/mail/send](https://api.sendgrid.com/v3/mail/send)
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: Bearer SENDGRID\_API\_KEY
* **Body**: The body might look like the following:
7. Save your changes. The step in which the email is sent out is now called **Email automation**.
For details on SendGrid email configuration, see the following [Sengrid API documentation](https://docs.sendgrid.com/api-reference/how-to-use-the-sendgrid-v3-api/authentication).
# Integrate with Slack
Source: https://help.nextmatter.com/docs/integrate-with-slack
Send customized Slack messages directly from a Next Matter workflow to dedicated channels.
## Before you begin
Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Create a Next Matter Bot in your Slack workspace
The bot should be authorized to send messages on behalf of Next Matter.
1. Go to [https://api.slack.com/apps?new\_app=1](https://api.slack.com/apps?new_app=1). You might have to log in.
2. Click **Create an App** and choose **From scratch**.
3. Enter the app's name. It might be "Next Matter Bot".
4. Select your workspace from the dropdown.
5. Click **Create App**.
6. In the **Display Information** section you can set the App's logo. Use the Next Matter logo for the bot.
7. In the **Add features and functionality** section, click **Bots**.
8. Click **Review Scopes to Add**.
9. Scroll down to **Scopes**. In the **Bot Token Scopes**, click **Add and OAuth Scope**.
10. Add scopes one by one by selecting them from the dropdown. You need the following scopes:
* "channels:read"
* "channels:join"
* "chat:write"
* "chat:write.public"
* "users:read.email"
11. Scroll up to **OAuth Tokens for Your Workspace** and click **Install to Workspace**.
12. Click **Allow**.
13. Copy and save the displayed token.
### Get the channel ID
If you don't have channels yet, create one in Slack.
1. Go to [https://api.slack.com/methods/conversations.list/test](https://api.slack.com/methods/conversations.list/test).
2. In the **Arguments** section, paste the token in the **Or, provide your own token field**.
3. Click **Test Method**.
4. In the API response section, search for the name of the channel to place the bot. The ID of the channel will be in the line above the name. For example:
```json JSON theme={null}
{"id": "CAQKA5GAW",
"name": "CHANNEL_NAME",
"is_channel": true,
"is_group": false,
"is_im": false
}
```
### Add bot to channel
1. Open your Slack app and select the channel to post messages.
2. Click the gear icon in the top right corner of the channel.
3. Click **Add an App**.
4. Type "Next Matter" in the search bar.
5. Click **Add**.
You should see a message in the channel that the bot has been added.
### Configure the notification step in a process
1. In your Next Matter portal, click **Workflows**, and then click the workflow you want to send messages to Slack.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
```json JSON theme={null}
{
"channel": "C04TYPWLF2Q",
"text": "This is a line of text.\nAnd this is another one.\n\nThis is unquoted text\n>This is a sentence with some `inline *code*` in it.\n<{1. Enter all test details - URL - URL (plain)}" //this is a placeholder to replace
}
```
* **Method**: POST
* **URL**:
* **Headers**: Content-Type: application/json
* **Headers**: Authorization: `Bearer BOT_TOKEN`. Your entered details might look like the following: `Bearer xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`
* In the **Body** enter the values. For example, the body might look like the following.
6. Save your changes.
## Send a message to a user
As part of the workflow, you might want to send a Slack message to a specific user. The message will come from the customer’s Slack Next Matter App (see [Create a Next Matter bot](#create-a-next-matter-bot-in-your-slack-workspace)).
To send the message, you'll need an integration step to get the Slack user ID and a step to send the message to the owner of this ID.
You'll need a Slack token to authorize your calls. For more on getting the token, see [Slack documentation](https://api.slack.com/tutorials/tracks/getting-a-token). The API token might look like the following: `xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`.
1. Click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: GET
* **URL**:
* **Headers**: Authorization: `Bearer BOT_TOKEN`. Your entered details might look like the following: `Bearer xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`
* **Body type**: Form data
4. Create a variable for the user ID with the value of `$.user.id`.
5. Save your changes.
6. Now create a step to send the message. Again, click **+Add step** and select **Integration > Custom integration**.
7. Click **Settings** to configure the step.
8. Enter the following details:
```json JSON theme={null}
{
"channel": "CHANNEL_ID",
"text": "This is a line of text.\nAnd this is another one.\n\nThis is unquoted text\n>This is a sentence with some `inline *code*` in it.\n<{1. Enter all test details - URL - URL (plain)}"//this is a placeholder
}
```
* **Method**: POST
* **URL**:
* **Headers**: Content-Type: application/json; charset=utf-8
* **Headers**: Authorization: `Bearer BOT_TOKEN`. Your entered details might look like the following: `Bearer xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`
* In the **Body** enter the values. For example, the body might look like the following. To get the channel ID, see [Get the Slack channel ID](/docs/integrate-with-slack#get-the-channel-id).
9. Save your changes.
## Create a channel and invite users
You'll need a Slack token to authorize your calls. For more on getting the token, see [Slack documentation](https://api.slack.com/tutorials/tracks/getting-a-token). The API token might look like the following: `xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`.
1. Click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: POST
* **URL**:
* **Headers**: Authorization: `Bearer BOT_TOKEN`. Your entered details might look like the following: `Bearer xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`
* **Content type**: application/json; charset=utf-8
* **Body**:
```json JSON theme={null}
{
"name":"CHANNEL_NAME_WITHOUT_#" //replace the placeholder with your data
}
```
4. Create a variable for the channel ID with the value of `$.channel.id`.
5. Save your changes.
6. To invite users to your channel, click **+Add step** and select **Integration > Custom integration**.
7. Click **Settings** to configure the step.
8. Enter the following details:
* **Method**: POST
* **URL**:
* **Headers**: Authorization: `Bearer BOT_TOKEN`. Your entered details might look like the following: `Bearer xoxb-364112219665-5014650446325-Pt0U8RutXz1FEwVLQpkj54lf`
* **Content type**: application/json; charset=utf-8
* **Body**:
```json JSON theme={null}
{
"channel": "{2. Create Slack Channel - Integration step - channel_id (plain)}",//this is data reference
"users":["EMAIL_1", "EMAIL_2"]//enter the email addresses of the users to invite
}
```
9. Create a variable for the channel ID with the value of `$.channel.id`.
10. Save your changes.
## Send a reminder
### Before you begin
* You'll need to enter your Slack Team ID in the body of the send reminder call. To get the ID:
1. Open any web browser and log in to your Slack account.
2. Go to your workspace main page and check the URL in the search bar at the top.
3. Copy the Team ID from the URL
* You'll need a Slack token to authorize your calls. For more on how to get the token, see [Slack documentation](https://api.slack.com/tutorials/tracks/getting-a-token).
### Set up reminder
1. Click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: POST
* **URL**: `URL: `
* **Headers**: Content-Type: application/json; charset=utf-8
* **Headers**: Authorization: Slack\_API\_Key
* **Body**:
```json JSON theme={null}
{
"text": "REPLACE_WITH_REMINDER_TEXT",
"time": "REPLACE_WITH_REMINDER_FREQUENCY", //for example, every weekday at 9:45am
"team_id": "REPLACE_WITH_TEAM_ID"
}
```
4. Create a variable for the Slack reminder ID with the value of **\$reminder.id**.
5. Save your changes.
### Stop the reminder
1. Click **+ Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Method**: POST
* **URL**: [https://slack.com/api/reminders.delete](https://slack.com/api/reminders.delete)
* **Headers**: Content-Type: application/json; charset=utf-8
* **Headers**: Authorization: Slack\_API\_Key
* **Body**:
```json JSON theme={null}
{
"reminder": "REPLACE_WITH_REMINDER_ID" //for example, Rm23456789; you can use data reference to the variable created when you set up the reminder
```
4. Create a variable for the Slack reminder ID with the value of **\$reminder.id**.
5. Save your changes.
# Integrate with Smartsheet
Source: https://help.nextmatter.com/docs/integrate-with-smartsheet
You can get a cell value from Smartsheet and pull it into the workflow.
## Before you begin
1. Generate an API key in Smartsheet. You can do it in Smartsheet by going to **Account > Apps & Integrations**. For details, see [Smartsheet documentation](https://help.smartsheet.com/articles/2482389-generate-API-key).
2. In your Smartsheet sheet, get the Sheet ID, Row ID, and Column ID. This will identify the cell you want to retrieve. For details on how to get this data, see [Smartsheet documentation](https://help.smartsheet.com/articles/2482711-get-smartsheet-ids).
## Get the cell value
1. In your Next Matter workflow, create an integration step.
2. Click **Settings** and enter the following details:
* **URL**: [`https://api.smartsheet.com/2.0/sheets/SHEET_ID/rows/ROW_ID/columns/COLUMN_ID/history`](https://api.smartsheet.com/2.0/sheets/SHEET_ID/rows/ROW_ID/columns/COLUMN_ID/history)
* **Method**: GET
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `SMARTSHEET_API_KEY`
* Leave **Body**empty.
* Create the following variables:
* `$.data[0].displayValue`
3. Save your changes.
## Create a new row in the sheet
1. In your Next Matter workflow, create an integration step.
2. Click **Settings** and enter the following details:
* **URL**: [`https://api.smartsheet.com/2.0/sheets/SHEET_ID/rows/`](https://api.smartsheet.com/2.0/sheets/SHEET_ID/rows/)
* **Method**: POST
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `SMARTSHEET_API_KEY`
* **Body**: The body contains the row you want to add and the setting to place the new row on top of the sheet (`"toTop": "true"`). In case you want to place it at the bottom use (`"toBottom": "true"`).
```json JSON theme={null}
[{
"toTop":true,
"cells": [ //Copy and paste that structure one for each cell you want to fill in in the row
{
"columnId": COLUMN_ID, //this identifies the cell. No need to fill in the cells in the row
"objectValue": "CELL_VALUE",//add a cell value here
"strict": false
}]
}]
```
3. Create the following variables. It will allow you to use the data from the response in later steps.
* `$.result[0].id`
# Integrate with Twilio
Source: https://help.nextmatter.com/docs/integrate-with-twilio
Connect Twilio to use the One-Time-Password SMS Verification or send text messages to the user.
Start integrating by generating your Twilio API key.
## Create your Twilio API key
To authenticate, you can either use your Account SID and Auth Token or you can create a dedicated API Key for managing access.
* To create a dedicated API Key, go to **Twilio > Account > API keys & tokens**.
* To find your Account SID and Auth Token, open your Twilio portal. You can find the details in your dashboard in the **Account Info** section. The details need to be base64-encrypted.
To encrypt the data, you can use a tool like [https://base64encode.org](https://base64encode.org). Encode the details in the following format to generate the API key: `Account SID: Auth Token`.
# Integrate with Zapier
Source: https://help.nextmatter.com/docs/integrate-with-webhooks
Next Matter can make any Rest API call and send data to other systems or integration layers so it can be used further.
## Set up the connection
1. In the Zapier editor, click to open the **Trigger** step.
2. In the **Choose app & event** section, click the **Trigger Event** dropdown menu and select **Catch Hook**.
3. Copy the webhook's URL.
4. In your Next Matter portal, click **Workflows**.
5. Open the process that should send data to Zapier and add an **Integrations > Custom Integration** step.
6. Click **Settings** and enter the following data:
In the same way, you can integrate to any other system that uses webhooks.
* **Method**: POST
* **URL**: `WEBHOOK_URL`
* **Headers**: Content-Type: application/json
* In the **Body** enter the values you want to send to Zapier. These might be the data references of the data you collected in previous steps. For example, the body might look like the following:
```json JSON theme={null}
{ "titleofprocess": "{{instance_name}}", //replace these placeholders with data references
"linktoinstance": "{{instance_url}}",
"creator": "{{instance_lead_user}}",
"name": "{1. Enter some data - Name - Input}",
"favorite_number": "{1. Enter some data - Favorite Number - Input}"
}
```
# Integrate with Zendesk
Source: https://help.nextmatter.com/docs/integrate-with-zendesk
Exchange information between workflows and Zendesk
You can use Next Matter as a [Zendesk sidebar widget](https://www.zendesk.com/marketplace/apps/support/992085/next-matter/)! That's a quick way to start workflows, link chats and tickets, and get your tasks done.
## Before you begin
* You need your Zendesk API Key. For details on how to generate it, see [Zendesk documentation](https://support.zendesk.com/hc/en-us/articles/4408889192858-Generating-a-new-API-token).
* In your Next Matter portal, go to **Company > Integrations**, and click **Connect** next to **Zendesk**. Enter the subdomain to connect to Zendesk using OAuth. For example, if your domain is: [`https://d3v-nextmatter.zendesk.com/agent/dashboard`](https://d3v-nextmatter.zendesk.com/agent/dashboard), then `d3v-nextmatter` is the subdomain to enter.
* For some tasks, you might need a Zendesk ticket ID. The ticket ID is the number at the end of the URL that shows when you click the ticket.
* Check the [required scopes](/docs/security-matrix) to learn more about which data is shared between the apps.
### Prepare your Next Matter workflow
* Make sure that the first step in the workflow contains a form field to receive the Zendesk ticket ID.
* Make sure that you have auto-naming enabled for the workflow. The name of the instance should be a data reference to the Zendesk ticket ID. You can enable auto-naming in the **Trigger step configuration**.
* Select **Webhook trigger** in the **Trigger step configuration**. Enable the webhook and copy the webhook URL. You'll need it later on.
### Set up a custom field for categorizing the ticket and the Next Matter instance ID
The purpose of the custom field is to provide an ID of the Next Matter instance so that Zendesk can update the workflow instance automatically.
1. In Zendesk go to **Admin Center > Objects and rules > Fields**.
2. Click **Add Field** and select **Dropdown** as the text type.
3. Create one or more fields for agents to choose from.
You can use fields/categories that you already have. Additionally, you can make the fields end-user editable if you want to allow users to select categories that then trigger Next Matter workflows.
4. Save your changes.
5. Click **Add Field** again and select **Text** as the text type.
6. Give the field a meaningful name.
Your agents can either manually fill the workflow ID in each ticket but it's easier if you send the **instance ID** from the Next Matter workflow to Zendesk with an integration step.
This is how to send instance details to Zendesk
1. In your Next Matter workflow, create an integration step.
2. Click **Settings** and enter the following details:
* **URL**: `https://YOUR_ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/{Instance Name}` with Instance Name being the data reference
* **Method**: PATCH
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* In **Body**, enter the following:
```json JSON theme={null}
{
"ticket": {
"custom_fields": [
{ "id": ZENDESK_CUSTOM_FIELD_ID, "value": "{Instance URL}" }
]
}
}
```
### Add the field to the ticket form
1. Go to **Admin Center > Objects and rules > Forms**.
2. Click on the form you'll use to start the workflow.
3. Drag and drop the newly created custom field from the right-hand side section to the form.
### Set up a webhook
The webhook will activate the integration with Next Matter.
1. In Zendesk, navigate to **Admin Center > Apps and Integrations > Webhooks**.
2. Click **Actions > Create Webhook**.
3. Give the webhook a meaningful name.
4. In the **Endpoint URL**, enter the endpoint created for the [Webhook trigger](/docs/webhook-triggers).
5. Select **POST** as the call method and **JSON** as the response format.
### Set up a trigger
Zendesk needs to be configured to send the right data at the right time to Next Matter. For that, you need to configure a trigger within Zendesk. **For each workflow you want to communicate with, you will need a separate trigger**.
1. In Zendesk, navigate to **Admin Center > Objects and rules > Triggers**.
2. Enter a recognizable name for the trigger. We recommend basing the name on the type of update that you want to do in Next Matter.
3. Choose a Zendesk category for your trigger. We recommend creating a "Next Matter" category for all your Next Matter-related triggers.
4. Set up the conditions for your trigger. This defines when Zendesk contacts Next Matter. The trigger can be based on different events happening in your tickets. Note that there must be one condition to check if the Next Matter Instance ID field that you created before is not empty.
5. Add action and choose **Notify webhook** in the dropdown. Select the previously configured Next Matter webhook in the second dropdown.
6. The contents of the **JSON body** can contain whatever information you need to transfer from Zendesk. For example, the section might look like the following:
```json JSON theme={null}
{
"id":"{{ticket.id}}",
"description":"{{ticket.description}}",
"subject":"{{ticket.subject}}",
"type":"{{ticket.type}}",
"comment": "{{ticket.latest_comment_html}}"
}
```
When configured correctly, a Next Matter workflow will be launched with the ticket ID as the name of the workflow whenever you set the related category in the custom field and save it.
## Send data from Zendesk and complete a step
### Set up an instance field in the Next Matter form
1. In the workflow, you're building in the form to receive Zendesk input, create a form field (short input) that will be filled in with the Next Matter instance ID.
2. Copy the form field ID and store it for later.
### Set up a webhook to complete step
1. Navigate to **Admin Center > Apps and Integrations > Webhooks**.
2. Click **Actions > Create Webhook**.
3. Call the webhook: Next Matter Complete Step.
4. In the **Endpoint URL**, enter [`https://integrations.nextmatter.com/g/zendesk/completestep`](https://integrations.nextmatter.com/g/zendesk/completestep)
5. Select **POST** as the call method and **JSON** as the format.
6. Select the API key and enter the following details: **Header name**: Authorization **Value**: Api-key YOUR\_NEXTMATTER\_API\_KEY
### Set up a trigger
1. In Zendesk, go to **Admin Center > Objects and rules > Triggers**.
2. Choose a Zendesk category for your trigger. We recommend creating a "Next Matter" category for all your Next Matter-related triggers.
3. Set the conditions for **Ticket** & **Current user**. You can set other conditions that are relevant for the event you need. In the example provided, we're getting customer answers to Next Matter.
4. Select the following in **Actions**: **Notify by > Active Webhook** (left-hand field) and **Next Matter Complete Step** (right-hand field).
5. Get the following the step ID and the form field ID and enter the JSON body
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up process and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
```json JSON theme={null}
{
"nm_instance_id": "{{ticket.ticket_field_FIELDID}}",
"complete_step_data": {
"step_id": STEP_ID,
"actions": [{
"action_id": FORM_FIELD_ID,
"input_object": {
"inputValue": "{{ticket.latest_public_comment_html}}"
}
}]
}
}
```
You can use one of Next Matter no-code steps for Zendesk available when you add an integration step. For details, see [Zendesk no-code](/docs/connect-to-zendesk-code-free)
## Get ticket details
1. You need to write the instance URL in the ticket to transfer the data to the instance automatically. To do so:
1. In your Next Matter workflow, create an integration step.
2. Click **Settings** and enter the following details:
* **URL**: `https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/{Instance name}` with Instance ID being the data reference
* **Method**: PATCH
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* **Body**:
```json theme={null}
{
"ticket": {
"custom_fields": [
{ "id": 360020270077, "value": "{Instance URL}" }
]}
}
```
Now you can create the next integration steps to pull data.
2. Get a set of ticket data
1. In your Next Matter workflow, create an integration step.
2. Click **Settings** and enter the following details:
* **URL**: `https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/{Instance name}` with Instance ID being the data reference
* **Method**: GET
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* Leave **Body** empty.
* Create the following variables and save your changes.
* `$.ticket.via.source.from.name` (for requester name)
* `$.ticket.via.source.from.address` (requester's address)
* `$.ticket.description`
* `$.ticket.id`
* `$.ticket.comments`
* `$.ticket.requester_id` (requester's id)
* `$.user.email` (requester's email)
You can use these variables to update the ticket with values that were stored in previous workflow steps.
## Get comments with images
To do this, you can place a GET call to `https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/{Instance name}`
with the following body:
```json JSON theme={null}
{
"include_inline_images": true
}
```
and the following variable: `$.comments.html_body`
## Search for a ticket
1. Click the **Settings** gear icon to configure your integration step.
2. In your integration step, you need to authenticate with your Zendesk API key and configure the API Method and URL. Use the following data replacing the placeholder with your own data.
* **Method**: GET
* **URL**: [https://ZENDESK\_DOMAIN.zendesk.com/api/v2/search.json?query=type:ticket%20subject:"WORD\_TO\_SEARCH\_BY"](https://ZENDESK_DOMAIN.zendesk.com/api/v2/search.json?query=type:ticket%20subject:%22WORD_TO_SEARCH_BY%22)
3. Save your changes.
## Upload a file and attach it to ticket
To upload a file and attach it to a Zendesk ticket, upload the file first and then attach it to the ticket.
1. To upload the file, create a custom integration step with the following integration details:
* **Method**: POST
* **Headers**: Content-Type: `FILE_TYPE i.e text/plain`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* URL: [`https://ZENDESK_DOMAIN.zendesk.com/api/v2/uploads/?filename=FILENAME`](https://ZENDESK_DOMAIN.zendesk.com/api/v2/uploads/?filename=FILENAME) Note that the FILENAME is a placeholder that needs to be replaced by the name of the file you want to upload. If you're uploading multiple files, this needs to be the name of the first file, you want to upload.
* Ensure the **Body type** is **Form data** and has the following details:
```
Key: data-binary
Type: file
Value: FILE_REFERENCE
```
* Create the following variables:
* an `upload` variable with the value of `$.upload`
* a token variable with the value of \$.upload.token
* a Zendesk file URL variable with the value of \$.upload.attachment.content\_url
2. Create another custom integration step to attach the file to the ticket. Use the following details:
* **Method**: PUT
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* URL: [`https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/TICKET_ID/`](https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/TICKET_ID/) Note that the FILENAME is a placeholder that needs to be replaced by the name of the file you want to upload
* Ensure the **Body type** is **Raw** and has the following details:
```json JSON theme={null}
{
"ticket": {
"comment": {
"body": "MESSAGE_CONTENT",
"uploads": [
"{1. Upload File - Integration step - token (plain)}"
]
}
}
}
```
## Pull data from Zendesk into an instance
1. In your Next Matter workflow create a new integration step.
2. To update a ticket, use the following:
* **Method**: PUT
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `ZENDESK_API_KEY`
* URL: `https://ZENDESK_DOMAIN.zendesk.com/api/v2/tickets/{{instance_name}}`
# Integrate with Excel
Source: https://help.nextmatter.com/docs/integrate_excel
You can add worksheets, use Vlook, add rows, or update row data.
As part of the integration, you need to whitelist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
It might also happen that a placeholder can be replaced by a data reference of the data provided in one of the previous steps. That's why it's a good idea to learn more about [Data references](/docs/use-data-references).
Use a Next Matter no-code step. You can select it in **Integrations**. For details, see [Excel no-code](/docs/connect-to-microsoft-excel-no-code)
### Prerequisites
* Get your file drive ID. You'll need it in the step configuration. To get the ID
1. Sign in to [https://developer.microsoft.com/graph/graph-explorer](https://developer.microsoft.com/graph/graph-explorer).
2. Select GET as the method, and provide the following URL: `GET https://graph.microsoft.com/v1.0/users/{user-id}/drives` This call will list all the drive data for a specific user.
3. View the JSON response for the value of the **id** parameter.
* Get the drive item ID (workbook ID). To get it, call this endpoint: [https://graph.microsoft.com/v1.0/me/drive/root/search(q='.xlsx')?select=name,id,webUrl](https://graph.microsoft.com/v1.0/me/drive/root/search\(q='.xlsx'\)?select=name,id,webUrl)
* Get the table name you'll be editing. To get a table name, click on the table. Go to **Table Tools > Design > Properties > Table Name**. On a Mac, go to the **Table tab > Table Name**
* Make sure that the range is formatted as a table in Excel.
### Add worksheet to workbook
1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Authorization**: Microsoft OneDrive
* **Method**: POST
* **URL**: `https://graph.microsoft.com/v1.0/me/drive/items/DRIVE_ITEM_ID/workbook/worksheets/`
* **Content-Type**: application/json
* In the **Body** enter the values you want to add in the table row.
```json JSON theme={null}
{
"name": "SHEET_NAME" //this is a placeholder
}
```
4. Save your changes.
### Use Vlookup
Use VLOOKUP to find things in a table or a range by row. For example, look up the price of an automotive part by the part number, or find an employee name based on their employee ID. For details, see [Vlookup](https://support.microsoft.com/en-us/office/vlookup-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1).
1. In your Next Matter workflow, click **+ Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Enter the following details:
* **Authorization**: Microsoft OneDrive
* **Method**: PATCH
* **URL**: `https://graph.microsoft.com/v1.0/drives/DRIVE_ID/items/DRIVE_ITEM_ ID/workbook/worksheets/WORKSHEET_NAME/range(address='RANGE')` **Tip**: The worksheet name is the name of the current tab Provide the range in the format of A1:A1 (it defines the cell or cells containing VLOOKUP formula)
* **Content-Type**: application/json
* In the **Body** enter the values you want to add in the table row.
```json JSON theme={null}
{
"formulas" : [ ["=VLOOKUP(\"LOOKUPVALUE\",SEARCH_RANGE,INDEX,FALSE)"] ]//these are all placeholders;
}// If you want to look up a number field instead of a text field, remove the \" characters from Vlookup
```
4. Add a variable for the Vlookup result with the value of `$.text[0][0]`
5. Save your changes.
# Launch instances automatically
Source: https://help.nextmatter.com/docs/launch-instances-automatically
You can automatically start instances when another workflow completes and send data from one workflow to a step in another one.
## Automatically launch a new instance
1. Click **+ Add step** and create a form with the form fields the external user needs to fill in.
2. Create a new **Integrations > Custom integrations** step. It will be used to automatically launch the workflow.
3. Click **Settings** on the step, and enter the following details:
You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
* Click **+ Create variable** and create an `ID` reference of the value `$.id` and the `URL` reference of the value `$.url`.
* **Method**: POST
* **URL**:
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `Your_NextMatter_API_key`
* In the **Body** enter the following:
```json JSON theme={null}
{
"process": "https://core.nextmatter.com/api/processes/WORKFLOW_ID/",
"name": "{Instance ID} - Sub-workflow"
}
```
4. Save your changes.
## Send data to the instance step
1. Create a new **Integrations > Custom integrations** step. It will be used to send data to the new instance and automatically complete the first step of the instance.
2. Click **Settings** on the step, and enter the following details:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{3.Launch - Launch workflow automatically - ID (plain)}/complete_step/`
* **Headers**: Content-Type: `application/json`
* **Headers**: Authorization: `Your_NextMatter_API_key`
* In the **Body** enter the following:
```json JSON theme={null}
{
"step_id": "STEP_ID",
"actions":[
{
"action_id": "ACTION_ID",
"input_object":{"inputValue":"TEXT"}
}
]
}
```
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
3. Save your changes.
# Participate in workflows
Source: https://help.nextmatter.com/docs/learn-next-matter-as-process-participant
It might happen that you use Next Matter because you got workflow steps assigned to you.
In this case, you might need some information about the following areas to organize your work:
* How to use the status board
* How to use conversations
* How to prioritize
* How to delegate or take over a task
## Stages board
The stages board shows you the progress of a workflow instance as it moves from stage to stage. It might be a good resource if your task is to pick up actions when they reach a certain stage in a workflow.
To see the Status Board, in **Workflows**, click a specific workflow to see its overview.
## Conversations
If you have a question regarding a step or a workflow, it's a good idea to start a conversation. You can do it for every instance.
You can tag teams or individuals, and they'll be able to see your message in their inbox.
At any point in time, you can mark the conversation as complete, or reopen a closed conversation.
## Prioritization
To make sure you know which tasks should be tackled first, we recommend using Next Matter Inbox. It displays the list of tasks assigned to you, which you can filter based on, for instance, priority and deadline.
You can also use the **Attention needed** section to see which tasks are already past the deadline and need to be handled as soon as possible.
If your organization scales the number of workflows, it's a good idea to revisit your notification settings. Maybe you don't want to get notified when a task is assigned to you but prefer to control your workload from the Next Matter Inbox?
You can manage your notifications in your **Profile settings**.
## Snooze tasks
To clear up your inbox from tasks that are due in a while, you can snooze them so that they don't show up in your list of tasks.
Snoozing tasks is only available on desktop. On mobile devices, you can only view snoozed tasks.
To snooze a task:
1. Go to your Inbox.
2. In **Tasks assigned to me** or **Attention needed**, hover over an open task.
3. Click the **clock icon** on the right.
4. Select how long you want the task to be snoozed for.
The task will disappear from your inbox and it will be deducted from the number of assigned tasks and tasks needing attention. It will show up again when the snooze time has passed.
If you want to see the snoozed tasks, filter your inbox for **Snoozed tasks**.
To cancel the snooze before its due date, simply hover over the snoozed task and click **Cancel snooze**.
## Take over steps
If you're involved in a workflow and you see it's stuck and not progressing, you can always take over a step.
When you take over a step, you can't delegate it further.
If you want to delegate a step to another team member, you can reach out to your workflow or team lead to do that.
If you've been assigned to a step but someone else has taken it over or you have delegated it to someone else, you can take back ownership by clicking the **Reclaim** button.
# Create external workflows
Source: https://help.nextmatter.com/docs/let-an-external-user-start-a-process
It might happen that the first step in a workflow is an external user sending data to Next Matter. It might be a customer who wants to move stocks to your company and is filling in a form with the data. Sending the data can then start the stock transfer workflow.
If you want external user to access your workflows, you have three options to set it up:
* Create a public form
* Create a user portal
* Create a step and assign it to an external user
Public forms and requests created using user portals can be tracked! Portals offer **My requests** tab that shows the progress of created requests and when tracking is on for public forms, external requesters receive a public link that enables monitoring progress.
## Create a public form
Use a public form when you want anyone with a link to be able to complete a form and start a workflow. The form is normally the first step of the workflow and can be easily accessed by scanning a generated QR code or a link. That's why it's a good solution anywhere where users use mobile devices and use the form to quickly log sth (an issue in a warehouse or a car failure).
1. In your Next Matter portal, click **Workflows**.
2. Click **Create new > Create a new workflow**.
3. Enter the workflow name and click **Create**.
4. Click **Add step > Form** and create a new form. Assign it to the **User triggering the workflow**. This will be the form the external user will see.
5. Click the start step under the workflow overview.
6. In the **Workflow start options**, click **Public form**.
7. In **Form configuration**, click **Use first step as public form**.
8. Enter the instance name.
You can send the user the link available in **Public form link** or generate and send a QR code. You can also place the QR code on your website so that it's available for any customer who wants to partner with you.
You can generate an external portal link that will automatically create data references. For details, see [Pass meta information](/docs/pass-meta-information).
If you want to pass the information to another workflow, see [Send data to an instance step](/docs/let-an-external-user-start-a-process#enable-instance-tracking).
For users who switch between devices, it's a good idea to add **?qrCode=true** to the end of the public form URL. This way the form will show with a QR code on top that can be quickly scanned by mobile users. This can come in handy if you open the form on your desktop but need to continue on your mobile for example to upload photos taken with your phone.
## Create a portal
Portals are a good solution when you want to share multiple workflows with a number of users. You create a user hub, add workflows you want to share, and send the link to whoever needs access. You can share portals with teams, colleagues, or light users (users who have access to portals and their inbox and require a Next Matter account with a light user role).
For details, see [Portals](/docs/share-workflows-in-portals).
## Create a form step and assign it to an external user
If you want to send an external user a form they can fill in as part of the workflow, you can also create a form step and assign it to an external user. Then create an email to the user and use data references to ink the created Public URL to the form. This way the user will be able to click the link and open the form without logging in.
You can use this solution in combination with the [webhook trigger](/docs/webhook-triggers), when a customer logs a ticket, the customer email address is automatically extracted and used to send a confirmation email with an additional form to fill in.
## Enable instance tracking
If you want external users to be able to track the progress of the workflow instance they created, you can enable instance tracking on the workflow. You can enable tracking for any workflow.
In the **Workflow overview,** toggle on tracking instances.
With the toggle on, the instance URL will be available as metadata you can use as data reference. For example, you can add it in an automated confirmation email you send to users confirming you have received the form they completed.
Make sure you create stages for the workflow for which you've enabled tracking. Stages will provide meaningful information to anyone wanting to monitor progress.
Users can open the provided link as a separate page.
# Manage workflows/instances
Source: https://help.nextmatter.com/docs/manage-process-instances
Check out how to run an instance, stop, update or delete it, and how to edit or delete a workflow.
When you have created a workflow (your process template), it's time to use it in real life. Each "real-life" application of a workflow is called an instance.
You can run an instance by clicking the play button in the workflow.
If you run an instance and it gets stuck on a step, refresh your screen.
1. Click **...** next to the workflow.
2. Click **Edit workflow**. You can edit the workflow lead, process visibility, status, and the go-live date for the workflow as well as add building notes and resources to the workflow. You can also add or remove a step from the workflow.
**Notes:**
* When you change something in the workflow, the changes will not affect the already running instances.
* Only one person can edit a workflow at a time.
1. In the workflow overview, click the active or completed instance you want to edit.
2. Click **Edit instance**. You can edit the instance's priority, name, or deadline.
You can also re-assign a step in a particular instance. To do so, click the step and click **Take over**. You can either assign the step over yourself or select a team member to re-assign this step to.
The instance editing option isn't available if the workflow has the default settings of auto-naming, disabled deadlines, and disabled priority.
1. Click **...** next to the workflow.
2. Click **Duplicate workflow**.
When duplicated, you can rename the duplicated workflow, move the duplicate to another folder, and clear the users assigned to the original workflow.
You can move a workflow to another folder. Do the following:
1. Click **...** next to the workflow.
2. Click **Move workflow**.
3. Select the new destination of your workflow.
4. Click **Move**.
Contact us if you want to switch off the deletion option altogether, for example, for security reasons. In such cases, nobody (not even admins) will be able to delete instances.
If you've tested your workflow and want to clean up your workflow dashboard, you can delete a workflow together with any live instances that are linked to the workflow. Note that only administrators and workflow leads have the right to stop or delete an instance.
**To delete a workflow**
1. Click **...** next to the workflow.
2. Click **Delete workflow**.
If there are instances linked to the workflow, they'll be listed in the pop-up for you to review.
3. Click **Delete workflow and all instances**.
**To delete an instance**
1. In the main navigation, click **Workflows**.
2. In the **Overview**, filter for the instance to delete.
3. Click the delete icon for the instance you want to delete.
If you don't want to delete the instance and lose all its data, you can also stop an instance.
Note that once you stop, the instance can't be re-started. You can find your stopped instance in the **Completed Instances** tab in the **Workflow Overview**.
If you save your edits, any changes you apply to workflows or steps are in effect immediately. They are listed in the [Changelog](/docs/work-with-process-overview#workflow-change-history).
That means it is not possible - as of today - to revert to a previous version of your workflow or to undo any accidental changes in steps and form fields.
See [Deadlines and reminders](/docs/work-with-deadlines-and-reminders)
# My requests
Source: https://help.nextmatter.com/docs/my-requests
Track the workflows you started and any open tasks you have.
## Track your portal requests
If you have access to Portals and want to track your open requests and see their status, you can do it by clicking the **My requests** tab in the Portals left-hand navigation.
The read-only list will display all your requests showing the ongoing ones first and completed later. You can also sort the requests (workflow instances) by start and update times.
If you are a regular user of the entire Next Matter portal, you can click on each request and see the details of each instance.
If you decide the request is no longer needed, you can also stop or delete it.
## Filter open tasks
If you have access to **Workflows > Overview** you can click the Open tasks tab and filter the list by Assignee. This way, you'll find all tasks that you need to take care of that haven't been yet completed.
# Next Matter actions
Source: https://help.nextmatter.com/docs/next-matter-actions
Use any of the no-code templates available to perform an action on the Next Matter instance.
## Stop instances
Use this no-code step as a result of [a condition](/docs/set-conditions-to-a-step) or as the last step in the workflow.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Next Matter action**.
3. In the operation dropdown, select **Stop instance**.
4. Provide the Instance ID.
The instance ID is an item of metadata created when an instance is created. You can find it when you open the data reference braces or by calling Next Matter API ([List instances](/reference/processes_instances_list)).
5. Add any variables you need to reuse later.
User variables are not displayed in the output. However, they are visible in the data reference dropdown if you want to use them in further steps.
6. Save your changes.
You can find no-code data calculations or formatting actions you can perform on Next Matter data in **Integrations > Quick Actions**.
## Add or overwrite instance tags
You can add tags to instances to categorize them and improve their searchability. See [how you can create tags](/docs/use-tags-for-better-filtering#create-tags)
With this action, you can add new tags to your instance or overwrite existing ones.
You can use this action step in combination with conditions. For example, if the customer email doesn't come from a list of approved domains, you can automatically run this step to add a warning tag.
You can use this action step in combination with conditions. For example, if the customer email doesn't come from a list of approved domains, you can automatically run this step to add a warning tag.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Next Matter action**.
3. In the operation dropdown, select **Tags: create, add, overwrite**.
4. Add the tags you want to create. They should be a maximum of 100 characters. You can also use a data reference to create a tag from data already in the workflow instance.
5. If you want to replace existing tags with new ones, toggle on **Overwrite all existing tags**
If you want to replace only specific tags and leave some of the old ones in place, add the ones you keep to the **Add tags** list.
6. Tags have a limit of 100 characters to maintain readability. If you use a data reference as a tag, you might not know how long the final tag will be. In that case, it's a good idea to toggle on the **Fail step if a tag exceeds 100 characters**. Otherwise, the instance overview might be cluttered with unreadable tags.
7. Save your changes.
## Export step as PDF
The step works on the running instance.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Next Matter action**.
3. In the operation dropdown, select **Export step from Next Matter**.
4. Enter or reference the step ID (for multiple steps, click **+ Add**).
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
5. Expand **Advanced configuration** to select the template for the PDF export, define margins, or narrow down the form fields to export by entering the list of form field IDs. You can also toggle to enable options. **Tip**: Enter the number to define margins - the number should be a value in inches.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up process and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
6. Save your changes.
## Export instance as PDF
The step works on the running instance.
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Next Matter action**.
3. In the operation dropdown, select **Export instance from Next Matter**.
4. Enter or reference the step ID (for multiple steps, click **+ Add**).
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
5. Expand **Advanced configuration** to select the template for the PDF export, define margins, or narrow down the form fields to export by entering the list of form field IDs. You can also toggle to enable options. **Tip**: Enter the number to define margins - the number should be a value in inches.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up process and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
6. Save your changes.
# No-code automations
Source: https://help.nextmatter.com/docs/no-code-automations
No-code integrations enable you to create code-free steps or perform a no-code action on data
## No-code integrations
No-code integrations only require you to [connect the app](https://app.nextmatter.com/app/workspace/integrations) in Next Matter and configure the step.
1. Connect the app in Next Matter. You can do it in **Automations library**.
2. When creating a workflow, click **Add step > Integrations** and select any available integration. All of the integrations there are no-code integrations.
3. Configure the step by providing the required values.
Connect to Gmail with no-code automation
Analyze text code-free with AI
Connect to SharePoint without code
Send DocuSign envelopes with no code
Connect to Google Sheets without code
Connect to Front app no-code
Connect to Freshdesk no-code
Connect to Microsoft Excel with no code
Create PDF, text, or JPG files
Connect to Microsoft Outlook code-free
Send no-code Slack notifications
Connect to Zendesk code-free
## Next Matter actions
Next Matter actions are no-code steps that create an action in Next Matter. For example, you can use it to stop an instance of a workflow.
For details, see [Next Matter actions](/docs/next-matter-actions)
## Quick actions
Quick actions enable you to perform a code-free action on a set of data. For example, you can format a date, compare values, or complete a calculation.
For details, see **Quick actions** articles in the left-hand table of contents.
## Script actions
We want this feature to be perfect and we're rolling it out step by step.
If you want to try it out, contact us using our chat widget.
Script action enables you to add custom code (currently: Node.js) to your workflow.
For details, see [Add and run custom code](/docs/add-code)
# Connect to Slack no-code
Source: https://help.nextmatter.com/docs/no-code-slack-notifications
Get personal notifications about tasks in Slack, allow users to select how they want to be notified, and send messages to public channels
You can send specific step-related notifications to Slack channels and get notified by Slack about completed instances or assigned tasks. Setting up this option doesn't require any coding skills and doesn't add any extra steps to your workflow.
Additionally, you can quickly send messages to Slack public channels as part of your workflow.
## Before you begin
Have your Slack integration set up. Go to **Automations library** and click **Connect** in the Slack application tile.
You need to be an admin to set up Slack integration, which is a pre-requisite for Slack notifications.
## Send messages to public channels
1. When you build or edit your workflow, click **+ Add step**.
2. Select **Integrations > Slack**.
3. Click **Configure integration**.
4. Select the **Send message to public channel** action in the **Slack action** dropdown.
5. Enter the message and select the channel to which you want to send the message. The dropdown lists all the public channels available in your Slack workspace. Tip: You can use data references in your message. When referencing long text inputs, use the JSON-formatted reference rather than the plain-formatted reference. This ensures that special characters such as linebreaks and quotes are encoded correctly.
6. Click **Save changes**.
Make sure to run a test workflow to see if the message goes through. It might happen that you can see the success message as the step status and the step shows as completed, but the step still fails. This is specific to Slack API to respond with a success status and then detail an error in the actual response message.
User variables are not displayed in the output. However, they are visible in the data reference dropdown if you want to use them in further steps.
## Use step notifications
After you or your admin has connected Slack, you can send notifications to selected channels directly from the step. With Notifications you can only send updates to channels - you can't send direct messages.
1. In the step, click **Notification**.
2. From the **Send by** drop-down, select **Slack**.
3. Select one or more channels to send the message to.
4. Enter the message. You can use [data references](/docs/use-data-references) if needed.
5. Click **Send**.
When the notification is sent out, you can see a notification icon under the step it was sent from.
### Send to private channels
If you want to send a notification to a private channel, you first need to add the app to that channel so that the private channel shows up on the list. To do that:
1. Open the Slack channel and click its name to open details.
2. Open the **Integrations** tab.
3. Click **Add** to add the Next Matter app to the channel.
## Use links in messages
If you're adding a link to your message as a data reference to, for example, a page or document you created with a Next Matter no-code step, make sure you use the plain (and not JSON) reference.
## Decide how to get notified about tasks
After you or your admin has connected Slack, you can decide if you prefer email or Slack notifications about your tasks. Selecting Slack will send you a Slack direct message for every new task you are assigned to.
You can make this choice in your **Profile settings** by clicking the avatar icon in the bottom-left corner of your Next Matter portal.
Select your favorite option in the **Notifications** section.
If you clear all options, we'll notify you about tasks and due dates using Next Matter **Inbox**.
# Okta authentication
Source: https://help.nextmatter.com/docs/okta-authentication
You can log in to Next Matter using Okta
We support Okta in the Enterprise plan.
1. Ensure each user has an existing Next Matter account associated with the same email they use for authenticating with Okta.
2. Create a new OpenID Connect server-side web app in your Okta workspace. Do the following:
1. Sign in to your Okta Admin Dashboard as an administrator.
2. Go to the **Applications** and click **Create App Integration**.
3. Select **OIDC - OpenID Connect** as the sign-in method.
4. Choose the application type. For a server-side web application, select **Web Application**.
5. Configure the application.
* In the **Grant type**, select **Refresh Token**
* In the **Sign-in redirects URIs**, enter [https://app.nextmatter.com/login](https://app.nextmatter.com/login)
* In the **Sign-out redirects URIs**, enter [https://app.nextmatter.com/login](https://app.nextmatter.com/login)
* In the **Base URIs**, enter [https://app.nextmatter.com](https://app.nextmatter.com)
* Decide on the **Assignments**. We recommend the following settings:
3. Reach out to our Customer Success team (use the Contact us button in the top-right of this page) with the following details, so that we can complete our end of the configuration:
* **Okta authentication domain** - you can find it in your Okta Admin Console by navigating to `https://.okta.com/admin`, where `` is your organization's custom Okta domain.
* App integration **client ID** and **client secret** - you receive them from Okta when you've created your application.
We will reach out to you when the set-up is completed on our side and you can use Okta to log in to Next Matter.
We can't enforce specific login methods for users.
# B2B onboarding with Next Matter
Source: https://help.nextmatter.com/docs/onboarding-with-next-matter
Make onboarding a replicable, quality and enjoyable experience: for employees, customers, partners, ...and yourself.
Onboarding employees, customers, or partners can be a tedious process that involves sharing many resources and emailing forms back and forth. It can be difficult to keep track of what has been shared, completed, and collected. However, automating the onboarding process can be a life-saver, time-saver, and smart way to maintain quality and control.
Read about our client running [B2B onboarding with Next Matter](https://www.nextmatter.com/case-study/branch-insurance).
## Automate to win
Automating onboarding flows can have the following benefits:
* **You have control** over what information is shared, when, and with whom.
* You can onboard everyone in the same **quality manner**.
* You can automatically **send the collected data to external databases**.
* Onboarding becomes **measurable and compliant**.
* You **save time and resources**, and have peace of mind that nothing has been overlooked.
## Features that do the trick
Our clients make use of the following features to achieve these benefits:
* **Portals**: sharable and customizable portals that take seconds to create but save hours searching for and sharing the right workflows. Users can start the right workflow directly from the portal and complete tasks securely and easily. [Learn more...](/docs/share-workflows-in-portals)
* **Forms**: advanced forms that allow for collecting all sorts of data, from photos to text inputs and signatures. Forms are easily built and customized; fields can be shown based on conditions and previous input, and drop-down lists can be dynamically populated with data from external databases. [Learn more...](/docs/about-actions-and-action-types)
* **Data-sharing**: data references allow for advanced data reuse. As soon as a piece of information appears in the workflow, it can be shared, referenced, and reused. [Learn more...](/docs/use-data-references)
* **Extensive integrations**: integrating with external databases (Amazon Redshift or PostgreSQL), online sheets, and drives allows for quick and efficient data exchange. [Learn more...](/docs/integrate-across-tools)
* **Timestamps and overviews**: clear overviews of which steps have been completed and by whom provide an auditable picture of the workflow health and possible bottlenecks. [Learn more...](/docs/overview-of-processes-and-instances)
## Next steps
Read about other end-to-end solutions:
* [Compliance with Next Matter](/docs/compliance-with-next-matter)
* [Customer service automation with Next Matter](/docs/customer-services-with-next-matter)
# Monitor progress with roadmap
Source: https://help.nextmatter.com/docs/overview-of-processes-and-instances
With roadmap you can get a 360-degree view of your workflows and instances. Use it for reporting or reviewing statuses and to define who builds which workflow by when.
To open the roadmap, click **Roadmap** in the left-hand navigation. You can also access the roadmap from your Next Matter dashboard.
## Roadmap for managers
### Filtering for the right data
As a manager, you can quickly access metrics and see where the team is at implementing and running workflows. You can filter the data by:
* Workflow status
* Time to go live
* Workflow lead
### Monitor
Have an overview of the workflows that are live versus those that are still on the backlog. You can also update the status label for each workflow, and prioritize those that are critical.
If need be, you can quickly access the workflow to change the lead or update the go-live date.
## Roadmap for builders
### Quick access
As a builder, you can use roadmaps to quickly access workflow status and monitor which workflows are about to go live. You can drill down to check whether all builder notes have been completed, or, if some have not, click the **number link** to see what still needs your attention.
You can also click the **eye or pencil icon** (if you have edit rights) to quickly view and update the workflow.
### Troubleshooting
Use the instances started column to monitor any overdue or canceled instances and access them quickly. You can also verify the completed instances.
### Workflow suggestions
If you need suggestions on how to break a workflow down into steps, use the AI process builder to give you some hints. Click **+ Create new workflow with AI** for our Chat GPT-powered AI engine to help out.
# Add metadata
Source: https://help.nextmatter.com/docs/pass-meta-information
By adding parameters to the public form URL, you can automatically gather and pass meta information to the workflow and external databases. This way you exchange manual data input for automation.
When you create a public form for users, you can specify that certain parameters are added to the form URL. The parameters are transformed into data references in the launched workflow instance and can be used within Next Matter or passed to an external database such as Redshift.
This way, you don't have to add the references manually but specify which references you want to get, and those are automatically gathered, which saves you time and increases the reliability of data collection. You can also use this feature to connect any in-house-developed system to Next Matter or to automatically gather user data.
For example:
1. You specify that `country` and `time` should be appended to the URL. This will configure the form link to be: `https://app.nextmatter.com/portal/2974dc3c-61fd-40b4-a292-38117cef36e9?country=value&time=value`
2. The user starts an instance that gets a **dedicated link** assigned. For example: `https://app.nextmatter.com/portal/2974dc3c-61fd-40b4-a292-38117cef36e9?country=Spain&time=Monday`
3. When the user submits the data they entered in the form, the `country` and `time` become variables that can be reused throughout the workflow and are stored in the instance.
Notes:
* The link can be shared with anyone (internal and external users)
* If the parameters are not defined, a regular form link will still work
* The data references created from the parameters are available in integration testing as instance metadata
* The parameters don't work with the QR code
* Multiple parameters can be appended to the link
## Add parameters to link
1. Click **Workflows > Create new\... > Create a new workflow**.
2. Give your workflow a name.
3. Add your steps to the workflow.
4. In the left-hand panel, click the start item (under **Overview**).
5. In the **Workflow start options** section, select **Public form**.
6. In the **Form configuration**, select **Use first step as public form**
7. In the **Configure URL parameters,** click **+ Add**.
8. Enter the **Reference name** and **Parameter name**. These can be the same.
9. Copy the URL from the preview. You can insert the URL to your external apps.
10. Click **Save**.
# Personal profile
Source: https://help.nextmatter.com/docs/personal-profile
Decide if and how you want to get notified about tasks or instances and manage your personal details and password.
To open your profile settings, click the icon in the bottom-left corner and then click **Profile settings**.
## Update your profile picture
1. To set or change your profile picture, in the profile settings click **General**.
2. In the photo section, click **Edit**.
3. Click **Upload new photo**.
4. Select the picture you want to upload and click **Open**.
5. Fit the picture to the window and click **Use photo**.
6. Click **Save changes**.
If you decide to remove the picture, we'll show the first letter of your username as the avatar.
## Update your password
1. To set or change your password, in the profile settings click **General**.
2. Click **Send link to set password.**
3. Check your email account inbox. We'll send you an email to the email associated with your Next Matter account.
4. Click the button in the email.
For security reasons, the reset link is valid for 3 days.
## Set up notifications
Use the options available in the **Profile settings > Notifications** to set up your preferences. You can pick if you want to receive reservations by email, Slack, or both. If you pick Slack, you'll receive direct messages.
Note that Slack needs to first be set up by the admin for the entire company.
If you don't want to receive any email notifications from us, clear all checkboxes. This way, we'll only notify you about things that need your attention or tasks assigned to you using the Next Matter inbox.
## Set up out of office notifications
Note that the setting only works for public workflows and instances.
1. In the profile settings click **Out of office**.
2. Select **Activate out of office**.
3. Specify the start and the end date for the out-of-office. The end date is the last day you are away and unavailable.
4. Select your stand-in. If someone assigns a task to you in your absence, the task will get delegated to the selected stand-in on step activation. The stand-in can be a specific person or a team.
5. Click **Save**.
When the out-of-office is active, we will mark it with the yellow dot next to your avatar.
Note that only new tasks will be re-assigned. All the tasks that have been assigned to you before you activated out of office will remain assigned to you.
To deactivate out of office, clear the **Activate out of office** checkbox.
Note that the setting doesn't apply to tech leads - when an instance fails, the task will be automatically delegated to the set tech lead without any out-of-office check.
### Important considerations
* Delegation **won't work** when the **workflow and the instances are private** or the workflow is public but the **instances are private** - if the stand-in doesn't have access to the workflows and instances, they won't be able to complete the steps. In such cases, the workflow lead or the admin can manually delegate the task to the stand-in.
1. Go to **Workflow overview > Open tasks**.
2. Click **Filters** and filter by **Assignee** to find the current assignee.
3. Select the user from the dropdown to delegate the task to.
* If the **step is restricted**, and the stand-in is not included in the visibility settings, they won't be able to access or see the delegated task. To prevent these situations, it's a good idea to restrict the visibility to a team rather than individuals. Then anyone from the team can be a stand-in, and complete restricted steps if need be. This way all the people you add to the team will automatically have access, and those that leave the team - won't.
* Only **new instance steps get delegated**. The existing steps that are already in the assignee's inbox won't be re-assigned by the OOO settings.
* You can delegate to all users **irrespective of their roles**. For example, you can delegate to light users.
# Get started: Portal user
Source: https://help.nextmatter.com/docs/portal-user
As a portal user you can start requests from portals, and complete tasks.
As a portal user, you have access to Next Matter Inbox and [Portals](/docs/share-workflows-in-portals) that have been shared with you. You can start workflows from portals and complete tasks in those workflows.
You can also start conversations and set up your notifications
**Watch an onboarding video**
# Prefilling
Source: https://help.nextmatter.com/docs/prefills
Save user time by prefilling values in form fields.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
## Prefilled values
When you configure a form field, you can select the **Prefilled value** checkbox. The checkbox enables you, as a workflow builder, to select or enter a value for this field that the user will see when they run a workflow instance.
This can be helpful if the value is already captured or help elsewhere. In such cases, you can find it as data reference and pre-populate the field for the user. In any case, the value is always editable for the end user, so they can delete it and enter a new one instead.
The solution is also useful for 4-eye checks when system data needs to be checked by a reviewer. With the prefilled data, reviewers can verify all the values when they run a workflow instance and confirm its correctness.
You can add prefilled values for all form field types.
You can only prefill with values added in previous steps, not in the same step.
# Product overview
Source: https://help.nextmatter.com/docs/product-overview
Operational excellence is key to any business. The clue is to build a flow that smoothly links tools, people, and tasks. This is where Next Matter shows its value.
In Next Matter it's all about workflows. A workflow is a chain of steps or tasks, sometimes complex and sometimes simple but tedious, that helps to get the work done in a timely and quality manner.
## Workflow pillars
A good workflow rests on 3 pillars:
* You collaboratively custom - **design** it taking into account the stakeholders
* You test and **run** it so that it can get honed in action
* You **optimize** it by addressing bottlenecks for best performance and infallibility
### Design
This is a collaborative stage where you outline your flow, draft tasks, assign people and teams, and connect all the necessary tools. The key player here is the **builder**, who works with the stakeholders to create a smooth process, map out dependencies, and connect the necessary technical stack.
Next Matter offers a comprehensive **Builder toolbox** that enables builder teams to achieve their goals. The toolbox consists of a visual workflow editor, no-code quick steps, **enterprise automation** tools that allow for third-party connections, a form builder, and more.
### Run
This stage is the grand launch. Let your clients test what you've built. Do they love it? Are the flows clear? Are you getting the data you need?
Run your workflows and see how much redundancy has been eliminated, and how easy it is to collaborate with teams when you are sure they have received the right message at the right time.
Here Next Matter supports you with workflow versions allowing for transparent change management, clear overviews for internal and external participants where they can track progress, and user hubs (portals) where you can offer easy access to the flows your teams need. **Team apps** and **Guest apps** are solutions enabling internal and external collaboration and information exchange inspiring confidence that things are on track and boosting transparency.
### Optimize
This stage helps you look at your SLAs and make sure you're delivering on your promises. With aggregated start and completion data at hand, you can spot issues before they happen and address all bottlenecks in due course. This is also the time to analyze and tweak performance, making your operations efficient but still user-friendly. It's a good idea to double down on compliance and with Next Matter logs and timestamps neatly stored, you're not missing a beat.
**Manager dashboard** is a set of features leveraging analytics that give insights into your operations and performance. Having data like completion times at your fingertips, you can plan to scale and grow.
## Workflow roles
Creates and manages workflows
Completes tasks, runs workflows, takes over steps
Monitors progress and looks for bottlenecks
Starts requests and completes tasks
# Variables in workflows
Source: https://help.nextmatter.com/docs/pull-variables-into-a-process
In Next Matter you can send data to an external application. You might then pull the processed data from these apps and reuse it in the workflow.
## What is a variable
A variable is a **value that changes** depending on a context or situation. It might be a version number, a document ID, or a sum of a calculation pulled into a workflow from a 3rd party tool.
For example, you might want to create a Zendesk ticket directly from a Next Matter workflow and pull the ticket ID of this ticket back to the workflow for reference.
In Next Matter you can create variables in one of the two available ways:
* **Selectable** variables: you can select variables from the dropdown. This is possible in no-code steps, quick actions, or when you start a workflow with a webhook trigger
* **"DIY"** variables: you can run the integration step without variables, look at the response, and define the value you want to extract.
## Select variables from the response body
When you test a webhook, you call it, and the response is received from Next Matter. We parse the response for you and select data that can be reused.
## Variables in no-code steps
You can add variables to your step configuration. Variables are chunks of data that we take from the **Response** of the step and turn into reusable items.
We extract the data chunks you can reuse. To add variables, select them from the **Select data to reuse** drop-down and click **+ Add**.
**Tip**: You can still add custom variables. Simply add a pre-defined one, clear the fields, and enter the desired variable.
For example, this is how you can add variables in the no-code Google Sheets integration:
## Create a variable from scratch
1. Create a step and select **Integrations** as the step type. You can add this step to an already existing workflow or create a new workflow. The integration step with a variable will be the step **to which** you want to send the variable data.
2. Click the settings icon.
3. Enter the API endpoint you will be calling. If unsure, check the third-party API documentation.
4. If you've already integrated with an external tool, select this tool in **Authorization**.
5. Click **+ Add a variable**.
6. Configure the variable:
* Give your variable a meaningful name
Make sure there are no brackets or braces in the variable name.
* Click **Test integration** and copy the **JSON response** provided by the integration step request. Extract the variable from the response and use an online evaluator to test the required syntax for the variable [https://jsonpath.com](https://jsonpath.com).
Note that Next Matter doesn't allow single quotes for numbers. For example, `124` is without quotes here: `$.field[?(@.id==124)].value`.
* Copy the variable over to Next Matter.
After you've saved your changes, you can reference the variable in the step where it should be used or displayed. You can select one of two available formats from the data reference dropdown:
* Plain - useful if you want to display the result
* JSON - useful if you want to use the result in another integration step
If you're trying to extract data from a payload that has defined IDs, make sure the IDs are not wrapped in quotes in the final JSON path. For example, `\"process_step\":264733`.
## Null variables and conditions
Next Matter's API allows retrieving specific fields or actions in a workflow using JSONPath.
For example, if you use the endpoint `GET /instances/{instance_id}/?inject_values=true` to inject the field input values into the response, you can use the following JSONPath to parse the response and retrieve the input value of a form field:
```json theme={null}
$.process_snapshot.steps[?(@.id == )].actions[?(@.id == )].value.inputValu
```
This JSON filters the step to find the specific form field and extracts its input value.
There are cases when the API response might return a null input value. If you want to activate the next step based on whether a variable is empty or null, you can configure the next step's condition accordingly. This setting will check for empty or null input.
or you can use the following JSONPath:
```json theme={null}
$.field[?(@.value == None)]
```
## Accessing response values
You may want to reference specific values returned from an integration step. To do this, use a JSONPath expression as the variable's value.
However, be aware that the system may treat the response as a list and wrap values in square brackets (`[]`). To extract a plain (unwrapped) value, follow these steps:
1. Add the variable name and its JSONPath expression.
2. Click **Test integration**.
3. Expand the response and check whether the returned value is wrapped in brackets.
4. If it is, modify your JSONPath to include the `[*]` operator to unwrap each level of nesting.
**Example:**
If your response looks like this:
`[[ "value1", "value2" ]]`
Then use this JSONPath to extract individual values:
`$.values[*][*]`
Using just:
`$.values[*]`
would return:
`["value1", "value2"]`
# Quick actions
Source: https://help.nextmatter.com/docs/quick-actions
Add quick actions as a step to perform no-code calculations and operations on sets of data
You can find quick actions in **Integrations** when you add your step.
# Quick scripts and API examples
Source: https://help.nextmatter.com/docs/quick-scripts
Automate API calls and integrate them into workflows or applications, and get working examples for quick application.
Here are practical examples of using Next Matter's API for common automation tasks.
## Start instance and complete a step (script)
Use this Python script to automatically create workflow instances and complete steps programmatically.
**Use case:** Create a new employee onboarding workflow, automatically complete the first step by, for example, automatically filling in personal details, and advance to the next step.
1. The script creates an instance with process\_id and tags. The name is created automatically as per Next Matter settings.
* Uses the API endpoint: [https://core.nextmatter.com/api/instances/](https://core.nextmatter.com/api/instances/)
* Returns:
* Instance ID (for reference)
* Instance URL (for navigation)
* If an error occurs, it prints the error message.
2. Fills the step with the required input data and marks a step in the workflow as completed.
* Uses the API endpoint: [https://core.nextmatter.com/api/instances//complete\_step/](https://core.nextmatter.com/api/instances/%7Binstance_id%7D/complete_step/)
* Requires:
* Instance ID (to specify the workflow instance)
* Step ID (which step to complete)
* List of form fields ( with input data required for the step to complete)
If successful, shows a completion message.
```python python theme={null}
# Next Matter API Key (Replace with actual API Key)
API_KEY = "API_KEY_VALUE"
# Workfow and Step IDs (Replace with actual values)
PROCESS_ID = "WORKFLOW_ID_VALUE"
STEP_ID = "STEP_ID_VALUE"
# Next Matter API Base URL
BASE_URL = "https://core.nextmatter.com/api/"
# Headers for authentication
HEADERS = {
"Authorization": f"Api-Key {API_KEY}",
"Content-Type": "application/json"
}
def create_instance(process_id: str, tags: list = None):
"""
Creates a new instance of a Next Matter workflow.
The name of the instance will be automatically created by Next Matter.
:param process_id: ID of the workflow to create an instance for.
:param tags: Optional list of tags to assign to the instance.
:return: Instance ID and Instance URL if successful, None otherwise.
https://help.nextmatter.com/reference/instances_create
"""
url = f"{BASE_URL}instances/"
payload = {
"process": f"https://core.nextmatter.com/api/processes/{process_id}/"
}
if tags:
payload["tags"] = tags
response = requests.post(url, json=payload, headers=HEADERS)
if response.status_code == 201:
instance_data = response.json()
print(f"✅ Instance created successfully: {instance_data['id']}")
return instance_data["id"], instance_data["url"]
else:
print(f"❌ Error creating instance: {response.text}")
return None, None
def complete_step(instance_id: str, step_id: int, actions: list):
"""
Completes a step in a given Next Matter instance.
:param instance_url: URL of the instance where the step should be completed.
:param step_id: ID of the step to be completed.
:param actions: List of form fields (each containing an action_id and input_object).
:return: API response data.
https://help.nextmatter.com/reference/instances_complete_step
"""
url = f"{BASE_URL}instances/{instance_id}/complete_step/"
payload = {
"step_id": step_id,
"actions": actions
}
response = requests.post(url, json=payload, headers=HEADERS)
if response.status_code == 200:
print("✅ Step completed successfully.")
return response.json()
else:
print(f"❌ Error completing step: {response.text}")
return None
if __name__ == "__main__":
# Example usage
instance_id, instance_url = create_instance(PROCESS_ID, instance_name="Test Instance")
if instance_url:
# Modify the form field list according to your workflow's requirements
actions = [
{
"action_id": 123456, # Replace with actual action ID
"input_object": {"inputValue": "Value 1"} # Key (i.e. inputValue) depends on the type of form field
},
{
"action_id": 789012, # Replace with actual action ID
"input_object": {"itemSelected": "Value 2"}
}
]
complete_step(str(instance_id), STEP_ID, actions)
```
## Filter instances by max total runtime
**Use case:** Find all workflow instances that completed within a specific time frame.
You can use [this API call](/reference/processes_instances_list) to get filtered instances of a workflow. In the example below, we're filtering for all instances with a maximum total runtime of 50 seconds.
```ruby HTTP theme={null}
https://core.nextmatter.com/api/processes/WORKFLOW_ID/instances/?total_runtime_max=00:50
```
```Text Response theme={null}
{
"count": NUMBER,
"next": null,
"previous": null,
"results": [
{
"id": ID_VALUE,
"name": "NAME_VALUE",
"status": "completed",
"public_url": null
},
{
"id":ID_VALUE,
"name": "NAME_VALUE",
"status": "completed",
"public_url": null
}
]
}
```
Here are some other examples of values to use:
* 01 09:30 - 1 day and 9 minutes and 30 seconds
* 02:30:00 - 2 hours and 30 minutes (and 0 seconds)
* PT50M - 50 minutes (as per ISO 8601 duration formats)
* PT1H30S - 1 hour and 30 seconds (as per ISO 8601 duration formats)
# Reassign tasks
Source: https://help.nextmatter.com/docs/reassign-tasks
Find steps assigned to team members and reassign them to keep workflows running.
## Check which tasks are assigned
Use the **Open tasks** page in **Workflows > Overview** to find step assignees, and re-assign tasks if needed.
When a step is assigned to a team, only team leads and admins are authorized to assign and re-assign steps. If stepa are assigned to a specific user, only admins can reassign them. You can update team roles in the in [Company > Teams](https://app.nextmatter.com/app/workspace/teams).
## Reassign tasks due to holidays
To re-assign tasks due to absence, you can use the **Out of office** function in **Profile settings**. Each user can set up their out-of-office days and specify to whom to assign the incoming tasks while they are away.
This way all the new tasks get automatically re-assigned. The tasks that have already been assigned need to be re-assigned manually.
## Reassign tasks due to a person leaving company
Use the **Open tasks** tab in **Workflows > Overview**.
1. Go to the **Open tasks** tab.
2. Use **CTRL+F** to find the tasks assigned to the person. After the user has been deleted, they will not be displayed in the **Assignee** filter drop-down.
3. Click the assignee drop-down under the task name and re-assign the task. You need to do that separately for each task.
## Reassign within a team (collaborate on tasks)
If a task has been assigned to the team, the notification is sent to the **Inbox** (Team tab). Each team member can take the task over (which means the task will be assigned to them on behalf of the team).
However, each team member can re-assign the task again to another team member or the entire team by selecting the team or a team member from the dropdown.
Reassigning allows for collaboration on a task. However, make sure not to complete the task when you want another user to contribute to it. Completing closes the task and the workflow moves on to the next one. Users can't work on the same task **at the same time**.
# Remove users
Source: https://help.nextmatter.com/docs/remove-users
When a user leaves your organization, you must remove their Next Matter access and reassign all tasks that belong to them.
It's a good idea not to delete users at once but to check if they are still responsible for any tasks. Note that you need administrator credentials to offboard users.
1. If offboarded users have admin credentials, change them to **Colleague** credentials. You can change the credentials in **Company > Colleagues**.
2. Sort the instance lead user column of the instance overview table (**Active instances** tab) to check if the users are workflow leads (**Workflows > Overview**). If they are, delegate the workflow to someone else.
3. Go to **Open tasks** (**Workflows > Overview > Open tasks** tab**) and filter by** Assignee\*\*. Select another user from the dropdown menu to reassign the tasks assigned to the offboarded user.
4. Set up **Out of office** (**Company > Out of office**) for the user for some time (for example a month) and select a stand-in. This way you ensure that tasks in future instances won't need this user's attention (as they will automatically be reassigned to the stand-in).
5. Verify that the user has not created personal API keys to connect integrations (**Company > Next Matter API keys**). If you delete the user, the integrations that use this key will fail. In such cases, you'll need to update the integration settings with an API key connected to a service account and reconnect integrations in **Automations library**.
6. After some time, you can safely delete the user.
How does steps assignment work for assignment types
**Dynamic assignment**: for upcoming dynamic assignments, steps are automatically reassigned to the workflow lead. However, if the tasks were already assigned to the user before they got deactivated, then this user will remain assigned to them after deactivation. To reassign these steps, you need to filter the instance table (**Open tasks**) by Assignee and reassign.
**Direct assignment**: All tasks in future instances get reassigned to the workflow lead. Steps that are in progress when the user is removed stay assigned to the user. The same applies to upcoming steps of already started instances. To reassign these steps, you need to filter the instance table (**Open tasks**) by Assignee and reassign.
**Conditional assignment**: Steps that are in progress when the user is removed stay assigned to the user. The same applies to upcoming steps of already started instances and future instances in which the condition routes to the removed user.
To reassign steps that are in progress you need to filter the instance table (**Open tasks**) by Assignee and reassign. To reassign any upcoming steps, use the OOO setting.
# Reset your password
Source: https://help.nextmatter.com/docs/reset-your-password
If you've forgotten your password, you can easily reset it.
You can easily change your password if you've forgotten it.
* You can reset it in the app
* You can click **Forgot password**
# Routing
Source: https://help.nextmatter.com/docs/routing
Routing creates a section with configurable buttons that support skip logic. For example, if you have a review and decision step, you might configure one routing button to move the process to the next step on Approve and stop the workflow on Decline.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
You can only add **multiple routing sections** to a step, however, if you add more than one set, you need to add conditions to each section to define when to show which routing options.
## How can I use routing?
Imagine you've received personal information from a new supplier via a form you sent out. After reviewing the information, you can quickly decide what to do next:
* If the data is correct and complete, you can smoothly move the supplier forward in the workflow.
* If the data is missing or incorrect, you can easily send the workflow back to the previous step to request the necessary updates.
* And if you suspect the supplier is engaging in fraudulent activities, you can swiftly flag and offboard them.
By using looping, branching, and customizing workflows, you can tailor the process to fit your specific requirements. Plus, you can connect routing with conditions, ensuring the field is shown only when it meets the specified criteria.
## What can routing do?
Adding routing to your form creates a set of decision buttons. The buttons can trigger a selected action so that the selected decision-maker can do the following:
* Jump back to any previous step
* Jump to the next steps
* Stop the workflow (workflow instance will be stopped. The step status will become declined, and future steps remain unchanged)
* Continue the workflow
Routing buttons can be a part of a larger form or a stand-alone form field.
You can show the routing buttons based on specific conditions, for example, when particular data is missing, and you need to review and decide on the next action.
## Can I use multiple sets of routing buttons?
Yes! There is one caveat - you need to set conditions so that the sets show correctly and don't break the workflow. If you set conditions on each set, one set will show at a time or to a specific group of users.
## How does routing work in practice?
You can use the **Routing** form field as an alternative to the **Decision** step.
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a form using API
You can update field data and complete a form using the API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
The step returns the following data :
* Comment
* Return to step - returns a numerical value for the **Directs to** selection. Continue evaluates to -1 and Stop instance to -2. If you select a specific step, the ID of this step will be displayed.
* Action - returns the routing action selected by the user. For example: Complete (meaning the user selected the Continue action) or Aborted time when the user selected to stop the instance.
Note that when an instance is stopped using routing, the complete step endpoint response will contain `aborted_time` and not `completed_time`.
# Schedule step start
Source: https://help.nextmatter.com/docs/schedule-step-start
You can set the time for the step to start on, after, or before as certain date. For example, you might want to automatically send a follow-up email to a customer after 5 days.
You can schedule a step in relation to certain events in a workflow, for example:
* Instance start time
* Other step start/completion times
* Input from a previous step
You can also make the start dependent on specific conditions.
## Schedule start
To schedule the step's start and deadline dates:
1. Click **Workflows**.
2. Click the workflow you want to update.
3. Click the step you want to update.
4. To define the start dates, click **Schedule start**.
5. Define the time for the start. If you set the start in days, select the days of the week that should be included in the schedule. You can optionally also exclude public holidays for a country and a specific region within this country. 🧠 **For example**:
* The step is scheduled to start 4 days after the instance starts. The instance starts on Dec 25, 2025, at 14:00 hours.
* The days counted in the schedule are Wednesdays through Saturdays (with Sundays, Mondays, and Tuesdays excluded).
* Public holidays in Germany are excluded. The step should start on January 4th, 2025 at 14:00, because:
* Dec 25th, 26th, and January 1st are excluded as public holidays.
* Dec 29th, 30th, and 31st are excluded as Sunday, Monday, and Tuesday.
* We count "day" as 24 hours.
6. Save your changes.
## Schedule start and add conditions
Consider the following scenario: you want a step to start 10 days after the instance started and have a condition that it should only be activated if the form in a previous step is not empty.
This can be achieved by setting the conditions and the scheduled start on a step.
The conditions are evaluated twice: once upon completion of the step the condition refers to and once at the scheduled start time.
For example:
1. If the form in the previous step is empty, the step with the condition on will automatically be skipped not waiting for the scheduled start.
2. If the form in the previous step is not empty, the step with the condition on will wait for the scheduled start. At the scheduled start, the condition will be re-evaluated.
***
# Search
Source: https://help.nextmatter.com/docs/search
Find what you need using Next Matter search or filters
You can search your active and completed Next Matter instances by using the search bar or the available filters. In the search bar you can search by tags, and instance or workflow name, and instance ID (available for full users and admins only).
You can also search using the [List instances](/reference/processes_instances_list) API call.
Note that we currently don't support a full-text search that would search across all the data entered in an instance. If you need to always search for specific info, tag it or use it in the instance name.
# Scopes and permissions
Source: https://help.nextmatter.com/docs/security-matrix
When you connect 3rd party apps, data is shared between those apps and Next Matter. Learn what is being shared to maintain full data security.
**Best practice**: Connect integrations with a service account, for example, `services@mycompany.org`, and define what data and permissions you share with this account.
Normally, the service account has read and write access to data so it's important to decide what the account should have access to.
1. Log in to Next Matter with an admin account.
2. In **Automations Library** \[left-hand navigation panel], click **Connect** for the integration you want to connect.
3. In the 3rd party pop-up, select the account you'll use for the integration (the service account). You'll be asked to log in to the 3rd party tool using this account.
You can use the same service account to connect all integrations or use separate ones for each. For example, you can use a separate service account for Outlook and Teams.
1. Go to the tenant configuration and decide what permissions you want to grant to the account. **Tip**: Think of the account as a user - anything the account has access to, the user logging in with this account also has access to.
## Integrations with API access
Normally the API key you create shares the same permissions as yourself. That means that whatever you can do as the creator of the key, the key will be able to do at your behest. Some tools let you define the scopes you give to the key, so look up 3rd party docs to find out if the app you want to connect to has this option.
## Scopes requested by Next Matter
Individual scopes can be revoked by admins after connection has been established.
#### Microsoft
| Graph API access to apps | Scopes |
| ---------------------------- | ------------------------------------------------------------------------------- |
| Default (always requested) | offline\_access, openid, profile, email, user.ReadBasic.All |
| OneDrive | files.ReadWrite.All |
| Excel (no-code) | files.ReadWrite.All (the Excel no-code step also requires OneDrive permissions) |
| Sharepoint | sites.ReadWrite.All |
| Teams | channelMessage.Send, chatMessage.Send, chat.ReadWrite |
| Outlook | mail.Send, calendars.ReadWrite |
| Outlook (no-code) | mail.Send |
| Dynamics365 Business Central | financials.ReadWrite.All |
#### Google
| Google app | Scopes |
| ------------------------ | --------------------------------------------------- |
| Google Docs | documents, drive |
| Gmail (no-code) | gmail.send gmail.labels gmail.modify gmail.readonly |
| Google Drive | drive, drive.appdata, drive.metadata |
| Google Sheets | spreadsheets |
| Google Sheets (low-code) | drive, spreadsheets |
| Google Slides | presentations |
#### Zendesk
| App | Scopes |
| ------------------------------ | ------------------------------ |
| Zendesk (no-code) | read, write |
| Next Matter sidebar in Zendesk | token-based so no scopes apply |
#### Freshdesk
| App | Scopes |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Freshdesk (no-code) | token-based so no scopes apply (any API activities are allowed based on the permissions of the key holder) |
| Next Matter sidebar in Freshdesk | token-based so no scopes apply |
#### Front
The Front no-code step uses API tokens so you don't need to define scopes. The same applies to running Next Matter as the sidebar in Front.
#### OpenAI
The OpenAI no-code step uses API tokens so you don't need to define scopes.
#### SendGrid
The scopes are defined by SendGrid's [eSignature REST API authentication](https://developers.docusign.com/platform/auth/reference/scopes/) (parameters: `signature`, `openid`, `cors`).
# Integrate with Teams
Source: https://help.nextmatter.com/docs/send-a-teams-message
Send customized Teams messages directly from a Next Matter workflow to dedicated channels.
## Before you begin
Prepare to connect to Microsoft
As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
## Next Matter and Teams
Integrating Next Matter and Teams allows you to send messages to a dedicated Teams channel directly from a Next Matter workflow. This helps team members stay informed about important events or updates. For example, you can send a structured message into a Microsoft Teams channel, notifying users of a newly submitted workflow instance. The message contains a link allowing users to view the specific workflow instance.
To complete the integration you'll need the following:
1. Whitelist the nextmatter.com domain in MS Teams
2. Create Next Matter as a webhook in Teams (... > Connectors > Incoming webhook)
3. Create a Next Matter Bot in Teams
4. Update the workflow to send a message to a Teams channel.
### Create a Next Matter Bot in your Teams workspace
1. In your Teams, click **...** next to the channel name.
2. Click **Connectors**.
3. Scroll through the list of connectors to **Incoming Webhook**, and click **Configure**.
4. Create Next Matter as a webhook. You can also upload a logo.
5. Click **Create**.
6. Copy the URL.
7. Click **Done**.
### Configure the notification step in your workflow
1. In your Next Matter portal, click **Workflows**, and then click the workflow you want to update.
2. Click **Edit workflow**.
3. Click **+Add step** and select **Integration > Custom integration**.
4. Click **Settings** to configure the step.
5. Enter the following details:
* **Method**: POST
* **URL**: `WEBHOOK_URL_FROM_TEAMS`
* **Headers**: Content-Type: application/json
* In the **Body** enter the values. For example, the body might look like the following.
```json JSON theme={null}
{
"type":"message",
"attachments":[
{
"contentType":"application/vnd.microsoft.card.adaptive",
"contentUrl":null,
"content":{
"$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
"type":"AdaptiveCard",
"version":"1.2",
"body":[
{
"type": "TextBlock",
"id": "383d1a2b-cf19-4fce-7544-e8fdd00b4ad7",
"text": "A new workflow instance with the name {Instance name}
has been submitted by {Instance lead user name}.Text: MESSAGE_TO_SEND",
"wrap": true,
"weight": "Bolder"
},
{
"type": "ActionSet",
"id": "fd477c49-9c5a-58d6-0aa8-435c979f096b",
"actions": [
{
"type": "Action.OpenUrl",
"id": "e0051bb0-8f27-0309-eeac-8f3bac32d7d3",
"title": "View workflow Instance",
"url": "{Instance URL}",
"style": "positive",
"isPrimary": true
}
],
"horizontalAlignment": "Center"
}
]
}
}
]
}
```
6. Save your changes.
# Send a text message
Source: https://help.nextmatter.com/docs/send-a-text-message
You can get user details into the workflow and then trigger sending a text message to the user.
1. In your Next Matter workflow create a new form step.
2. Set the **Trigger configuration** to be manual and create a form field for the user to provide their phone number. The number will be the variable you'll use later on.
3. Create an integration step.
4. To update a ticket, use the following:
* **Method**: POST
* **Headers**: Content-Type: `application/x-www-form-urlencoded`
* **Headers**: Authorization: `TWILIO_API_KEY` If you don't have the key, [read how to generate it.](/docs/integrate-with-twilio)
* **URL**: [https://api.twilio.com/2010-04-01/Accounts/AC623145d1cf983aa235af94b6c08ecb2e/Messages.json](https://api.twilio.com/2010-04-01/Accounts/AC623145d1cf983aa235af94b6c08ecb2e/Messages.json)
* **Body** might look like the following:
```json JSON theme={null}
To=%2BUSER_PHONE_NUMBER&From=Next%20Matter&Body=Hello%20{Instance name}//Note that USER_PHONE_NUMBER is a placeholder
```
5. Save your changes.
# Send data to another workflow
Source: https://help.nextmatter.com/docs/send-data-to-a-step-in-another-process
You might want to send data entered in one workflow to a step in another workflow.
Such data transfers are especially useful when one process triggers a follow-up workflow. Then the data from the first workflow can be used in the follow-up one.
To do this task, make sure you've completed [Start a follow-up workflow](/docs/start-a-follow-up-process).
## Before you begin
In this task, you'll need the ID of the step **you'll be sending the data to** (in the follow-up workflow) and the ID of the form field **to be filled by** the data from the previous step.
Where is the step ID
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
## Send the data
1. Click the first process that should trigger the follow-up workflow.
2. Click **...** and select **Edit workflow**.
3. Click the **Send Data** step that's been automatically added when you selected the **Launch workflow automatically** template. If you need information on selecting this template, see [Start a follow-up workflow](/docs/start-a-follow-up-process).
4. Click the **Settings** cog icon.
5. In the **Headers** section of **Settings**, enter your Api-Key. Note that you need the phrase **Api-Key** to go before the code in the field.
6. Select **Raw** as **Body** type.
7. Edit **Body** as follows: a) Delete the STEP\_ID and ACTION\_ID, and replace them with the numbers you copied from the URLs. b) Delete the ADD\_YOUR\_OWN\_DATA and click . c) Select the type of data to fill in in the follow-up workflow. You need to tell the system what type of data belongs to which field.
**Note:** You need to select **ALL** the fields that have been marked as **Required** in the follow-up workflow. For example, if you decide to fill in the data only in one required field, the whole **Send Data** step will fail.
1. In the left-hand navigation, click the **Workflows** icon.
2. Hover over a process.
3. Click **Edit workflow**.
4. Click a step in the workflow.
5. Click the **Settings** cog icon.
6. Verify whether the **Optional** box has been selected. If not, the field is required.
If you have two required fields in the follow-up workflow, this is what your **Body** might look like:
```json JSON theme={null}
{
"step_id":220135,
"actions":[
{
"action_id":535159,
"input_object":{
"inputValue":"{1. Provide details - Lead Name - Input (plain)}"
}
},
{
"action_id":535736,
"input_object":{
"inputValue":"{1. Provide details - Lead Email - Input (plain)}"
}
}
]
}
```
8. Decide what should happen if the step fails (**On Failure**).
9. Save your changes.
Now, when you start a process instance that will trigger another workflow instance, this follow-up workflow instance will have the data from the first workflow filled in in the appropriate fields.
# Connect to Docusign no-code
Source: https://help.nextmatter.com/docs/send-dicusign-envelopes-no-code
Use templates to create drafts and send envelopes by email using a no-code Docusign step.
## Before you begin
* In your Next Matter portal, go to **Automations library**, click **Connect** in the **Docusign** app tile, and connect with your Docusign credentials.
## Send envelope from template
1. Click **Workflows > + Create new\... > Create a new workflow** and give your workflow a name. If you have a workflow ready, click **... > Edit workflow**.
2. Click **+ Add step** and select **Integrations > Docusign**.
3. Click the step and click **Configure integration**.
4. Select **Create envelope from Template** in **Docusign operation**.
5. Select the account, template and enter the recipients of the document.
6. To fill in the template with specific details, enter the name of the field and the value (what you want to fill the field with).
7. Select the **Status** for the document. You can either select to send the document or keep it as a draft. If you select to send the document, enter the email title and summary so the recipients know what to expect. The document will be added as an attachment.
If you keep the default **None** as **Status**, the document will still be sent out.
8. Select the variables to use in later steps.
9. Save your changes.
# Conditions
Source: https://help.nextmatter.com/docs/set-conditions-to-a-step
A common pattern in processes is that next steps are dependent on the outcome of previous steps or certain fields only show when specific requirements have been fulfilled. We enable this way of branching workflows with conditions.
In Next Matter you can attach conditions to:
* a step
* a form field
A use case for conditions might be candidate recruiting. If you recruit candidates to Design and Engineering teams, you want to send the profiles for review to different people based on what team the candidates are applying for.
So if the condition is as specified below, you can select a different step assignee than when the input contains Design.
Similarly, if your candidates have already provided their portfolio, you don't want to ask them twice and add a condition to a form field.
## Set step conditions
For example, you can only send a candidate a reminder (email step) if they haven't provided a portfolio (the file upload form field in the previous step is empty). If the portfolio has been uploaded, the reminder step is skipped.
1. Click **Workflows**.
2. Click the process you want to update.
3. Click the step you want to update.
4. Click **Add conditions** (under the step name).
5. Choose the step and the form field that your conditional step is dependent on.
6. Click **Save conditions**.
Hover over the step to see the applied conditions.
If you set conditions to a step with mandatory fields, the step still gets skipped if the conditions are not met.
## Set form field conditions
For example, you can send a candidate a follow-up form. If they have already provided a portfolio, the portfolio upload form field in the form will not display to the candidates.
1. Click **Workflows**.
2. Click the process you want to update.
3. Click the step to open it.
4. Click the conditions icon right of the form field name.
5. Specify your conditions.
6. Save your changes.
Hover over the icon to see the applied conditions.
## Editing conditions
When you edit the item the condition uses as the Value, make sure to edit the condition too by selecting the new name in the **Value** dropdown. Otherwise the condition will break.
### Edit several conditions at once (in batches)
Next Matter detects when the same conditions have been set for steps or fields. When you click to edit a condition that has a match, we ask you if you want to apply the change to all conditions in the set or only edit the current one.
**See how it works in practice**
# Out of office
Source: https://help.nextmatter.com/docs/set-out-of-office
As an admin, you can set the out of office for any team member. You can also easily check who on the team is out of office.
Looking for information on how to set out of office for yourself? See [Personal profile](/docs/personal-profile#set-up-out-of-office-notifications) settings.
To set up out-of-office for a team member, do the following:
1. In the left-hand panel, click **Company**.
2. Click **Out of office**.
3. Click **+ Mark as out of office**.
4. Select the team member who's away and set the days when the absence starts and the last out-of-office day.
5. Select the person who should take over the absent team member's tasks.
6. Click **Save**.
### Important considerations
* The Out-of-Office setting doesn't work with [Automated delegation](/docs/automated-delegation). Auto delegation ignores OOO settings intentionally - it assigns work based on past assignments, so respecting OOO would send tasks to the wrong person.
* Delegation **won't work** when the **workflow and the instances are private** or the workflow is public but the **instances are private** - if the stand-in doesn't have access to the workflows and instances, they won't be able to complete the steps. In such cases, the workflow lead or the admin can manually delegate the task to the stand-in.
1. Go to **Workflow overview > Open tasks**.
2. Click **Filters** and filter by **Assignee** to find the current assignee.
3. Select the user from the dropdown to delegate the task to.
* If the **step is restricted**, and the stand-in is not included in the visibility settings, they won't be able to access or see the delegated task. To prevent these situations, it's a good idea to restrict visibility to a team rather than individuals. Then anyone from the team can be a stand-in and complete restricted steps if need be. This way, all the people you add to the team will automatically have access, and those that leave the team - won't.
* Only **new instance steps get delegated**. The existing steps that are already in the assignee's inbox won't be reassigned by the OOO settings.
* You can delegate to all users **irrespective of their roles**. For example, you can delegate to light users.
Out of office settings help reassign tasks of users you want to offboard (because they leave your organization). For details, see [Remove users](/docs/remove-users).
## Disable out of office
You can quickly disable or edit the setting. You can do it on the **Out of office** page.
# Step visibility
Source: https://help.nextmatter.com/docs/set-visibility-for-a-step
You can grant permission to your team to view the step otherwise it will remain hidden from the people involved in the workflow.
You need to give your team and colleagues permission to view a step.
If you don't set the permissions, no one besides you will be able to see the step, and administrators will not have permission to see it either.
If you have a step assigned to you, you become its owner. Your Next Matter inbox will provide an overview of the steps assigned to you or your team. You can also receive email notifications reminding you about open steps.
To set the visibility click on a step and click **Set visibility**.
**Tip**: If you add a restricted step to the workflow overview table, the column content will only be visible to the people with the right permissions. For details, see [Restricted content](/docs/work-with-process-overview#restricted-fields).
**Tip**: To learn more on how step visibility affects Out of office settings, see [Out of office considerations](/docs/set-out-of-office#important-considerations)
# Create and share portals
Source: https://help.nextmatter.com/docs/share-workflows-in-portals
Portals are an easy way to share selected workflows with users
As an admin, you can create customized areas (portals) for users to start workflows and share the portals with whoever needs to have access.
## Create portals
1. **Add users**. You can do it in **Company > Colleagues**.
When added, all portal users can do the following:
* complete tasks assigned to them or their team in the Next Matter inbox
* start workflows they’ve been given access to in portals
The **Onboard a list of light users** Next Matter template will help you quickly add a list of light users and share a portal with them. You can find the template when you add a step and select **Templates > Next Matter templates**.
2. **Create your portal**. Note that you need to be an admin to do it.
1. Go to **Portals**.
2. Click **Create a portal**.
3. Click **Unnamed portal** in the navigation bar to start editing.
4. Give your portal a name and a welcome message. Those will be visible to users. Note that the name must be 40 characters maximum.
5. Click **+ Add workflows**.
6. Select one or many workflows to add to the portal. You can also select private workflows to share.
For the workflow to be shareable, it needs to be published and have at least one step added to it.
7. (Optional) If you need your workflow to be called a specific name that users recognize, click the pencil icon on the workflow tile to edit it. The new name and description will only change in the portal.
8. Click **Share** in the top-right corner.
9. Select the users (colleagues and light users) or teams to add to the portal. No need to add admins - they already have access to all portals.
10. Click **Save**. **Tip**: You can also click **Copy link** and share the link to the portal directly with the users.
When the user logs in with their credentials, they'll see the portal and be able to start the workflow.
**Tip**: If you need to remove a user or team, click **Share** and deselect the user or team. When you save they will no longer have access to the portal.
When the user logs in with their credentials, they'll see the portal and be able to start the workflow.
You can open your portal directly from the Front or Zendesk sidebar! For details on sidebars, see [Sidebars](/docs/get-started-manager#advocate-sidebars)
## Test portals before launch
As an admin, you can switch to the light user view and check that everything works before sharing the portal with your users.
Go to your user profile \[bottom-left corner] and click **Light user view**.
## Track your portal requests
If you only have access to Inbox and Portals and want to track your open requests and see their status, you can do it by clicking the **My requests** tab in the Portals left-hand navigation.
The read-only list will display all your requests showing the ongoing ones first and completed later. You can also sort the requests (workflow instances) by start and update times.
If you are a regular user of the entire Next Matter portal, you can click on each request and see the details of each instance.
If you decide the request is no longer needed, you can also stop or delete it.
# Show completion message
Source: https://help.nextmatter.com/docs/show-completion-message
Celebrate user achievements by showing a completion message when they are done with a step
It's a good idea to let users know where they're at with the step they've been assigned, and appreciate they've completed a step they were assigned.
You can do it by adding a custom completion message to a step. This way, you decide what message step assignees will see upon step completion and (optionally) where they should go next.
# Dropdowns, radios and checklists
Source: https://help.nextmatter.com/docs/single-and-multi-select-dropdowns
You can allow users to select an option from a dropdown list or select a radio button.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
The following options allow users to select an option in a form:
* Single-value dropdown: allows users to select one value from a list of many. You can use data references as options.\
You can also create a dropdown from datasets. [Learn more...](/docs/data-sets)
* Multiple-value dropdown: allows users to select multiple values from a drop-down. You can use data references as options.
* Radio buttons: allow for selecting one value. You can use them in questionnaires or set conditions on the follow-up form fields to show based on the radio selection.
* Checklist: allows users to select multiple values from the list and check off tasks.
## Dynamic dropdowns
Dropdowns (single and multiple-value) can be filled in automatically from Google Sheets or an external database (such as PostgreSQL). Select **Add items dynamically from external source** as **Source** when you create a dropdown. This option enables the dropdown to be automatically adjusted when the source changes.
### JSON format for dynamic dropdowns
The source of a dynamic drop-down needs to be a JSON list.
A JSON list (array) contains zero, one, or more ordered elements, separated by a comma. The JSON array is surrounded by square brackets \[ ]. Each element is in double quotes.
Note that when you have a **key=value** pair (`["name": "John"]`), we'll only display the value in the dropdown. For **dynamic dropdowns**, this looks like the following: `[["key1", "value1"],["key2", "value2"]]`.
When you create a dropdown from, for example, Google Sheets, using a data reference, make sure to select the data reference in (JSON) format.
### Lists for dynamic dropdowns
When you want to create a dynamic dropdown from a JSON list, and you're creating a variable to refer to this list that you later use as a source of the dynamic dropdown, make sure you use `[*]` in the variable value. For example, `$.mylist[*]`. This will ensure the list is parsed correctly.
To make the response of the [**Excel No Code step**](/docs/connect-to-microsoft-excel-no-code) compatible as input for the dynamic dropdown, enter this value in the Variable **value** in the No-code step and use the data reference as the dropdown source:
`$.["Range Values"][*].values[0]`
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a dropdown using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Non-blocking steps
Source: https://help.nextmatter.com/docs/speed-processes-up-with-non-blocking-steps
If you want a process to run faster, you can decide to make a step non-blocking. Then, the workflow will continue before this step finishes.
Making the step non-blocking is useful when you know completion will take time because, for example, it asks the customer to collect some data. In such cases, it's worth pushing the workflow forward and allowing the step to be completed in due time (especially if the next step doesn't depend on the non-blocking step).
For example, if step 2 is non-blocking, then once step 1 is completed, both step 2 and step 3 are active.
By default, steps are blocking. Non-blocking steps are not optional.
Non-blocking steps are always used in the **Complete step** integration step if the data from this step is used to complete the following step. This is because you need the following step to be active.
A blocking step can be skipped. However, only process leads can skip steps.
To set a step to non-blocking:
1. Click the step to open it.
2. Click **...** on the right-hand side of the step's name.
3. Click **Make non-blocking**.
## Step types and non-blocking option
If you add the non-blocking option:
* to a normal step -> the next step will activate without waiting for the step to complete
* to a parallel step -> the next step after the parallel step will activate without waiting for the parallel step to complete
* to a step inside a parallel step -> this will not have any effect because all steps in a parallel step activate at the same time
* to a group step -> the step after the group step will activate immediately. The steps inside the group step will remain sequential
* to a group step that's nested inside a parallel step -> the step after the group step will activate immediately. The steps inside the group step will remain sequential
# Follow-up workflows
Source: https://help.nextmatter.com/docs/start-a-follow-up-process
When you need one workflow to automatically start another one, you can set a trigger on the first workflow to initiate the next one.
## Before you begin
* Create the first and the follow-up workflow. The first workflow will trigger the next workflow.
* Have your **API key** at hand. If you don't have it, contact your organization admin, or, if you're an admin, generate the key in Next Matter by going to **Company > Next Matter API keys**.
* Note down the ID of the workflow that will be triggered with the first workflow. You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
## Workflow overview
1. Add a template to your first workflow.
2. Edit the template settings for the trigger to work.
3. Start the workflow instance.
### 1. Add a template to your first workflow
1. In your left-hand navigation, click the **Workflow** icon.
2. Hover over the first workflow and click on the menu icon.
3. Click **Edit workflow**.
1. Hover over the last step in your first workflow and click the plus icon.
2. Click **Templates > Next Matter templates > Launch workflow automatically**. This template will add extra steps to your workflow.
3. Click the **Launch** step.
4. Click the **Settings** cog icon. Now, edit the template settings to automatically trigger the follow-up step.
### 2. Edit the template settings for the trigger to work
1. In the **Headers** section of **Settings**, enter your Api-Key. Note that you need the phrase Api-Key to go before the code in the field.
2. Select **Raw** as **Body type**.
3. In the **Body** section, enter the workflow number.
To do that, delete `WORKFLOW_ID` and replace it with the real ID of the follow-up workflow that you have copied from the URL in your browser. This is an example of what your **Body** might look like:
```json JSON theme={null}
{
"process": "https://core.nextmatter.com/api/processes/15723/"
}
```
4. Decide what should happen if the step fails (**On Failure**).
5. Save your changes.
Remember to delete the step with instructions that's added to the template. If you don't want to send data from the first to the follow-up instance, delete the **Send data** step as well. If you need to send data, see [Send data to another workflow](/docs/send-data-to-a-step-in-another-process).
### 3. Start the workflow instance
1. In the left-hand navigation, click **Workflows**.
2. Click the first workflow.
3. Click the play icon.
4. Give the workflow instance a meaningful name.
5. Click **Start instance**.
When the first workflow instance has completed, it will automatically trigger the follow-up process instance. To verify that the follow-up workflow instance completed, click the follow-up workflow. Next, click the **Completed Instances**. Your follow-up workflow should show as **Completed**.
# Step types
Source: https://help.nextmatter.com/docs/steps
Each of your workflows consists of multiple steps that are run in a set order. Each step defines a clear activity that needs to be completed by a team or individual in your organization.
To add a step in the workflow, click **+Add step**. Next, select your step type from the drop-down.
## Best practices for steps
When creating steps, consider the following questions:
* Are tasks completed by the same person?
* Is the person familiar with Next Matter?
* Are the tasks to be completed around the same time?
## Step types
Your step can be one of the following types:
**Form step** A basic step that consists of one or multiple form fields. Useful when a clear task needs to be done within the process. For example, *Submit customer claim details*.
**Decision step** (**Tip**: Now use the [**Routing button form field**](/docs/about-actions-and-action-types#form-types) instead) A step that allows you to review information passed in the previous steps. You can approve the information and proceed to the next step or return to any previous step. For example, *Approve customer claim*.
**Grouped step** Use grouped steps to create a set of sub-steps that belong together. This way, if you want to set conditions to steps, you'll be able to create conditions on multiple steps at once. You can create steps in a group or drag and drop any step into a group.
**Parallel step** This allows you to work on several steps in parallel. Useful when multiple teams can work in parallel or if there is no dependence between your steps. For example, *Process customer claim* can consist of *Submit data to claims platform* and *Notify customer*.
In the following example steps 2.1 to 2.4 will be run in parallel.
You can create parallel sub-steps by hovering over a step and clicking the plus icon or dragging and dropping any other step into the parallel group.
You can nest group steps inside parallel steps. This can help you create mini sub-workflows while still maintaining a clear and transparent structure. We support 2-level nesting (1.0 > 1.1 > 1.1.1).
**Email step**
When you want to send an email as part of the workflow, you can use this step to quickly create and configure the contents of the email. No coding is required to create the email and add attachments. The email will be sent from the Next Matter email account. For details, see [Create a no-code email](/docs/create-a-no-code-email).
**Custom integrations** This step enables you to make HTTP requests to any URL or API. This way you can integrate with other platforms such as Zendesk, Freshdesk, Jira, and Google Drive. For integration details, see [About integrations](/docs/about-integrations).
**Step templates**
Step templates are pre-defined combinations of steps, that enable you to build business scenarios faster. For details on using templates, see [Work with templates](/docs/work-with-templates)
Need a specific template? Let our Customer Success team know.
**External user step**
This is not a step type because you can decide for any step to be assigned to an external user such as your customer, partner, or supplier. For details, see [Assign a step to external user](/docs/assign-a-step-to-external-user)
### Group steps
Collect steps in a group if they are triggered by **the same condition**, they are **interdependent**, or the **start date for these steps is the same**. This way you can set the start date or create the condition on the parent step and build child steps underneath.
### Single steps with multiple tasks
Sometimes you have multiple tasks that should be completed by the same person or team. In such cases build these tasks as tasks within the same step. This way users don't get overwhelmed by multiple tasks and can complete everything faster. This is especially important when you build steps for external users who are not Next Matter experts.
### Steps that need to be assigned to multiple users
If you need several users to collaborate on a step (for example, review its contents), you can do one of the following:
* Duplicate the step and assign it to the respective team member and group the steps as parallel steps. This way users will be able to start and review the step at the same time.
* Assign the step to a team instead of a specific person. This enables each team member to review the step contents and add comments as a [Conversation](/docs/learn-next-matter-as-process-participant#conversations) tagging other users and re-assigning the step to the next user as soon as they are done. The users should Save the step as long as it's being reviewed and the last person to review completes the step. Note that each user in this scenario needs to have the [Team lead](/docs/team-permissions) role as only those can re-assign the steps assigned to a team.
# Get data from tables
Source: https://help.nextmatter.com/docs/tables
Work with table data identifying lowest and highest numbers or unique values.
## Find minimum and maximum value in a column
This quick action helps you identify extremes in a column in a numerical table.
1. In your workflow, go to **+ Add step > Integrations > Quick action**.
2. Select the **Find min/max in column** operation.
3. Enter table data or use \{} to refer to a table already used in the workflow. Note that the table data needs to have a 2D array structure.
4. Select the column to analyze - enter 0 for the first column, 1 for column number 2, or 2 for column number 3 (and so on...).
## Find unique values
This quick action helps you list unique values from a column. If the same value has been used 5 times (over 5 rows in a column), it will be listed only once in the output.
1. In your workflow, go to **+ Add step > Integrations > Quick action**.
2. Select the **Find unique values in columns** operation.
3. Enter table data or use \{} to refer to a table already used in the workflow. Note that the table data needs to have a 2D array structure.
4. Select the column to analyze - enter 0 for the first column, 1 for column number 2, or 2 for column number 3 (and so on...).
## 2D array structure
If you manually enter the table, make sure it has the following data structure:
```
[["Row1-Column1-Value","Row1-Column2-Value"],["Row2-Column1-Value","Row2-Column2-Value"]]
```
Following the pattern, the header row with four columns will look like the following:
# Tables
Source: https://help.nextmatter.com/docs/tables-forms
Tables are a good way to show data sets. Tables can have a predefined or a dynamic source and change as the source changes.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
## Dynamic tables
Dynamic tables have an external data source (in CSV or JSON) and can change as the source changes.
To create a dynamic table:
1. Select the **Table** form field.
2. Click to configure the table and select **Dynamically create table from external data source**. You can either use a data reference to link to the source and make the content dynamic or manually enter the table content.
Input format for manually-entered data
```json JSON theme={null}
[["Company", "Order", "Shop nr"], /*if header is selected, these are the header values*/
["5", "1104", "400"], /*these are the values in one row; each value gets a separate column*/
["6", "1104", "400"],
["7", "1104", "400", ""]/*if there is no value, leave the double quotes empty*/
]
```
1. Click the value in the table.
2. Update the value and hit Enter.
## Predefined tables with validation
You can predefine tables for users or add input validation based on the content type you select for each column.
1. Select the **Table** form field.
2. When you configure the table the table, select **Predefine table**.
3. In the Headers section add the names of header columns and (optionally) select the type of input for each column. For example, if you choose **Text** as the **Allowed content type**, users won't be able to add any numbers when editing the column in a running workflow instance.
If you add a file as an external source of data for the table and the data in the file won't match the selected **Allowed content type**, this data will be ignored and will not show in the table. Additionally, make sure sure the number of columns you name corresponds with the number of columns in the source. If there are extra columns in the source, they will be ignored.
1. (Optional) To validate user input against a regular expression, enter the Regex pattern. If what the user provides doesn't match the pattern, an error will be displayed.
2. (Optional) If user input is required for a specific column, flip the toggle on to make the column mandatory. This way, the user won't be able to complete the step without entering the content in the table cell.
3. (Optional) Select or enter the data source. If you want the table to be empty, leave the field blank. However, make sure to select **Users can add and remove rows** in the **Table layout and content** so that users can add rows to the empty table. If you want to enter the content manually, follow the structure below. Note that you define headers separately in the **Column headers and validation** section.
```json JSON theme={null}
[
["5", "1104", "400"], /*these are the values in one row; each value gets a separate column*/
["6", "1104", "400"],
["7", "1104", "400", ""]/*if there is no value, leave the double quotes empty*/
]
```
You can use the JSON format to prefill dates.
Note that you need to use the valid ISO 8601 date and wrap it in quotes `""`, for example:
* "2025-12-01"
* "2025-12-01T00:00:00"
* "2025-12-01 00:00:00"
* "2025-12-01T00:00:00Z"
* "2025-12-01T00:00:00.000000"
## Using one table as data source for another
You can use one table as a source data reference for another table. This is especially helpful when a table filled out in one step needs to be reviewed or reused in another.
* **Supported scenario**: The source and target tables must be of the same type. For example, a filled-in dynamic table can serve as a data source for another dynamic table.
* **Unsupported scenario**: If the table types differ, the data will not display correctly. For instance, a predefined table cannot be a source for a dynamic table, and vice versa. This limitation exists because the headers are defined differently for each table type.
## Read-only tables
You can make dynamic and predefined tables read-only by enabling the **Make table read-only** toggle. This option is useful in steps when users need to review or approve table data without editing it.
Note that when tables are read-only, users can't add rows or edit table cells so make sure the table that displays already contains data and is not empty.
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a form using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Company dashboard
Source: https://help.nextmatter.com/docs/team-dashboard
The dashboard is what the users in your organization will first see when they log in to Next Matter.
As an admin, you can update the dashboard to represent the company's brand. You can quickly add the company logo and a background image and update the company motto. When you have created your teams, make sure the dashboard is complete to welcome everyone on board.
To update the dashboard, go to **Company > Settings**.
# Team permissions
Source: https://help.nextmatter.com/docs/team-permissions
Refer to the permission breakdown to see who can handle specific workflow and instance-related tasks in your organization.
Make sure to know who to reach out to if you're stuck and want, for instance, to delegate a step.
You can update team permissions by going to [Company > Teams](https://app.nextmatter.com/app/workspace/teams).
You can use the conversations widget available in each instance to reach out to a lead or team member. See [Learn Next Matter as workflow participant](/docs/learn-next-matter-as-process-participant)
| Task | Admin | Workflow lead | Instance lead (the user starting the instance) | Team lead | Colleague (a team member assigned to a step) | Light user |
| :---------------------------------------------------: | :-----------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | :-------------------------------------------------------------------: | :-------------------------------------------------: | :---------------------------------------: |
| View and start a private instance | ✅ | ✅ | ✅ | | ✅ | ✅ |
| Edit and delete a private instance | ✅ | ✅ | ✅ | | | |
| Skip or delegate a step | ✅ (they can delegate steps assigned to a team or a specific person) | ✅ (delegation only possible if the lead is an admin, or a team lead and the step is assigned to their team) | | ✅ (delegation is possible only if the step is assigned to their team) | | |
| Delete private instance | ✅ | ✅ | ✅ | | | |
| View private workflows | ✅ | ✅ | ✅ | | ✅ (if folder and process visibility allow it) | |
| Stop single instances | ✅ | ✅ | ✅ | ✅ ( only if it's an instance they created) | ✅ (only if it's an instance they created) | ✅ (only if it's an instance they created) |
| Stop instances from the **Workflows > Overview** page | ✅ | (not supported unless you're an admin workflow lead) | ✅ | | | |
| View details of a completed integration step | ✅ | ✅ (when the step fails and they reclaim it from the tech lead) | ✅ | | ✅ (when they are also instance leads or tech leads) | |
| Update workflows | ✅ | ✅ | | | | |
| Duplicate workflows | ✅ | \*only possible if they own the folder they're duplicating into | | | | |
| Create instances from private workflows | ✅ | ✅ | ✅ | | ✅ | |
| Change and delete a private workflow | ✅ | ✅ | | | | |
| Change workflow leads | ✅ | | | | | |
| Connect and disconnect an integration | ✅ | | | | | |
| Invite colleagues to Next Matter | ✅ | | | | | |
| Create private and public folders and remove them | ✅ | ✅ | ✅ | | ✅ | |
| Move workflows between folders | ✅ | ✅ | ✅ | | ✅ | |
| Move/duplicate workflows to private folders | ✅ | \*only possible for folder owners | | | | |
| Create teams and add and remove team members | ✅ | | | ✅ | ✅ (add team members to teams they lead) | |
| Assign or remove the team lead status | ✅ | | | | | |
| View portals | ✅ | | | | | ✅ |
| Create/edit portals | ✅ | | | | | |
| Test portals as a light user (Light user view) | ✅ | | | | | |
| Start workflow from a portal | ✅ | ✅ (if added to portal) | ✅ (if added to portal) | ✅ (if added to portal) | ✅ (if added to portal) | ✅ (if added to portal) |
As an admin, you can set roles for any user, including yourself. Note that if you demote yourself to a colleague, you cannot promote yourself back to the admin level again.
If the workflow lead changes after an instance has been created, the new lead doesn't have permissions to stop or delete this instance.
# Input fields: text, date, email, address, instruction, URL, number
Source: https://help.nextmatter.com/docs/text-fields
Input fields can be customized and prefilled for users to make form completion quick and effortless.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
This form field can be useful when asking users to provide a name or a short summary of a problem for a bug report. You can add validation, user tooltips, and prefill the field for the user.
This form field can be useful when you want users to provide a description. You can configure the field name and placeholder, and create a tooltip for users, which shows when they hover over the info icon next to the field name. The tooltip provides additional help and can define what type of input is expected.
This form field doesn't require any user input but allows for adding workflow or step-related instructions. You can use this step to add data references and pull information from other steps to this step or send it on to external tools. You can also attach files or images to your instructions.
This form field allows users to select a date from a calendar. The date has this format: Tue, Nov 19, 2024. **Tip**: If you need the date to be in a different format, add an instruction field, select the date input as data reference, and use the cog wheel next to the reference to change the date format.
This form field asks users to provide an email address. You can decide on the maximum and minimum number of characters that users can provide. We are checking if the email format is correct.
This form field asks users to provide their address: city, street, and zip code. You can also define a tooltip for this field, which offers additional help for the users. The tooltip shows when users hover over the info icon next to the field name.
This form field asks users to provide a URL. You can prefill this field for the users.
This form field allows for numerical input. From a builder's perspective, the field enables you to define what numbers are expected and configure the type of thousands separator, the maximum number of decimal places allowed, and the range (min/max) for the input.
You can later reference the number as a plain number or with all the configured formatting.
When you use data references that refer to the value from the number field, you have two options available:
* Plain reference: Always returns the raw number with a . as the decimal separator — it ignores formatting settings like thousands separator or custom decimal symbols.
* Formatted reference: Applies all the number formatting you've configured, for example, the thousands separator
If you haven't applied any formatting to your number, both references will be the same.
If you set up a thousand separator for your numbers, it gets added automatically as users type.
**Prefilling**
Note that prefilling only supports plain values without a thousands separator and "."(point) as a decimal indicator.
Prefilled numbers are always formatted according to the formatting settings defined in the field configuration.
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
## Complete a form using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Track your instances/requests
Source: https://help.nextmatter.com/docs/track-your-instancesrequests
If you opened a request in the portal or used a public form to start a workflow, you can easily track the status of these requests.
## I opened my request by following a link
When you fill in a form, we normally send you a link to follow the progress of your request. Open the link to track the details.
If you're an admin and want to know how to enable instance tracking, see [User-triggered workflows](/docs/let-an-external-user-start-a-process#enable-instance-tracking).
## I opened a request in the company portal
If you only have access to Inbox and Portals and want to track your open requests and see their status, you can do it by clicking the **My requests** tab in the **Portals** left-hand navigation.
The read-only list will display all your requests showing the ongoing ones first and completed later. You can also sort the requests (workflow instances) by start and update times.
If you decide the request is no longer needed, you can also stop or delete it.
## I opened my request in the company portal
(and I have access to the entire Next Matter app)
If you are a regular user of the entire Next Matter app, you can track your requests in **My requests** tab in the **Portals** left-hand navigation. Click each request in the **My requests** list to open the workflow details page.
If you decide the request is no longer needed, you can also stop or delete it.
# Sub-workflow triggering
Source: https://help.nextmatter.com/docs/trigger-a-sub-process
If you're onboarding a new customer and part of the workflow is to get some legal paperwork ready. Instead of doing that as part of the entire customer onboarding process flow you can trigger a sub-workflow.
## Before you begin
* In Next Matter, go to **Workflows**, and create the first workflow. You will embed the sub-workflow into this workflow.
* Have your **API key** at hand. If you don't have it, contact your organization admin, or, if you're an admin, generate the key in Next Matter by going to **Company > Next Matter API keys**.
* Note down the ID of the workflow that will be triggered with the first workflow. You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
## Create and embed the sub-workflow
1. In Next Matter, go to **Workflows**.
2. Click **Create workflow** and create the workflow that will become the sub-workflow.
3. Note down the ID of the workflow. You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
4. Open the main workflow you created.
5. In the place where the sub-workflow should be started add an **Integration > Custom integration** step.
6. Click **Settings** and enter the following data:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/`
* **Headers**: Content-type: `application/json`
* **Headers**: Authorization: `Your_NextMatter_API_Key`
* **Body**:
```Text JSON theme={null}
{
"process": "https://core.nextmatter.com/api/processes/MAIN_WORKFLOW_ID/",
"name": "{Instance ID}- Sub-workflow"
}
```
7. Save your changes.
# Troubleshooting workflows
Source: https://help.nextmatter.com/docs/troubleshooting-processes
Refer to this page if you've run into issues creating or starting a workflow.
Check custom integration steps and verify that the phrase Api-Key is present in the Header.
1. In the left-hand navigation, click **Workflows**.
2. Click the workflow containing the integration step.
3. Click **Settings** to edit the step.
4. Make sure your API key is proceeded by the **Api-Key** phrase.
Alternatively, a 401 error might mean that the account connected to an integration step got deactivated or deleted. It might also show if the same account was connected in another environment and then disconnected.
This might happen when you don't select Google Slides in the **Authorization** field in the integration step's settings.
This happens if you have selected to skip a failed step. You can configure this in the step's settings in the **On Failure** section. Probably the step failed and it was skipped.
To quickly see what the issue with the step might be, expand the skipped step and right-click to inspect. Next, delete the overlay ``.
This might happen when you edit the **Body** in an external JSON editor and then copy it over to Next Matter. Data references need to be selected directly in Next Matter (by clicking the braces and selecting the value from the dropdown).
It might be because there are brackets or braces to the variable name. Make sure the name doesn't contain any brackets or braces.
If you're getting this error when clicking **Test integration** in the **Complete step automatically** template, it's because the auto-complete step relies on the instance ID of the running instance. Clicking **Test integration** in the editor with no running instance will always produce this error even if all placeholders are correct.
If this happens, try refreshing the screen.
Your integration test might fail with a Bad gateway or Not authorized error. In such cases, you can take over a step, re-configure it, and retry.
You can take over a step if you're a workflow owner or a workflow tech lead.
It might be because you've edited the value that's used in the condition, and you haven't updated the condition itself.
# Integrate with OneDrive
Source: https://help.nextmatter.com/docs/upload-to-onedrive
Upload files to Drive and create new folders straight from the Next Matter workflow.
## Before you begin
As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
* Get your OneDrive drive ID. You'll need it in the step configuration. To get the ID:
1. Sign in to [https://developer.microsoft.com/graph/graph-explorer](https://developer.microsoft.com/graph/graph-explorer).
2. Select GET as the method, and provide the following URL: `GET https://graph.microsoft.com/v1.0/users/{user-id}/drives`
```yaml Yaml theme={null}
GET /groups/{groupId}/drives //To fetch the drives within a group
GET /sites/{siteId}/drives //To fetch drives for a particular site
GET /me/drives //To list the current user's drive
```
For information on how to find site ID, see [Create a list in Sharepoint](create-a-list-in-sharepoint).
3. View the JSON response for the value of the **id** parameter.
* It might also happen that a placeholder can be replaced by a data reference of the data provided in one of the previous steps. That's why it's a good idea to learn more about [Data references](/docs/use-data-references).
## Upload a file to OneDrive
1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Select Microsoft OneDrive in **Authorization**.
4. Enter the following details:
* **Method**: PUT
* **URL**: `https://graph.microsoft.com/v1.0/drives/DRIVE_ID/items/PARENT_ID:/FILE_NAME:/content`
The `PARENT_ID` is the name of the parent (folder) directory that the file will be inserted to.
* **Body type**: Binary
* In the **Body** enter the data reference to the file you want to upload.
5. Save your changes.
## Create a new folder in OneDrive
1. In your Next Matter, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Select Microsoft OneDrive in **Authorization**.
4. Enter the following details:
* **Method**: PUT
* **URL**: `https://graph.microsoft.com/v1.0/drives/DRIVE_ID/items/PARENT_FOLDER_ID/children` You can find the info on how to find the DRIVE\_ID in the **Before you begin** section. The PARENT\_FOLDER\_ID is the name of the parent folder. It might also be `root`.
* **Headers**: Content-Type: application/json
* In the **Body** enter the name of the folder to create. For example:
```json JSON theme={null}
{
"name": "FOLDER_NAME",//replace the placeholder with the name of your folder
"folder": {}
}
```
5. Add a folder ID variable with the value of `$.id`.
6. Save your changes.
## Copy a file from one folder to the next
1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Select Microsoft OneDrive in **Authorization**.
4. Enter the following details:
* **Method**: POST
* **URL**: `https://graph.microsoft.com/v1.0/me/drive/items/SOURCE_FOLDER_NAME/FILE_NAME:/copy`
* **Headers**: Content-Type: application/json
* In the **Body** enter the name of the folder to create. For example:
```json JSON theme={null}
{
"parentReference": {
"path": "drive/root:/DESTINATION_FOLDER_ID"/ you can find the ID by using Search File or Folder in Microsoft
},
"name": "NEW_FILE_NAME"//enter a new name for the copied file
}
```
5. Save your changes.
# Use cases: forms, actions
Source: https://help.nextmatter.com/docs/use-cases-actions
See how you can use workflows and workflow solutions to respond to specific business scenarios.
Design Workflows
Builder Toolbox
To validate if a date is in the future, use the [compare quick action](/docs/calculations#comparing-formulas) in Next Matter.
To compare the dates, you need to format them into UNIX timestamps. To do that, select the cog wheel next to the date and enter %s in the **Custom format** field.
If you want to skip data references and enter a date yourself, use [this converter](https://www.epochconverter.com/) (external page) to create a UNIX timestamp that you'll enter into the **Formula** field in Next Matter. For example, comparing this date `01/07/2024` will look like this after the date has been converted:
Assuming the instance start time is in November 2024, we're getting the correct `False` step result.
Some customers must delete customer or other sensitive data after a set amount of time (for example 30 days). You can easily meet this compliance expectation by adding a non-blocking step at the workflow's start and having it start 30 days after the instance starting time.
This solution will automatically delete the instance together with all the media or files it might contain at the set time.
The instance will be deleted at the set time even if the instance hasn't been completed.
To build a reimbursement form, when users input several entries you can use either:
* A table
* Short text forms with conditions
**Use a table**
1. In your workflow, add **Form** as a step and add **Table** as a new form field.
2. Configure the table headers to display the information for the reimbursement. The data can either come from an external source or be a 2D array.
3. Select the option that enables users to add rows.
4. Add the **Image upload** form field if you want users to upload images.
Your table will look like the following and the users will be able to add rows and fill in the content.
**Use conditional fields**
1. In your workflow, add **Form** as a new step and add several **Short text** fields. You can configure the fields to require reimbursement details.
2. For the field where the sum is provided, make sure to add the **Allow only numbers** validation and allow decimals.
3. Add the **Image upload** field so that users can upload their invoice pics.
4. Add the single choice dropdown field to ask users if they want to add more invoices.
5. Duplicate the reimbursement form fields and create conditions on each of the fields to only show if the user selects to add more invoices.
Normally the file upload form field allows you to upload a maximum of 50 files (and 50 MB per file). If you require to upload more, you can create multiple upload fields and show them based on conditions. Watch the video for details.
# Data references
Source: https://help.nextmatter.com/docs/use-data-references
If you want a step to be based on the data entered in the previous step, set a dynamic data reference. Then the data you need will be automatically extracted and inserted where you need it. The data can also be sent to databases or systems within your organization.
## About data references
Data reference is a dynamic placeholder in your workflow. When a step in the workflow is activated, the data reference will come from the information given in a previous step and be provided as a value.
For example, if someone enters their name in step one, step two might use a data reference in an email where the name that was provided in step one is used.
## Watch a video tutorial
## Add a reference to the form field
You can add references to form fields that are radio buttons, instructions, or drop-downs.
To do that:
1. On the form screen, click the settings icon.
![Image of the email step with the settingas icon highlighted]()
2. Click the braces icon.
![Image of the email form field with the braces to select data references highlighted]()
3. Select the reference you want to add from the dropdown. The dropdown is organized so that you can see which data can be extracted from which step.
4. Click **Save changes**.
When you use data references to transfer images or files(for example from one form to another), make sure you're using the **same form fields**. For example, if you uploaded an image with an image upload form field, and you want to populate a form with a data reference of this image, make sure you're populating an image upload form field, too. Trying to populate a file upload form field with an image data reference might cause errors on step completion. Likewise, using a file form field data reference to fill in an image form field won't work.
## Use data references in complex scenarios
You might use data references when you integrate with external tools and want to send data to the tool and extract the information back later, or [send data from one process to another](/docs/send-data-to-a-step-in-another-process).
You can also define your own data references based on response values (for example a sum of a calculation) available in an external tool.
## Referencing long text inputs
When referencing long text inputs in integration steps, use the JSON-formatted reference rather than the plain-formatted reference. This ensures that special characters such as linebreaks and quotes are encoded correctly.
## Find IDs to reference form fields or steps
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
You can get the ID by clicking the workflow and copying the number from the URL in your browser.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
# Create workflow tags
Source: https://help.nextmatter.com/docs/use-tags-for-better-filtering
You can create and tag instances and workflows to filter and find them easier.
## Why use tags in workflows
Tagging helps organize, categorize, or label content for easier findability, filtering, and analysis. You can use tags to achieve the following:
* Improved search and filtering: Tags make it easier to find relevant workflows quickly by associating items with specific keywords.
* Better organization: Tags help group-related workflows
* Context and clarity: Tags provide additional context, which can clarify workflow purpose
* Analytics: Tags can help track popular workflows
## Tags in Next Matter
You can define tags for a workflow and then select an appropriate tag for each instance. This might come in handy if you are running, for example, a hiring workflow and want to label the candidates as Rejected or Accepted.
In such a case, you can simply edit your instance and select the correct tag.
![Image of tags selector for the Next Matter instance]()
Note that you can add or edit tags if one of the following is true:
* auto-naming is disabled
* deadlines are enabled
* priority is enabled
## Create tags
1. Select a workflow to edit.
2. Add the tags in **Available tags**. Tags have a limit of 100 characters to maintain readability.
![Image of the tags selector with the option to add tags]()
Now you'll be able to select the right tag for each workflow instance.
You can filter your workflow instances by one or multiple tags. Go to the workflow **Overview**, click **Filters**. and expand the **Tags** dropdown to select the tags to search by.
The tag filter can be used to search through **active or completed instances** and is also available in your task list in the **Inbox**.
## Create tags with API
You can also create and add tags to instances when you [create instances with API](/reference/instances_create).
To add tags to an already active instance, use [this endpoint](/reference/instances_update).
# Use Twilio verification system
Source: https://help.nextmatter.com/docs/use-twilio-verification-system
Connect Next Matter and Twilio to use the One-Time-Password SMS Verification.
In this task, you'll need to complete the following tasks:
1. Activate Twilio Verify Service.
2. Configure the Next Matter integration (the main workflow and the sub-workflow).
## Before you begin
* Have your Twilio API key at hand. If you don't have it, [read how to generate it](/docs/integrate-with-twilio).
* Make sure you know where to find step ID, form field ID, and process ID in Next Matter.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up workflow and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Copy the step ID. It's the last number in the URL you see in your browser.
1. In your left-hand navigation, click the **Workflows** icon.
2. Hover over the follow-up process and click on the menu icon.
3. Click **Edit workflow**.
4. Click the step to which you'd like to send data.
5. Click the ID icon for the field to which you want to copy data.
6. Copy **Form field ID**.
You can get the ID by clicking the follow-up workflow and copying the number from the URL in your browser.
* Make sure you know how to use data references. See [Data references](/docs/use-data-references).
**Good to know:** Check out our ready-made templates available when you add a step and select **Templates > 3rd party templates**. You can use the templates to create a set of pre-configured steps. Need a specific template? Click the **Contact us** button in the top right of the page and let us know.
## Activate Twilio Verify Service
1. Sign in to Twilio as an administrator.
2. Go to **Explore Products**.
3. In **All products**, scroll to the **Account security** section.
4. Click **Verify.**
5. Go to **Verify > Services**.
6. In the list of existing services, click the **+** icon. This will create a new service.
7. Give the service a name and copy the SID. You will need it in the Next Matter process.
## Configure the Next Matter integration
The OTP SMS Verification requires two workflows. One is the main process that you want to integrate with Twilio, and the other is a helper workflow that does the verification. The main process triggers the verification workflow.
The verification workflow can be used by more than one workflow. There is no need to create a separate verification workflow each time you create a new workflow.
To configure the integration, you'll need to do the following:
1. Create the verification workflow (if not previously created).
2. Set up the verification workflow.
3. Add the verification process trigger in the main workflow.
4. Set up the verification trigger steps.
### Create the verification sub-process
1. Open your workflow and add a new form step right with the data you want to collect. For example, click **+ Add Form field** and select **Short Text -Input** if you want to collect the user's surname.
2. To send the email to the user with the step to collect the data, you can create a custom integration step that will use Sendgrid integration. [See how to configure Sendgrid](/docs/integrate-with-sendgrid).
3. Configure the Sendgrid email step with the following data:
* **Method**: POST
* **URL**: `https://api.sendgrid.com/v3/mail/send`
* **Headers:** Content-Type: application/json
* **Headers:** Authorization: `Bearer SENDGRID_ENCODED_API_KEY`
* **Body** might look like the following:
```json JSON theme={null}
{
"from": {
"email": "service@[company-domain].com",
"name": "Next Matter Notifications"
},
"personalizations": [{
"to": [{
"email": "{81. Provide details - Customer email - Input (plain)} "
}],
"dynamic_template_data": {
"email-subject": "Your sandbox credentials are ready!",
"email-content": "Hi {81. Provide details - Customer name - Input (plain)},
Setup for your sandbox has been completed and your credentials are ready.
Please provide your input here
with this secure form
of where you want to get the following notifications and the SMS two-factor authentication."
}
}],
"template_id": "d-1aa0b4cd59214c18924a28c96ed78f7f"
}
```
4. Create a step that's an **instruction** assigned to the external user. The user will see these instructions when they click the public link that's provided in the email. Click **Settings** and enter the following in the Instruction field:
```
Click the Complete button, once you are ready to do the 2-Factor Authentification.
Go to this page immediately and
enter the code that you have received on your phone
(will only work once you Click Complete): {89. Verify yourself - Public URL}
```
5. Create a new step that's **Integration > Custom integration**. This step will send a request to Twilio to send a code to the user's phone. Enter the following in the step's **Settings**:
* **Method**: POST
* **URL**: `https://verify.twilio.com/v2/Services/TWILIO_VERIFY_SERVICE_SID/Verifications`
* **Headers:** Content-Type: application/x-www-form-urlencoded
* **Headers:** Authorization: `Basic TWILIO_ENCODED_API_KEY`
* **Body** might look like the following:
```
To=%2B{81. Provide details - Phone number. (Note: please include 1 before the area code.) - Input (plain)}&Channel=sms
```
* Select to skip this step on failure.
* Click **+ Add variable** and create an `error_message` variable with the value of `$.message` and a `status` variable with the value of `$.status`.
6. Save your changes.
7. Click **+ Add step** and select the step to be **Integration > Custom integration**. This step will automatically complete the verification process and send data to the main workflow. Enter the following in the step's **Settings**:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{InstanceID}/complete_step/`
* **Headers:** Content-Type: application/json
* **Headers:** Authorization: `Api-Key NEXT_MATTER_API_KEY`
* **Body** might look like the following:
```json theme={null}
{
"step_id": "STEP_ID",
"actions": [
{
"action_id": "ACTION_ID1",
"input_object": {
"radioItemSelected": "{84. Send Text - Integration step - status (plain)}"
}
},
{
"action_id": "ACTION_ID2",
"input_object": {
"radioItemSelected": "{84. Send Text - Integration step - error_message (plain)}"
}
},
{
"action_id": "ACTION_ID3",
"input_object": {}
}
]
}
```
**Note:** Make sure to make the step non-blocking (**... > Make non-blocking**)
8. Save your changes.
9. Create a form step allowing internal users to verify if Twilio reported any error messages.
**The next 4 steps below verify if the code entered by the user is correct.**
10. Create an integration step to inform the main process that the verification failed. Enter the following in the step's **Settings**:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{2. Provide details - Output instance id - Input}/complete_step/`
* **Headers:** Content-Type: application/json
* **Headers:** Authorization: `API Key NEXT_MATTER_API_KEY`
* **Body** might look like the following:
```json theme={null}
{
"step_id": "{2. Provide details - Target outcome of check step - Input (plain)}",
"actions": [
{
"action_id": "{2. Provide details - Action ID of Radio Button - Input (plain)}",
"input_object": {
"radioItemSelected": "{5. Send Text - Integration step - error_message (plain)}"
}
}
]
}
```
11. Save your changes.
12. This step is conditional and is only triggered if the verification status is canceled. Click **Add condition**, and specify that the step should only be triggered if the previous step didn't contain the pending status.
13. Save your condition.
14. Create another Sendgrid integration step **with a condition** for when the status is pending. In this case, you want another email to be sent out to the user to complete the verification. Use the setting details from step 3, however, consider changing the **Body** to the following:
```json theme={null}
{
"from": {
"email": "service@[company-domain].com",
"name": "Verify by Next Matter"
},
"personalizations": [{
"to": [{
"email": "{2. Provide details - Customer email - Input (plain)}"
}],
"dynamic_template_data": {
"email-subject": "2 Factor Verification",
"email-content": "Please provide your access token with this secure link. Never share your token with anyone."
}
}],
"template_id": "d-1aa0b4cd59214c18924a28c96ed78f7f"
}
```
15. Click **Add conditions** to create your condition for step 12.
16. Create a form step with a field for the user to enter the verification code. Assign this step to the external user.
17. Create an integration step for Twilio to verify the provided code. Click the **Settings** gear icon to configure the step:
* **Method**: POST
* **URL**: `https://verify.twilio.com/v2/Services/TWILIO_VERIFY_SERVICE_SID/VerificationCheck`
* **Headers:** Content-Type: application/x-www-form-urlencoded
* **Headers:** Authorization: `Basic TWILIO_ENCODED_API_KEY`
* **Body** might look like the following:
```
To=%2B{2. Provide details - Phone number. (Note: please include 1 before the area code.) - Input (plain)}&Code={10. Verify yourself - Please enter the code that you have received on your device. Your code is valid for 10 minutes. This is automatically blocked after 5 failed attempts. Write NOTRECEIVED if you didn't receive the code. - Input (plain)}
```
* Select to skip this step on failure.
* Click **+ Add variable** and create an `error_message` variable with the value of `$.message` and an `isOTPvalid` variable with the value of `$.status`.
18. Save your changes.
19. Click **Add conditions**, and create a condition for step 15 to run when step 14 didn't contain the NOTRECEIVED input.
20. Create a form step with the field to show the verification result (and any errors Twilio might have sent). Add a condition to this step to run if the verification step (step 10 was successfully completed).
21. Create a step with a routing form field to verify how to proceed in case of verification errors. The step can go back to the step to re-send the code, but in the case of a wrong number can be modified.
You can add the following description for the user:
OTP code entered was not valid. Please select how to proceed. Consider that 'Return to 2. Send OTP' option will send the same code again to allow another attempt. After 5 attempts, the system gets blocked.
The step should have the following options:
* Confirm and continue
* Return to the Provide details step
* Decline and stop workflow
22. Click **Add conditions** to create the conditions for the step to run in the case the verification was not successful (code was not received, got stuck on send, or was not approved)
The next 2 steps are conditional steps informing the main workflow of a verification failure or success.
23. Create an integration step to inform the main workflow of verification failure. Click the **Settings** gear icon to configure the step:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{2. Provide details - Output instance id - Input}/complete_step/`
* **Headers:** Content-Type: application/json
* **Headers:** Authorization: `API-Key NEXTMATTER_API_KEY`
* **Body** might look like the following:
```json theme={null}
{
"step_id": "{2. Provide details - Target outcome of check step - Input (plain)}",
"actions": [
{
"action_id": "{2. Provide details - Action ID of Radio Button - Input (plain)}",
"input_object": {
"radioItemSelected": "{11. Verify Code - Integration step - error_message (plain)}"
}
}
]
}
```
24. Click **Add conditions** to add the conditions to the step to run when verification was not successful:
25. Click **...** in the left-hand process panel and select **Make non-blocking**.
26. Create an integration step to inform the main workflow of verification failure. Click the **Settings** gear icon to configure the step:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{2. Provide details - Output instance id - Input}/complete_step/`
* **Headers:** Content-Type: application/json
* **Headers:** Authorization: `API-Key NEXTMATTER_API_KEY`
* **Body** might look like the following:
```json theme={null}
{
"step_id": "{2. Provide details - Target outcome of check step - Input (plain)}",
"actions": [
{
"action_id": "{2. Provide details - Action ID of Radio Button - Input (plain)}",
"input_object": {
"radioItemSelected": "Successful"
}
}
]
}
```
27. Click **Add conditions** to add the conditions to the step to run when the verification was successful.
28. Click **...** in the left-hand workflow panel and select **Make non-blocking**.
### Create the main workflow
1. Create an integration step to launch verification.
In this step, you'll be calling the Next Matter API to launch the subworkflow. Click the **Settings** gear icon to configure the step:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/`
* **Headers:** Content-Type: application/json
* **Headers:**: Authorization: `API-Key NEXTMATTER_API_KEY`
* **Body** might look like the following:
```json JSON theme={null}
{
"process": "https://core.nextmatter.com/api/processes/VERIFICATION_WORKFLOW_ID/",//this is the ID of the sub-workflow described above
"name": "{Instance name}-Verification"
}
```
2. Create the following variables:
| Name | Value |
| ------------- | --------------------------------------------- |
| id | \$.id |
| url | \$.url |
| step\_id | \$.process\_snapshot.steps\[0].id |
| name\_aid | \$.process\_snapshot.steps\[0].actions\[0].id |
| email\_aid | \$.process\_snapshot.steps\[0].actions\[1].id |
| phone\_aid | \$.process\_snapshot.steps\[0].actions\[2].id |
| instance\_aid | \$.process\_snapshot.steps\[0].actions\[3].id |
| step\_aid | \$.process\_snapshot.steps\[0].actions\[4].id |
| action\_aid | \$.process\_snapshot.steps\[0].actions\[5].id |
3. Save your changes.
4. Create a step to send the details to the verification sub-workflow. Again, you'll be calling Next Matter API. Click the Settings gear icon to configure the details:
* **Method**: POST
* **URL**: `https://core.nextmatter.com/api/instances/{2. Launch OTP SMS Verification - Launch workflow automatically - id (plain)}/complete_step/`
* **Headers:** Content-Type: application/json
* **Headers:**: Authorization: `API-Key NEXTMATTER_API_KEY`
* **Body** might look like the following: Note that the data in are data references.
```json JSON theme={null}
{"step_id":{2. Launch OTP SMS Verification - Launch process automatically - step_id (plain)}
,"actions":[
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - name_aid (plain)},
"input_object":{
"inputValue":"{2. Launch OTP SMS Verification - Launch process automatically - name_aid (plain)}"}},
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - email_aid (plain)},
"input_object":{
"inputValue":"{2. Launch OTP SMS Verification - Launch process automatically - email_aid (plain)}"}},
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - phone_aid (plain)},
"input_object":{
"inputValue":"{2. Launch OTP SMS Verification - Launch process automatically - phone_aid (plain)}"
}},
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - instance_aid (plain)},
"input_object":{
"inputValue":"{Instance ID}"
}},
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - step_aid (plain)},
"input_object":{
"inputValue":"RESULT_STEP_ID"// this is a placeholder for the step ID of the next step
}},
{
"action_id":{2. Launch OTP SMS Verification - Launch process automatically - action_aid (plain)},
"input_object":{
"inputValue":"RESULT_ACTION_ID"// this is a placeholder for the action ID from the next step
}
}
]}
```
5. Save your changes.
6. Create a radio form field step with the following details as radio items:
* Successful
* Max send attempts reached
* Challenge expired
7. Create a routing step with the following condition to run when verification has reached the send attempts limit.
The step should have the option to confirm and continue or return to step 2.
8. Create a form step with the field to share data with the verified user. Make sure you create the condition for this step to run when user verification has been successful.
# User selection
Source: https://help.nextmatter.com/docs/user-selection
Let users select teams or team members as part of a form.
Not sure how to configure a form? [Learn more...](/docs/about-actions-and-action-types)
This field creates a dropdown with the members of your workspace to select from. You have the option to restrict the selection to specific users or user groups to make the selection relevant. You can make the restriction when you configure the form field. You can also create follow-up fields based on the selected user. For example, some fields may show when a specific user or a team is selected. You can do this by creating conditions for the follow-up fields.
Note that user selection fields only work for logged-in users and they don't show on public forms or steps with external assignees.
![Image showing user selection configuration with the restricted option selected]()
## Add tooltip to field
You can add extra information to help users provide the right input. The information will show when users hover over the info icon next to the field name.
![Image showing form field tooltip configuration and how it shows to users]()
## Complete a form using API
You can update field data and complete a form using API. To see examples of the JSON body you need for each form field, see [Completing steps](/docs/complete-a-step#completing-steps-using-api).
# Stages board
Source: https://help.nextmatter.com/docs/view-progress-of-process-instances
To help you monitor the progress of instances, you can create a stage board, and view all instances against these stages. The most basic stages would be: Started, In progress, and Completed.
If you have the board configured, you can see it in the workflow overview. The data on the board is updated in real-time, and you don't have to move items between columns.
If you added stages to the workflow after some instances of the workflow have been started, these instances will show in the **No stage** column of the board. When these instances are completed, the **No stage** column will disappear.
Additionally, if there are steps that take place before your first stage begins, the new instances of a workflow will also appear in the **No stage** column and remain there until the first stage is reached.
![Image of the stages board in Next Matter]()
## Set up the board
On the stages board, stages are ordered by creation time (the order in which they are added to the workflow). Note that you can set stages on top-level steps, not on nested steps.
1. Click a workflow to open it.
2. Find the step you want to be the first stage in the workflow and click the step to open it.
3. Click **Add a stage**.
4. Enter the name of the stage.
5. Click **Add stage**.
A flag will be displayed next to the step to mark where the stage starts. The workflow will remain in this stage even after this step has been completed. It will move to the next stage when the next step with an added stage is reached.
Setting stages for workflows is important when you allow external users to track the progress of instances they've created. Stages offer insights into their requests and provide them with the data they need to stay informed. You can toggle on tracing instances when you create a public form in your workflow.
### How stages are displayed on Stages Board
Stages are displayed on the stages board in the order they are added to the workflow.
**Example**: If you add a stage to Step 3 in your workflow, that stage will appear on your **Stages Board** when an instance reaches Step 3. Later, if you edit the workflow, add a stage to Step 1, and run another instance, the stage for Step 1 will appear after the stage for Step 3. This happens because the stage for Step 1 was created after the stage for Step 3, even though it’s earlier in the workflow.
To ensure a logical order on the **Stages Board**, add stages only after your workflow is fully built, starting with the earliest stages first.
Notes:
* If stages are added after some instances have already started, those instances will be shown in the **No stage** column of the **Stages Board**.
* If the first instance step with a stage has a scheduled start, the step will be in the **No stage** column until the step is activated when its scheduled date arrives.
* Stages are identified by the name at the moment of creation, which means that renaming a stage (or fixing a typo) creates a new one.
* Stages can't be versioned.
## Update stages
### Adding a new stage
You can add a new stage to the workflow at any time. The new stage column will immediately appear on the **Stages Board** however, it will only be used **by the instances started after** the new stage was added.
### Changing the stage name
The change will temporarily create a new column. The column with the old name will be on the board it is empty.
### Moving a stage
When you move a step with a stage, the order of the columns on the board will automatically be updated. You might have to reload the board.
### Deleting a stage
The deleted stage will disappear from the board when it is empty. Until then it will be displayed to the very right of the board.
### Triggering a stage
An instance enters a stage when a step is activated that has that stage assigned to it. It keeps the stage even when the subsequently activated steps have no stage assigned.
# Webhook triggers
Source: https://help.nextmatter.com/docs/webhook-triggers
Start a workflow based on triggers from external apps.
Use a Webhook trigger to start a workflow when an event occurs on a different platform (such as a customer response on a customer support ticket or a change to the application status in your applicant tracking system). You can also analyze the webhook response payload and extract useful variables that you can use in further steps of the workflow.
You can find the destination webhook URLs in the developer documentation of the third-party apps.
## Watch a tutorial
## Set up a webhook
1. Go to **Workflows**.
2. Click **Create new ...> Start a new workflow**.
3. Give the workflow a name and click **Create**.
4. Click the start section in the left-hand panel.
5. Select **Webhook trigger**.
6. Select to enable the webhook.
7. Copy the Next Matter URL from the webhook URL field.
8. Go to the third-party app and select the payload you want to send to Next Matter
9. In the third-party app, make a POST call to the copied Next Matter URL. This way we'll be able to receive the payload.
10. Go back to Next Matter and click **Test webhook and select variables**. This will fill in the response body with payload data, and populate the variables dropdown.
We recommend running the webhook test from time to time to make sure the payload is up to date. If the new payload doesn't return some of the variables that have been selected, these variables get highlighted and should be deleted so that they don't break the workflow.
11. Select the variables from the dropdown and click **+ Add** for every variable you want to use later in the workflow. You can also add your own variables in the **Active webhook variables** section. If you plan to re-use these variables in further steps, the variables will display in the workflow metadata section as **webhook variables**.
12. Click **Save**.
Now, when an event happens, it triggers an instance and automatically populates the workflow data as per the selected variables.
![Image of an instance started with a webhook with started via webhook visible]()
## Disable the webhook
If you don't need a webhook anymore, you can disable it by clearing the **Enable webhook** box.
Note that this action deletes all data related to the webhook. If any workflows still use the variables extracted from the webhook's payload, these variables will show as broken and might cause the workflow to fail.
## Use a webhook variable for a dynamic list
When you receive a list as a response to a trigger and want to create a dynamic dropdown from this list, first select the list and turn it into a variable. Then you can use the variable as the source for a dynamic dropdown. Make sure you use `[*]` in the variable value. For example, `$.mylist[*]`. This will ensure the list is parsed correctly.
[Learn more about dynamic dropdowns](/docs/single-and-multi-select-dropdowns#dynamic-dropdowns)
# Welcome
Source: https://help.nextmatter.com/docs/welcome-to-next-matter
Next Matter is a platform for automating workflows, from complex processes across multiple teams and tools to repetitive and mundane ones.
![Graphic of workflow automation]()
## Trending
## Discover Next Matter by role
* [Use inbox](/docs/get-started-user#get-started-work-with-tasks)
* [Finish tasks](/docs/get-started-user#complete-a-task%3A-watch-a-tour)
* [Add users](/docs/grow-your-team#add-users)
* [Set access](/docs/team-permissions#team-permissions)
* [Create request](/docs/portal-user)
* [Track status](/docs/my-requests#track-your-portal-requests)
* [Connect apps](/docs/integrate-across-tools)
* [Start building](/docs/get-stared-builder)
* [Complete forms](/docs/guest-user#complete-tasks)
* [View progress](/docs/guest-user#track-progress)
* [Export data](/docs/export-data/)
* [Track progress](/docs/work-with-process-overview#instance-overview-table)
## Popular tasks
# Custom branding
Source: https://help.nextmatter.com/docs/white-labelling
You can offer multiple Next Matter services as your own ensuring seamless user experience.
Custom branding (or white labelling) refers to the practice of rebranding a service by another company as its own. This entails adding branding, logo, and design elements to the product, creating the appearance of ownership.
With Next Matter the extent of branding depends on the plan you're on.
## Available for all plans
* Design your own step completion messages (shown when users complete a step they've been assigned to)
![Image of a completion message]()
* Add your branding to public forms and progress tracker. You present these to guest users who don't log in to Next Matter.
![Image of a public form with a logo highlighted that can be updated]()
* Add your branding to portals. Portals are light (portal) user hubs offering a curated set of ready-to-start workflows.
![Image of Portals in Next Matter with a logo, dashboard, and dashboard logo highlighted as the elements that can be updated]()
## Available for the Enterprise plan
You can remove the "Powered by Next Matter" so that it's never visible to external users (guests). The badge disappears from all public forms and progress trackers.
![Image of a public form with Powered by Next Matter highlighted as the element that can be updated]()
# Start instances
Source: https://help.nextmatter.com/docs/work-with-instances
When you've built your workflow with the editor, your team can run it as an instance. There can be multiple instances of the same workflow.
You can start instances manually or automatically, by, for example, triggering a workflow on completion of another workflow.
You can define how you start a workflow instance when you build your workflow.
![Image of the start workflow options section in the workflow overview with the recurring option highlighted]()
## Start instances manually
You can start an instance by clicking the play icon on the workflow.
You can start multiple instances at once.
![Image of multiple instances waiting to be strted]()
## Start recurring instances
You can automatically start instances in intervals and configure the recurrence. You set up the starting date and the recurrence, and you're good to go.
Each recurring workflow is marked with an icon. If you hover over it, you can see when the next workflow instance is started
## Start instances by email
Automatically start an instance when an email is sent or forwarded to a dedicated workflow email address. To activate the email address for your workflow, contact our Support team.
## Start instances with API
You can start an instance by making a call to the `Create` endpoint. For details, see [API reference](/reference/instances_create).
**Tip:** Make sure you have your **API-Key** at hand to authenticate your request.
## Start instances from an imported file
Start multiple instances with a CSV, XLS, or XLSX file import. To import a file, contact our Support team. Note that import batches are billed per instance.
As part of the workflow, we map the values from the CSV to Next Matter instance values such as tags or instance name, add headers to the file, and launch the instance.
## Start instances with an external link
Allow anyone with a dedicated workflow portal link to start an instance of a workflow. No Next Matter account is required.
Learn how to do it
1. Click your workflow to open the overview.
2. Select **External Portal**.
3. Select **Create portal from first step**.
![Image of the start workflow options section in the workflow overview with the public form option highlighted]()
4. Copy the link and send it to the person who should start the workflow. Alternatively, you can generate a QR code to share.
The person who receives the link opens it in a browser when they are asked to complete the first step of the workflow. When they click complete, the workflow is set in motion.
![Image of a public form as users see it]()
## Start instances with a webhook
Set up the workflow instance to start only when an event happens (for example someone creates a Zendesk ticket).
[Learn more](/docs/webhook-triggers)
## Start instances of a process with another workflow
You can configure one workflow to start another workflow on completion of the first one. For details, see [Start a follow-up workflow](/docs/start-a-follow-up-process).
# Instance overview table
Source: https://help.nextmatter.com/docs/work-with-process-overview
In Next Matter, you have an overview of all workflows and a details overview per workflow.
You can get a visual representation of your entire workflow by clicking **Show Visual** in the top bar of the **Workflow overview**. For details, see [Visual editor](/docs/flowchart-view).
## Instance overview
This overview is available when you click **Workflows > Overview**. It helps you manage and track running instances and stop or delete an instance if needed. You can also use the **Filters** and sorting to find the instance you need. You can apply filtering to every column.
![Image of filters in the workfow overview]()
You can see the same view per workflow if you click it in the table.
## Customize overview
As an admin, you can also modify the table's look for your organization. You can change the order of columns, modify their width, and select which columns are visible (up to 20 columns per table). You can also display the content of form fields as column data. This is particularly helpful when you need to track specific information as part of your workflows. When you have modified the default view, simply publish the changes for everyone.
You can pull out data from the following form fields: short text, radio, checklist, date, single-value dropdown, and multi-value dropdown. You can only add custom data present in **the most recent** version of a workflow.
### Removed fields in custom columns
Next Matter displays custom data but also manages obsolete fields removed from the latest workflow versions.
If a field was removed from the workflow but has been added to the table, we display it in the selection pop-up. From the moment the field has been removed from the workflow, no new data has been populated in the table column, and if needed, you can remove the column from the table.
If you remove such a column from the table, you can't re-add it later on.
![Image of instance table congiguration showing active and removed columns]()
### Restricted fields
Next Matter also handles restricted data to ensure sensitive information isn't exposed to users without proper access rights.
## Workflow details overview
To see workflow details, click the workflow name on the list and click the pen icon or the eye icon on the left of the workflow name.
This opens general workflow details such as the list of steps, the details of the workflow lead, workflow visibility, status, and the tech lead.
![Image showing workflow details such as workflow owner]()
In the overview, you can also add useful notes on the workflow and upload anything relevant to the workflow.
## Workflow change history
You can see what changes have been made to the workflow, who made them, and when in the **Changelog** tab in the **Workflow overview**. The changelog displays all events from the latest to the oldest.
* For workflow managers: The changelog can help you with compliance and audit-readiness.
* For workflow builders: The changelog can help you update complex workflows, and test and release them. It can also be useful when you need to roll back specific updates.
![Image showing the changelog tab]()
## Resources
To help users complete and understand workflows, you can upload files (such as PDFs, PNGs, GIFs, or DOCs) or add useful links as workflow resources.
You can add resources on the **Workflow overview** page under the **Resources tab** or directly on the workflow page (accessible by clicking a workflow) in the top-right corner.
![Image showing the resources section for a specific workflow]()
When added, the resource will show on the workflow page and will be accessible to anyone who can view the workflow.
![Image showing the section with resources uploaded]()
To add the resource, you need to have the edit rights to the workflow. For details on permissions, see [Build teams (Permissions per user and team role)](/docs/build-teams).
A resource file can be a maximum of 50 MB.
# Templates
Source: https://help.nextmatter.com/docs/work-with-templates
Templates give you a head-start on integration. They create all the necessary steps and fill in the API details you need.
Templates are ready-made integration steps that display in your workflow.
To use a template, in your process click **+ Add step > Templates**. You can select out of the following template options:
* **3rd party templates**: these templates provide you with ready-made steps that use 3-rd party system integrations. Use them to quickly create workflows that send messages to Slack, write things to templates in Google Drive, and so on.
* **Next Matter templates**: these templates provide you with chunks of Next Matter ready-made workflows. Use these templates to quickly create steps for stopping an instance, automatically completing a step, and so on. Several templates provide you with steps that show you an example of a function in use. You can use these when you need to calculate or format a date or put together a URL.
![A screenshot of the list of step templates]()
Pick a template you want to use.
When you have the template in your workflow, click **Settings** for every step it created and configure it. In most cases, you'll need to enter the details in the placeholders in the **Body** of the step.
It might also happen that a placeholder can be replaced by a data reference of the data provided in one of the previous steps. To learn more about data references, see [Data references](/docs/use-data-references).
No idea what your workflow should look like? Our AI can help you build it!
1. Log in to Next Matter and click **Roadmap**.
2. Click **+ Create new process with AI**.
3. Describe your workflow and click **Generate workflow**. Don't worry about the **Steps count** for now.
4. If you like the workflow, click **Open in editor**, and tweak the details.
If you can't see the AI template builder in your editor, contact our Support team.
# Workflow lead and tech lead
Source: https://help.nextmatter.com/docs/workflow-lead-and-tech-lead
Ensure your workflow escalation contact person and the main stakeholder are set.
## Workflow lead
The workflow lead is the person who can view, change, or delete a workflow. They are the main contact people for the workflow. They are also the main business stakeholder. You can change the lead at any time.
## Tech lead
The tech lead might be the workflow builder or manage the technical aspects of the workflow. When a step fails, it automatically gets assigned to the tech lead. They also get notified if a step fails (in the **Needs attention** section of the Inbox and by email), and they can retry the step by test-tweaking the configuration.
The workflow lead remains the escalation contact if the tech lead is not set.
You can select the lead from among the workspace colleagues.
A tech lead is just a role that can be assigned to anyone, and it doesn't change the account's permissions. However, tech leads will be able to see the request body if the integration fails, even if the step visibility is restricted. Note that tech leads can't edit workflows, so they need to contact the admin to permanently update the configuration.
## Editor
The **editors** are users who can modify the workflow. They can add steps, change step assignees, add form fields, assign a technical lead, or change the workflow lead. Additionally, editors can duplicate or delete the workflow.
Each workflow can have multiple editors, but only one editor can make changes at a time. If another editor attempts to edit a workflow that is currently being edited, they will be notified, and the workflow will remain read-only for them until the active editor closes the workflow or switches tabs.
# Workflow versions
Source: https://help.nextmatter.com/docs/workflow-versions
Create draft workflows and roll back to a previous version, if needed.
## Use versions
Versioning allows you to make changes to workflows without them being immediately published. You can test the draft versions, while the current version in use remains unchanged. Version control is also key to staying compliant and audit-ready because you have lasting and granular insights into how your workflows changed, and when and who introduced the updates.
To use versions, simply edit a workflow. The breakdown of changes will be listed in the **Changelog** tab of **Workflow overview**. To find a list of versions, open the **Version control** tab.
When a new version is published, all instances that start after the publication use the latest version.
### How do I publish a version?
You can publish a version in the top bar of the workflow or from the **Version control** tab.
![Top navigation bar with the highlighted publish button]()
If you publish a version, all instances started after the version was published will be using this version. All instances started before, will be using the previous one.
### Can I edit a published version?
**Edit the current version**
You can always edit a version. If it's the current version, start editing the workflow. Your changes to the workflow will become a draft of the next version, and the version the instances will be starting with will still be the current version (without the new changes).
When you're happy with the changes, publish them and all the new instances will start with this published version.
**Edit a past version**
You can only edit a past version if you roll back to this version. Then the past version becomes the most current unpublished version, which you can edit as a draft.
### Can I delete a version?
You can only delete the draft version. You can't delete any published version because there might be instances that are linked to that version. Note that you can't delete the first version of the workflow because there is no version to roll back to. In this case, you need to delete the entire workflow (Click on the **workflow name > ...> Delete workflow**)
![Screenshot of the version control tab]()
### Can I delete my edits to a version?
Yes! Click the publish icon and click Discard all changes in the pop-up. That will delete all edits you made in a version.
### What happens when I roll back to an old version?
Let's say you have 5 versions of a workflow, and version 5 is the one you currently use. When you roll back to version 3 this version becomes your current version called version 6.
If, in the meantime, you started editing your workflow and created a new draft (so unpublished version 6), this version will be lost when you roll back.
Rolling back doesn't interrupt running instances. The ones started before the roll-back will be using the old version and those that start after the rollback will switch to the new one.
### What happens to version control when I duplicate a workflow?
When you duplicate a workflow, the version control entries **do not** get copied over. If you then delete the old workflow, you'll also delete its version control.
### What permissions do I have to use version control?
To edit the workflow, you need to be an admin or a workflow lead.
## Versions and Changelog
A version shows you the state of your workflow between the previous version and the next one. As such, it contains multiple changes introduced between versions. For example, it might be that three or more changes to a workflow have been introduced in a single version.
A changelog is a granular list of all changes introduced. For example, if you changed a step's name three times then each change will create a line in the changelog.
To learn more about the changelog, see [Change history](/docs/work-with-process-overview#workflow-change-history).
# About workflows and instances
Source: https://help.nextmatter.com/docs/workflows-and-instances
Normally, you start automating operations by building a workflow. When you have a workflow, you can then run its real-life instance.
The workflow is a generic blueprint of the operation flow, for example, Supplier onboarding. When you have your workflow lined out, you can use the workflow in real life. This means starting an instance of the workflow. The instance is the applied version of the workflow, for example, *Onboarding of supplier X*.
Each workflow has steps, forms, and assignees.
* **Steps**: workflows consist of multiple steps that are completed in order. Each step defines a clear activity that needs to be executed by a team or individual in your organization. For details, see [Steps](/docs/about-steps-and-step-types)
* **Forms**: while steps define the overarching structure of your workflow and its owners, form fields are detailed input fields required to complete the step, such as work instructions, data inputs like customer IDs, and many more. For details, see [About forms and form types](/docs/about-actions-and-action-types)
* **Assignees**: these are the people responsible for completing the steps they've been assigned to. For details, see [Find steps assigned to you](/docs/find-steps-assigned-to-you)
# Upload file
Source: https://help.nextmatter.com/reference/file/upload-file
/reference/openapi.json post /files/
Create a new file for the organization and (optionally) a specific workflow or instance.
Use the URI from the response to reference the file in your workflow.
Note that base64 is not natively supported as a direct upload format.
If you have a base64 file, convert it to binary before uploading.
It accepts a `file` field in the request data, with a file.
# Details of form field
Source: https://help.nextmatter.com/reference/form-field/details-of-form-field
/reference/openapi.json get /processes/{process_id}/steps/{step_id}/actions/{action_id}/
Show details of a form field including all instances the field is used in.
Page size is 100 by default, 500 maximum. To paginate, follow the standard usage of limit and page parameters.
We strongly recommend using filters with this endpoint and limiting the number of results, especially when requests are frequent. Otherwise, performance might degrade.
# Get started
Source: https://help.nextmatter.com/reference/getting-started
Get started with Next Matter public API.
## Create API key
Authentication is API-key based.
You need to be a Next Matter administrator to create an API key.
To generate the key:
1. Log in to Next Matter.
2. Go to **Company > Next Matter API keys**.
3. Click **+ Create API key**.
Authenticate by passing the API key in the "Authorization"
HTTP header proceeded with the string "Api-Key ".
For example:
Authorization: `Api-Key xyzabc.12fsfe242ubdgakew`
Read more on [managing API keys](/docs/api-keys)
## Postman collection
Import our [Swagger/OpenAPI specs](https://core.nextmatter.com/api/docs/?format=openapi) directly into Postman.
## Rate limit
Our rate limit is currently 100 requests per minute.
# Upload image
Source: https://help.nextmatter.com/reference/image/upload-image
/reference/openapi.json post /images/
Create and return a new image for the organization and specified workflow or instance.
It accepts an `image` field in the request data, with an image file.
# Complete step
Source: https://help.nextmatter.com/reference/instance/complete-step
/reference/openapi.json post /instances/{id}/complete_step/
Complete a step in an instance of a workflow. The step needs to be active and the user
that the API-Key is associated with needs to have access to the step (they need to act as assigned step owner, workflow lead, or an administrator).
# Create instance
Source: https://help.nextmatter.com/reference/instance/create-instance
/reference/openapi.json post /instances/
Create and return a new instance of the workflow
# Delete instances
Source: https://help.nextmatter.com/reference/instance/delete-instances
/reference/openapi.json post /instances/bulk/delete
Delete instances passed in the payload
# Get instance
Source: https://help.nextmatter.com/reference/instance/get-instance
/reference/openapi.json get /instances/{id}/
Get the details of an instance
# List workflow instances
Source: https://help.nextmatter.com/reference/instance/list-workflow-instances
/reference/openapi.json get /processes/{process_id}/instances/
List the instances of a given workflow, optionally filtered.
Filtering can be applied using the following query parameters:
- `name`: All instances with the name containing this substring
- `ordering`: Sorting by ascending or descending options: status, priority, ended_time, total_runtime, started_time. Use `-` to sort in a descending manner, for example: `-status`
- `status`: Use one of the options: `running`, `completed`, `aborted`
- `progress`: With suffix `_min` or `_max`
- `active_step_id`: Returns all instances of a workflow for which the step with the specified ID hasn't been completed and is currently active
- `priority`: Use one of the options: `V` (Very High) or `H` (High)
- `started_time`: With suffix `_after` or `_before`
- `last_updated_time`: With suffix `_after` or `_before`
- `deadline`: With suffix `_after` or `_before`
- `step_deadline`: With suffix `_after` or `_before`
- `aborted_time`: With suffix `_after` or `_before`
- `completed_time`: With suffix `_after` or `_before`
- `ended_time`: With suffix `_after` or `_before`
- `total_runtime_min`: Instance duration as `%d %H:%M:%S.%f` or ISO format
- `total_runtime_max`: Instance duration as `%d %H:%M:%S.%f` or ISO format
- `tags`: Name of the tag or tags separated by comma. Multiple tags are searched as OR condition.
- `page`: For pagination.
Dates follow the ISO8601 format and UTC standard.
Page size is 100 by default, 500 maximum. To paginate, follow the standard usage of `limit` and `page` parameters.
# Partially update instance
Source: https://help.nextmatter.com/reference/instance/partially-update-instance
/reference/openapi.json patch /instances/{id}/
Update selected instance properties
# Stop instances
Source: https://help.nextmatter.com/reference/instance/stop-instances
/reference/openapi.json post /instances/bulk/abort
Stop instances passed in the payload
# Update instance
Source: https://help.nextmatter.com/reference/instance/update-instance
/reference/openapi.json put /instances/{id}/
Update all instance properties
# Get workflow
Source: https://help.nextmatter.com/reference/workflow/get-workflow
/reference/openapi.json get /processes/{id}/
Get the details of a workflow
# List workflows
Source: https://help.nextmatter.com/reference/workflow/list-workflows
/reference/openapi.json get /processes/
Show all workflows that are visible to the user that the API-Key is associated with.