See resources, credentials, and send-to-stories shared with your team


Now, you can easily discover objects that other teams have made available to your team in Tines – resources, credentials, and send-to-stories.

In each case, you’ll find a new “shared with your team” section that lists them all. From there, you can copy a formulas expression to use the object in your stories.

‘Viewer’ role for teams


Now, you can invite team members with read-only permissions. This is useful for situations where a colleague or auditor needs oversight or understanding of an automated workflow, without the ability to alter it – or even accidentally break it.

Viewers have read-only access to most objects throughout the team, including Stories, actions, and events, but can't create or edit any objects whatsoever.

Simplified team user management page


We have redesigned the team user management page and moved it into a modal for easy access without having to navigate away from your current page.

Change Control push messages


To make the change history of your important Stories easier to understand you can now add custom messages when you push changes from your test environment to your live environment.

Default values for form fields


Now, you can specify default values for your form fields to give your users a starting point. For example, use a default value to provide a template for the type of input you’d like.

Dynamic form field options


Now, you can power the list of options a form presents using formula expressions. This means you can provide a dynamic list of options for your users to choose from whenever required. For example, you could fetch the latest options from an external API, or populate with a list stored in a resource.

Surface all story resources & credentials


All credentials and resources contained within a story's groups are now included in the list of credentials and resources on the story panel.

This will help easily identify missing credentials or resources and simplify their replacement throughout a story.

New REJECT function


New PARSE_URL function


Credential icons


Now we provide a set of icons for common vendors, that you can assign to your credentials.

When creating a credential, we’ll suggest one automatically when there’s a name match:

And then we’ll surface this icon throughout the product, for example on a Story:

Are we missing an icon that you’d like to see? Let us know!

Smoother login for self-hosted tenants


If you independently self-host your Tines tenant, our identity service at login.tines.com couldn't previously list your tenant. This meant that importing from our Story library was awkward, among other things.

Now, you can manually associate your self-hosted tenant (or even a missing Tines-hosted tenant) to the list by using the new button:

Head over to login.tines.com to associate your tenant.

Advanced formula editor


We've improved the experience when writing more complex formulas with lots of nested expressions.

You can now use the advanced formula editor which features

  • Automatic indentation and formatting

  • Code folding

  • Autocomplete and help

  • Select sub expression to evaluate

Advanced mode formula editor

Capture creator in Story versions


When new Story versions are created manually, the creator of the version is now captured and displayed in the list.

Share resources, credentials, and send-to-stories to specific teams


Previously, resources, credentials, and send-to-stories could either be exposed to the current team, or to all teams across the tenant.

Now, you can share each of these objects on a per-team basis. Teams you share with can then access these objects' values in their Actions (using CREDENTIAL.name, RESOURCE.name, and STORY.name) without being able to otherwise see or edit them.

AWS credential caching


Tines now caches AWS-type credentials.

Your Actions using AWS credentials will no longer need to call the AWS Security Token Service numerous times on repeated runs.

This should yield some performance improvements in Stories that repeatedly use AWS credentials.

Service Account API Tokens


All tenant admins can now create and manage service account API tokens. These tokens will not need to belong to any specific user on the tenant and can be used to perform any operation via the Tines API that an admin’s personal API token currently can.

Throttle mode for Event Transformation Action


We’ve added a new mode to the Event Transformation Action: throttle. It limits the rate at which events are emitted by the Action, across all Story runs. This will help your Stories to respect imposed rate limits when interacting with third-party APIs.

Increased legibility in the events panel


Now, we include a full timestamp for each event in the events panel, making it easier to visualize when things happened and to find the event you’re looking for.

Pill builder auto save


We've made some updates to how and when your changes within the pill builder are saved. We now save changes as you make them to align with how we manage other changes made to actions within the right hand panel. There is no longer a need to press COMMAND/CONTROL & ENTER to commit your changes. You can revert any unnecessary changes made with COMMAND/CONTROL & Z.

We've also added a save status to the right hand panel. This will help provide more visibility and confidence into the status of your changes as you make them.

▲  Auto saving pill changes

A new level of flexibility for forms


Forms provide a user-friendly way to kick off your workflows in Tines with human input – from direct team members, colleagues throughout your company, or even the public internet. Today, we’re announcing two huge improvements to make forms more flexible and useful than ever before.

1. Multi-stage forms

Imagine you’re building a way for your colleagues to provide feedback on a system. Your first question might be something like "Is this a bug or a feature request?". If it’s a bug, you’ll want to know the steps to reproduce it. But if it’s a feature request, you need different context – what’s the problem, and what’s their idea to solve it?

With multi-stage forms, it’s simple:

A two-stage form workflow, where the second stage depends on the first.

From the user’s point-of-view, there’ll be a smooth, quick transition from the first form to the second.

This works far beyond simple cases: you can have as many forms/stages as you like, and we even support the most complex, thorny cases like looping or branching structures.

2. On-demand form URLs

Until now, if you needed to fetch input from a human mid-workflow, our answer was to use a prompt. This works really well for simple response cases like "click here to confirm that you recently logged in from a new device."

But what if you need to accept more complicated input during a story run? Now, forms are flexible enough to do this, too.

Let’s say you’re building a workflow that handles suspicious login alerts, and you want to give the affected user the ability to provide context as well as confirm/deny their login. Just add a form downstream in the workflow, and then get a live URL to it with FORM.suspicious_login ready for use in an email (or Slack notification, or anything else):

Linking to a form in an email with an on-demand URL

Once your respondent submits the form, your workflow will continue as usual.


We can’t wait to see what you build with these new additions.

For full information, check out the forms documentation.

Collapsible sidebar


The left-hand sidebar is a central part of Tines – it’s how you add Actions. But we’ve heard feedback from our expert builders that it simply takes up too much room. So now, you can optionally collapse the sidebar into its minimal icon representation, giving you much more space to build. And we’ll even remember your preference, so it persists as you work across Stories.

To use it, just hit the collapse toggle in the bottom left:

Formula results tooltip


We've improved how we show large results in the formula builder. Now when you hover over results you will see a larger pop up with formatted output and a copy button so you can copy the output into other tools for testing or validation.

New FLATTEN/UNFLATTEN_JSON Formula functions


Two new Formula functions have been added:

In each case, the default key separator is a period or full stop (.)

User logins included in audit logs


New CHUNK_ARRAY Formulas function


We've added a CHUNK_ARRAY function which allows you to split an array into chunks of new arrays.

Direct access to audit logs for self-hosted tenants


Our audit logs HTTP API offers a complete view of every action taken by users on your Tines tenant. For self-hosted tenants, where you have control of the environment running Tines, we now offer a simpler way to drain the logs with direct access.

Simply set AUDIT_LOGS_TO_STDOUT=true in your environment, and you’ll start seeing the logs in stdout in real time. The logs are formatted in JSON, exactly matching our API log format, and tagged with [Audit Log] for easy greping:

[Audit Log] {"id":1,"tenant_id":1,"user_id":1,"graphql_name":"StoryCreation","inputs":{"inputs":{"teamId":1}},"created_at":"2022-10-04T08:40:39.194Z","updated_at":"2022-10-04T08:40:39.194Z","user_email":"user@example.com","user_name":"Example Person","request_ip":"::1","request_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"}

This will be included in our upcoming 12.5.0 release, available next week. See releases.

Restrict credentials to multiple domains


New VALUES Formula function


We've added a VALUES function which allows you to easily retrieve all the values of an object.

Change Control


Change Control is an extra layer of protection for your mission-critical workflows. When applied, you can experiment with and validate complex change sets in a safe ‘test‘ environment for your Story, pushing to the live mode when ready. Read more in our launch blog post.

OAuth 2.0 authentication support for IMAP


Using the new Authentication Type option, Receive Email Actions in IMAP mode can now use OAuth 2.0 to authenticate their connections through the SASL XOAUTH2 mechanism.

To use this, set the Authentication Type option to XOAUTH2 and use a pill to set an OAuth credential as the password.

You can find more information on using OAuth 2.0 to connect to Gmail accounts here and Exchange accounts here.

Custom retry limits for HTTP Request Actions


When automating with APIs, resilience is key – services can go down, fail randomly, or act erratically. That's why Tines automatically retries failed requests in HTTP Request Actions with exponential backoff. But occasionally, you'll need fine-grained control of this behavior, e.g. to allow a workflow to fail more quickly for an often unreliable service. Now, you can customize the maximum number of retries.

Simply add the new ‘Retries’ option for any HTTP Request Action to set your own maximum:

Private group templates


As a follow up to public group templates, we now support private group templates.

Users may now create private group templates from the group itself via the action bar dropdown or from the Templates page. Users may also view the created templates on the left panel on the diagram or the Templates page.

No-config Slack credentials


We’ve added a new type of credential, allowing you to let Tines access your Slack workspace without any configuration whatsoever.

Simply create a new Slack credential in your team's credentials area:

And then authorize Tines in Slack after being redirected:

After you’ve authorized, you can use the credential like any other, for example as CREDENTIAL.slack as a bearer token in the Authorization header. (See an example in our Story Library.)


Note: this credential requests a basic set of permissions on your Slack workspace required to send chat messages. If you need additional capabilities, follow our guide on manually configuring Slack OAuth credentials in Tines for complete control.

New DEEP_MERGE Formula function


We have added a DEEP_MERGE function to allow you to recursively merge complex objects opening up new capabilities for data transformation.

New XML_PARSE Formula function


Now, we have XML_PARSE, for parsing XML text. Tines already automatically parses XML in HTTP responses, but this function may be useful for those times where you’re dealing with XML from other sources.

New LDIF_PARSE Formula function


Now, we have LDIF_PARSE, for parsing text in the LDAP Data Interchange Format. Embedded entries will be extracted in an array of structured objects, for convenient use in your Story.

Action cards UI refresh


As part of our evolving product visual language, Action cards now have a fresh new look and feel on the Storyboard. Action types are now more clear, and it's easier to know which action is selected within a Story.

▲  Action cards UI refresh

Forms on the Storyboard


Forms are now built and updated directly on the Storyboard, making their integration into Stories much clearer.

Additionally, we’ve enabled you to build multiple forms per Story. To create additional forms, use the new Tools menu on the left panel.

Your existing forms are migrated onto the Storyboard and continue to work as before. If you are not using the Webhook Action beyond your form, it can be deleted.

▲  Forms on the Storyboard

Domain restricted Credentials


You can now ensure that a Credential can only be used in HTTP requests to a specific domain. If a restricted Credential is used in a HTTP request to a different domain, or in a non-HTTP Request Action, it will fail.

Automatic URLs for common OAuth providers


Now, we automatically prefill OAuth authorization and token URLs when creating new OAuth credentials for some of the most common providers.

PKCE Support for OAuth 2.0


We've added support for OAuth Authorization Code flow with Proof Key for Code Exchange (PKCE).

When creating a new OAuth 2.0 credential with Authorization Code grant type, you'll have the option to select a PKCE code challenge method.

This PKCE code challenge method is optional when creating OAuth credentials. You may select either plain or SHA-256 if you know the OAuth provider you're creating a credential for supports PKCE.


For more information on PKCE, see the RFC.

New folder icons and more color options


New folder icons and colors to pick from

We've added more folder icons to choose from, as well as added the capacity to pick your own colors for them using hex color values.

Functions for AES encryption/decryption


We now have AES_ENCRYPT and AES_DECRYPT functions, for converting plain text to and from AES-256-CBC-encrypted representations.

Detachable Events Console


You can now open the Events Console in a new window alongside the diagram. Detach and re-attach the Events Console using the new buttons in the Events Console header.

Time Saved API


The Time Saved API is an access point to the time saved data gathered through Reporting. The data can be filtered by team, story, and date, and can be grouped by hour, day, week, or month.

Quickly show/hide all diagram panels


To quickly see your diagram without distractions, you can now hide all panels with a single keyboard shortcut: ⌘/.

New MSG_PARSE Formula function


Story Library


You can now access the Story Library from the Story Library section of the left-hand-side panel.

The Story Library modal allows you to search & filter Stories to find one to suit your needs. You can then further explore selected Stories or import a Story directly to your tenant.

New SHUFFLE Formula function


Added a new formula function:

SHUFFLE(array) - Shuffles all the elements in an array.

Search team members


You can now search a team member by their name or email address from the team member management page.

Reporting drill-down filters


The charts on the reporting page can now be filtered (where applicable) by story, team, and date range.

Call Webhook Actions from the Web


It’s now possible to make a request to a Webhook Action to kick off your Story directly from websites and browser applications.

To opt into the behavior, add the ‘Enable CORS’ configuration option, and specify which origin websites you’d like to be able to make requests:

Support for NTLM authentication


We now support NTLM-based authentication, which can be required to access some Windows-based systems. In any Tines HTTP Request Action, just enable ‘Use NTLM authentication’ and pass your username and password with basic auth to connect this way.

The ‘Use NTLM authentication’ configuration option in Tines.

New CSV_PARSE_TO_OBJECTS Formula function


A new CSV_PARSE_TO_OBJECTS Formula function has been added.

CSV_PARSE_TO_OBJECTS(input) - parses a csv input into an array of objects.

Deleting and restoring Stories


Introducing trash!

Deleting a Story will now move it to your team's trash. From the trash, Stories can either be restored or permanently deleted.

The trash may also be emptied, permanently deleting all the Stories it contains.

Support for ES256 JWT credentials


We now support the ES256 algorithm (i.e. ECDSA using P-256 and SHA-256) in our JWT credential type. This algorithm is a requirement for interacting with some APIs, for example Apple’s App Store Connect.

In addition to our existing support for HS256 and RS256 algorithms, this rounds out our coverage for all recommended implementations in the JWT standard, as defined in RFC 7519.

Less friction in unpublished Stories


Previously, you had to publish your Story before events from the outside world – like responding to webhooks or emails – would flow through it. These events would be “held” in a pending queue, requiring button clicks to get them to flow, which added friction and frustration.

Now, things are simpler: everything flows automatically while you’re working on (or just viewing) an unpublished story. Then, once you’re ready for the Story to run autonomously in the background, just hit publish.

Simplified navigation


We've simplified navigation across the product. From a Story, you can now get back to the dashboard in a single click, and actions are now consistent across Story, Story Runs, and Forms. You can also easily manage or switch tenants from the dashboard menu.

New REGEX_EXTRACT Formula function


Redirect authorization in HTTP Request Action


Our HTTP Request Action follows redirects – i.e. when an API you request sends you to another URL with a 3XX response. However, for best-practice security reasons, we don’t forward the Authorization header if the hostname changes in the redirect.

Now, you can opt-in to forwarding the header using our new ‘redirect authorization’ option. This will help in cases where APIs use and redirect to multiple hostnames, requiring authorization to be passed along.

The ‘redirect authorization’ option in Tines’ UI

Audit logs: enriched user information


Four new response fields have been added to the audit log API: request_ip, request_user_agent, user_email, and user_name.

Move credentials and resources between teams


Credentials and resources can now be moved between teams.

Surfacing full timestamps for events


Now, in addition to seeing the relative time for an event, we show you the full UTC date and time in the top right of the event viewer. Additionally, you can now hover over any relative time to see the full timestamp.

Quickly re-emit an action's last event


When working on a story, it's often useful to re-emit an action's last emitted event. You can now do this directly from the action bar.

No code comes to HTTP Request Credentials


The HTTP Request credential now supports no code mode.

HTTP request credential no code mode

Pills in JWT credential payload


The JWT credential now supports pills in its payload.

JWT credential payload with pills

Searchable Annotations


Annotations are great for documenting how your Tines stories work, right on the diagram.

Now, you can query their content and find them in Search, alongside existing results like Actions and Credentials.

Annotations now appear in search results

Story list presence


Collaboration is core to how people use Tines, so we're putting a spotlight on it. Avatars of teammates who are active (or recently active) are now visible on the dashboard.

Recently active teammates on an "Employee onboarding" story.

Automatic cleanup of action logs


As a means of reducing outdated action logs on your story, action logs now automatically expire along with events. As always, you can adjust when events and logs expire using the "Keep events and logs" dropdown when viewing a story.

Receive Email Action


The Email Action and IMAP Action are now called Send Email Action and Receive Email Action respectively. Rest assured, their existing functionalities have not changed. This is to differentiate between actions after introducing a brand new way of receiving emails.

The Receive Email Action now has two different modes:

  • IMAP mode - All Receive Email actions default to the IMAP mode, which has the original IMAP functionality.

  • Email mode - A new mode in the Receive Email Action. The action can now receive emails at a unique Tines-generated email address. Available for cloud tenants now.

With this change, users may now receive and process emails in Tines without configuring IMAP options.

Rest assured that existing Email and IMAP Actions have not changed - create a new Receive Email action if you want to give the new mode a spin!

Unveiling the new events panel!



The new events panel can be opened when an action is selected with the shortcut ⌘ + E/CTRL + E, by clicking the events badge in the top-right corner of an action, or by clicking the Events button in the action bar, as shown in the video above.

This panel provides all the functionality that previously appeared in the right-hand panel's events tab, with a host of new features:

  • Switch between events in the left hand list while examining their contents on the right

  • Expand and collapse JSON

  • Select multiple events to re-emit or delete

  • Pin an event to keep it open while exploring the rest of your story

  • Drag to adjust height

Tines Tunnel for IMAP Actions


IMAP Actions can now use the Tines Tunnel to connect to email servers in your private, internal networks. For more information on the Tunnel service, see our docs.

Left Panel Redesign


We have redesigned the left-hand-side panel in the story view.

Actions and annotations have been unified and given a fresh new look.

Templates now have their own section and expand automatically when searched.

Indicator for throttled stories


There is now a label on the toolbar indicating when a story is being throttled. A story is throttled if it emits more than 1000 events in a span of five minutes or if it contains an action taking more than 90 seconds to run. Throttling a story helps keep your tenant running smoothly by lowering its priority and leaving capacity for other stories to continue running unaffected.

Story and Group rename from the toolbar


Users now can rename stories and groups directly from the toolbar.

Public group templates


We have made a number of public group templates available to Formulas-enabled tenants. You can see all the latest templates added to Tines on this Notion page.

Group templates allow templates to offer a simpler interface, like this Slack template below, or offer more complex abilities like automatically paginating when making requests to APIs.

Updated form builder


We have made a number of improvements to the form builder. The new field selector makes it easier to add different types of fields.

We have also added support for two new field types: Number and Boolean. In addition we have added a new "date picker" for the date field.

Audit logs


Admins can now view a log of every change made on their tenant through the Audit log API.

Story locking


Users can now lock stories to prevent accidental changes. When a story is locked and a user attempts a state changing operation, the story will not be interactable and a toast indicating the locked state of the story will be shown. To make changes again, the story must be unlocked.

Undo story deletion


We've added an 'undo' button to restore a recently deleted story.

MATCH & KEYS Formulas Functions


Added two new Formulas functions:

  • MATCH - Returns true if text contains the regex expression regex_to_match and false otherwise.

  • KEYS - Returns an array of keys present in the object.

Visible OAuth error messages


Setting up new OAuth 2.0 credentials can be a fickle process. For one, different OAuth providers may have unique or badly documented requirements for how you pass through your configuration. For another, there can be latency between publishing up a remote credential and it being available for use by consumers like Tines.

Now, for authorization_code grants, we surface the full error context we receive from the remote provider if anything goes wrong, making it much easier to debug issues.

Copy HTTP Request as cURL


We've added a new feature where you can copy any test HTTP Action runs as cURL. This can be useful when debugging HTTP Actions.

Customize sender name in Email Action


We've added a new option to the Email Action which allows users to set a custom sender name for emails sent by the Action. This allows emails to appear in inboxes using your custom name as the sender instead of Tines. The underlying sender address will remain mail@tines.io.

For new Email Actions, the current user's full name will be set as the sender name by default.

Resources on the storyboard


Just like Credentials, it’s now possible to see and manage all of the Resources your Story uses, right there in the sidebar.

UUID function


You can now easily generate UUIDs within Tines.

Clickable action event badges


You can now click the action events count badge to quickly open the action events tabs. Similarly, clicking the error badge will open the action logs tab.

Profile avatars


User avatars throughout the app will now use existing Google profile or Gravatar photos, when available.

Refresh Oauth token button


We've added a "Refresh token" button to the Oauth credential modal!

This will allow users to refresh their Oauth token manually.

Credential Details


We've added a Details tab to the Credentials popover within stories!

This will allow users to update and view credential details from within a story.

New event retention options


We've added new 14, 60, 90 and 180 day options to the the "Keep events" dropdown for a story.

Reporting


We have replaced the Dashboard page with Reporting!

This new page contains all the information from the dashboard along with new charts giving you valuable usage metrics. Of particular note is the Reporting overview chart, which displays the real human hours saved through Tines automated actions. Find out more about tracking the time you're saving with Tines here.

New Email Action sender address


The default Email Action sender has been changed from support@tines.io to mail@tines.io. This does not impact any of your Stories in Tines, but may require an update to any mail filtering rules that have been created on your corporate mail gateway. The new mailing address does not accept email replies, so a ‘Reply To’ address should be configured on Email Actions to avoid bounce-backs. Customers that sign up before May 30th will already have the new address enabled.

Resizable Annotations


You can now change the width of an annotation to better fit the content and your story.

Event Payload Search Term Highlighting


Relevant search term from Event Payload Search will now be highlighted on match.


You can now perform full text search within all event payloads.

Other Teams View


Admins can now access teams they are not members of through the Other Teams list, located below the My Teams list on the left-hand navigation bar.

Search users


You can now search a user by their name or email address from the user management page.

Re‑emit API


You can now re‑emit an event through the Tines API. Re‑emitting events duplicates them and passes them down to receiving actions. Learn more

Clear events for multiple actions from the action bar


You can now clear events for multiple actions from the action bar.

Groups


Groups enable a better organization of complex stories by extracting well-defined branches of a story into a group. Learn more

Select data to implode


Event Transformation Actions in "implode" mode have a new option: "Item path". Using this option, you can select the data from the events being imploded to include in the output event.

Clear events from the action bar


You can now clear events for the selected action from the action bar.

Create credentials from the storyboard


You can now create credentials from the storyboard.

Credentials on the storyboard


4 new features to help you more efficiently manage credentials in your stories.

  1. List: You will now see a list of the credentials that are referenced throughout your story in the sidebar.

  2. Missing Credentials: will be surfaced in the credentials list.

  3. Reference Overview: You will be able to see which actions reference the credential in both existing and missing credentials.

  4. Story wide replace: You will be able to replace your credentials story wide in just a few clicks.

Copy event key path as pill


Double click on a key in an event payload to copy its path as a pill.

Custom certificate authority


URL recipients for action monitoring


You can now set a URL as an action monitoring recipient.

Story presence


Collaboration within a story is now much easier: see when someone else on your team is viewing the same story and follow along as you both work through your stories together.

Email action Reply-To option


You can now specify a Reply-To address when configuring an email action.

Trigger action editor


The interface for configuring Trigger actions has been revised to make it read more naturally.

is_ip_address Liquid filter


is_ip_address Liquid filter has been added. It checks if a piece of text is a valid IP address.

{{ "10.0.0.1" | is_ip_address}} evaluates to true

{{ "10.0.0.888" | is_ip_address }} evaluates to false

Pill drag and drop


Our options editor now supports cutting, pasting, dragging and dropping value and tag pills.

Action bar


The controls for running, testing, copying and deleting an action are now shown in a new action bar beside an action when it's selected.