Alloy March 2024 Update

Yes, it’s April now! 😅 This month’s update was delayed by a couple of days to account for the Easter weekend. We’ve continued to focus on quality and reliability in March, with a number of engine and mobile issues fixed.

The update took place during the evening of the 2nd April. For a full list of changes in v2.57, please visit the Alloy Changelog.

Exclude Text attributes from search 🔍

When you perform a keyword search, Alloy searches the contents of all Text attributes on applicable items to find any full or partial matches.

Going forward, it’s now possible to exclude Text attributes from being searched. This is ideal for attributes that may store sensitive data!

When adding a new Text attribute to a design/interface, there is a new Searchable property that you can disable. However, be aware that this property can't be edited after the attribute has been created (due to underlying database limitations).

Default workflow log retention 🗃️

Following a previous announcement, we can confirm that workflow logs (past and present) are no longer retained indefinitely.

As the log files were rarely viewed past a certain point, we’ve implemented a sensible default retention period that should cover most requirements, while improving Alloy’s health and performance:

  • Manual and Event workflows - 14 days
  • Schedule workflows - 45 days

To set a custom retention period for individual workflows, you can use the Alloy API. When creating or editing a workflow via the Workflow endpoint, supply a value for the optional logsRetentionDays parameter. For more detail, see ReDoc / Swagger.

Alloy February 2024 Update

This month has been focused on quality and reliability improvements. While there are no new features to showcase, we’ve fixed a number of issues that were affecting Alloy’s engine and Alloy Mobile iOS users.

The update took place during the evening of the 29th February. For a full list of changes in v2.56, please visit the Alloy Changelog.

Alongside this, we’re continuing to work on some cool stuff that represents the future of Alloy. It’s coming along very nicely, though it’s a little too early to share the details just yet. Stay tuned, 2024 is going to be an exciting year for Alloy! 😎

Alloy January 2024 Second Update

To help beat those January blues 😰, we have a second update for you this month! The update took place during the evening of the 25th January. For a full list of changes in v2.55, please visit the Alloy Changelog.

Identify computed attributes when editing workflows 🔍

Using the Alloy API, it's possible to build workflows that use advanced computation methods to generate values for certain workflow action attributes.

For example, compute the area and volume of a pothole from its recorded length, width and depth.

When editing a workflow's actions in Alloy Web, there's now a clear indication of which action attributes are set to be populated by a workflow computation. This reduces the chances of accidentally overwriting the computation, while still letting you set a new value for the attribute if you need to.

Optimised Filter list on Android 📱

In Alloy Mobile, the Filters screen lets you manage the display of different types of task, defect and asset.

On Android, the assets list originally included designs that implement the Asset Components interface. However, as components typically don't have their own geometry, they're now excluded from the list (the same as on iOS).

Additionally, the Filters screen now excludes designs that your user account doesn't have permission to view. This behaviour is coming to iOS in the next update.

Both changes will result in a significantly shorter list of filters for most users, making it easier to scroll and toggle designs on/off as needed.

Alloy January 2024 Update

And we're back, with a nice gentle start to the year 🙂. The update took place during the evening of the 4th January. For a full list of changes in v2.54, please visit the Alloy Changelog.

Reworked Routing 🏁

The Routing Editor lets you plot a journey between the locations of tasks within a project. Once you've added the required locations and any custom waypoints, you can optimise the route in two ways:

  • Fastest - find the quickest path between the waypoints in their current order, based on road data.
  • Shortest - reorder the waypoints to minimise overall travel distance.

If you choose the shortest option, the Routing Editor now updates automatically to reflect the (possibly) reordered waypoints.

Show layers in read-only Geometry Editor 🗺️

When viewing an item's details, you can switch to the Geometry tab and select the Item Location thumbnail to view the item's geometry in the Geometry Editor.

Previously, it wasn't possible to display other items in the Geometry Editor when in this "read-only" mode.

However, you can now open the menu and select Show layers just the same as when editing the item's geometry. This toggles the display of items according to which layers are currently enabled for the main map area.

Add parent links on Android✔️🔗

Following on from last month, you can now add parent links in Alloy Mobile Android as well as remove them.

To manage the parents of any item, select the 3-dot icon beside Originates From and choose Add or Remove as needed. For more detail, see last month's release.


Alloy November 2023 Update

It's been a relatively quiet month in terms of new features. However, rest assured that we're working on something rather cool, which we'll be sharing with you as soon as it's ready! 😎 The update took place during the evening of the 30th of November. For a full list of changes in v2.53, please visit the Alloy Changelog.

Add parent links on iOS ✔️🔗

Following on from last month, you can now add parent links in Alloy Mobile iOS as well as remove them.

When viewing an item's details, the Originates From section lists any parent items that link to it. For instance, when viewing a defect, you can see the asset it applies to.

There are times when you need to change an item's parent(s). It could be wrong to begin with, or you might find that the circumstances are different after travelling to its location.

For example, imagine a graffiti defect that is raised against a building asset. But when you arrive at the scene, you discover that the graffiti is actually on an adjacent building. Or it could be scrawled across both!

Being able to change an item's parent(s) on the spot helps to keep data accurate and makes it easier for workers to carry on with the task at hand.

To manage the parents of any item in Alloy Mobile iOS, select the 3-dot icon beside Originates From and choose Add or Remove as needed. This functionality is coming to Android next month.


Alloy October 2023 Update

This month, we've concentrated on bug fixes and behind-the-scenes enhancements, though there are some new features to mention! The update took place during the evening of the 26th October. For a full list of changes in v2.52, please visit the Alloy Changelog.

Remove parent links on Mobile ❌🔗

When viewing an item's details in Alloy Mobile, the Originates From section lists any parent items that link to it. For instance, when viewing a defect, you can see the asset it applies to.

Sometimes, an item gets linked to the wrong parent. This can happen due to changing circumstances, insufficient data, or good old human error. If left unremedied, the problem can multiply.

For example, imagine an inspection scheduled for a street, based on a report by a member of the public. When the inspector arrives, they discover the defects are on an adjacent street. The completed inspection raises two defects, which in turn spawn two jobs, all of which point to the wrong street.

Therefore, you can now remove a parent link from an item in Alloy Mobile, while out in the field. Simply select the 3-dot icon beside Originates From and choose Remove. On Android, you can alternatively swipe the parent item to the left.

The ability to add a parent link is also coming to Alloy Mobile, so keep an eye out for future announcements 👀

Resume map position on Android 🗺️

Previously, after editing an item in Alloy Mobile Android, the map would reset to the default zoom level. While this behaviour was sometimes useful, it was counterproductive if you wanted to edit multiple items close together.

Now, the map remembers its last position, enabling you to resume from where you left off.

New API features 👩‍💻

Sometimes, new features are initially available only on the Alloy API. This lets us add new functionality more quickly, without having to make any user interface changes. In general, we seek to introduce the same features in Alloy Web, once we determine the best way of integrating them into Alloy Web's user interface.

This month, we've added three notable features to the API:

  • In a workflow computation, you can now compute a time offset from a specific value (rather than the workflow's start time). In your WorkflowSyntaxNodeRelativeTimeWebModel, set offsetOrigin to Specified and supply an itemValue model. To learn more, see ReDoc.

  • You can now include an entire manual workflow within another workflow! Simplify your workflows and reduce redundancy by creating distinct, reusable action sequences that can be referenced in other workflows. To learn more, see Goodbye Workflow Action Groups 👋. Coming soon to Alloy Web!

  • When importing or exporting geometry data, you can now apply a custom transformation by specifying an uploaded grid shift file. To learn more, see Custom Grid Transformation 🌐.

Custom Grid Transformation 🌐

By default, Alloy uses a simple Helmert transformation when converting geometry from the British National Grid coordinate system (EPSG:27700) to WGS 84 (EPSG:4326). This works well most of the time and requires no user input.

However, it can result in slight misalignment in a handful of cases, and we do like to give you choices where we can!

Therefore, as of the October 2023 update, you can now specify a grid shift file for a particular transformation (e.g. OSTN02, OSTN15) when importing or exporting geometry data via the API.

To use a different transformation, first upload its grid shift file to Alloy. The max size is 100MB and the supported formats are:  GSB, LLA, DAT.

Using the API

When using the Alloy API to import or export data, just add +nadgrids=<fileid> to the proj4 string (where <fileid>is the Item ID of your uploaded grid shift file).

When importing data using the ImportSettingsDataWebModel, you can specify the proj4 string as part of its geometry property.

When importing NSG/NLPG data using one of the two ImportSettingsStandardFormatWebModels, no proj4j string is specified. Instead, you can populate its gridFileItemID property with the Item ID of the grid shift file.

Using Alloy Web

When configuring a custom import in Alloy Web, you can configure the Geometry in step 3.

After choosing the Type, select the magnifier icon in the Coordinate system field and choose one of those listed. This populates the field with a proj4 string, which you can then suffix with +nadgrids=<fileid>.

The Return of Access Policies ✅

Access policies are back, baby! Use them to enforce item-level access control.

Back in February, we announced that access policies were being temporarily removed, with a new implementation coming in future. They originally worked by tracing paths between the user and the item they were trying to access. In practice, the performance cost was too high, so we took them back to the drawing board.

We're pleased to announce that the new implementation of access policies has now arrived!

How do they work?

You can create one or more access policies for a particular design/interface. Each access policy can have one or more rules.

A rule applies to one or more user groups. It grants them conditional read access to items of that design/interface, based on the value each item has for a given attribute/property.

Currently, access policies can only be created and managed via the Alloy API.

What are they good for?

Access policies are enforced throughout Alloy. If a user isn't granted access to an item, it won't appear for them, regardless of whether they're using the map, the Data Explorer, etc.

This lets you control which items appear for which user groups. For example:

  • The "Emergency" group can only see tasks whose Priority attribute is "High" or "Critical".
  • The "Waste Sector C" group can only see waste jobs whose Geometry attribute is located within a specific area.
  • The "Acme Contractor" group can only see assets whose Default Team attribute is set to one of their teams.

What about Permissions?

Access policies are designed to work alongside Permissions. Think of them as a more granular replacement for the Read permission.

If you enable the Read permission on a design/interface, it grants read access to all of its items.

Alternatively, you can disable the Read permission and use access policies to grant conditional access to items, based on the values they hold.

Learn more

To learn about creating and managing access policies via the Alloy API, see Access Policies on the Alloy Help site.

Please note: the relational expressions will become available on 30th November, as part of the Alloy v2.53 release.

Alloy September 2023 Update

This month brings temporary map layers, automatic map refresh on Mobile, and some delicious new item form expression nodes. The update took place during the evening of the 28th September. For a full list of changes in v2.51, please visit the Alloy Changelog.

Show Data Explorer results on the map 🗺️

Ever wanted to quickly view a set of query results on the map, without having to create a layer?

Well, now you can! In the Data Explorer, select the bottom-right menu and choose Show on map to create a temporary layer containing all the resulting items from the current query tab (providing their Geometry attribute is populated).

The temporary layer will remain until you log out or select its X button in the Layers panel.

Include item links in a workflow SMS 🔗

When building a workflow, you can add a Message action node to the sequence and configure it to send an SMS to the provided phone number.

If you populate the action's Linked Items attribute, the SMS will now contain a direct link to each item stored in the attribute.

New Conditional expression nodes ❔

Oh, we're not done yet 😎. Here comes another barrelful of item form expression nodes!

This month, we've added many new types of Conditional node to the Item Form Expression Builder. These act as logical functions that compare values from other nodes and produce corresponding output:

  • AND - if both inputs are true, output true.
  • OR - if at least one input is true, output true.
  • Contains - if input A contains input B, output true.
  • Greater Than - if input A is greater than input B, output true.
  • Less Than - if input A is less than input B, output true.
  • Match - if string A matches the regular expression stored in string B, output true.
  • Is Null - if the input is null (e.g. a form control is empty), output true.

In addition, we've added some "IF statement" conditional nodes for each data type, which effectively operate like this:

IF the input boolean is true THEN output value1 ELSE output value2.

For example, ­the Number conditional node will output one of two input numbers, depending on whether the input boolean is true or false.

These new conditionals provide a massive boost to the power of expressions, enabling you to weave potentially complex logic into the behaviour of your item forms. For a complete list of node types, see Alloy Help.

Optimised drag sensitivity ⏺️ ➡️

We've recently been experimenting with the sensitivity of drag-and-drop in Alloy Web. That is, how long do you need to select and hold something before you can drag it (such as controls in the Item Form Builder)?

Everyone has a different feel for this, so it can be tricky to find a level that most people are comfortable with.

We think we've got it tweaked just right now. However, if dragging things doesn't feel right to you, please contact Support with your feedback.

Automatic map refresh for filtered items on Mobile 🗺️

In Alloy Mobile, you can filter tasks according to their status and whether they're assigned to you or your team. 

To update the map accordingly, so that it only displays the filtered tasks, you had to select the Search Here button.

Now, the map refreshes automatically whenever you change the filters, to ensure that you're always looking at the correct items.


Alloy August 2023 Update

This month sees the addition of some highly requested quality-of-life improvements, along with more node types for the Item Form Expression Builder. The update took place during the evening of the 31st August. For a full list of changes in v2.50, please visit the Alloy Changelog.

Turn off all layers 🗺️

Alloy lets you create any number of layers and layer styles, providing you with limitless ways of overlaying different items on the map. Therefore, many organisations have crafted hundreds of custom layers to represent their item data in various ways.

Sometimes, you want to clear the map to focus your attention. Previously, this meant having to scroll through all those layers in the Layers panel, turning off the enabled ones as you go. This could be a real hassle in large organisations.

But no longer! We've added a button to the action bar that lets you Turn off all layers. Bam, the map is now empty and ready for you to enable just the layers you want to see.

Improved sorting in Data Explorer ↕️

When viewing a query in the Data Explorer, you can select any column header to sort the results by that attribute.

Previously, after selecting a column header once, it wasn't possible to unsort the results again.  Selecting the column header would only switch between Sort ascending and Sort descending.

Now, selecting the column header a third time will cancel the sort.

New Date and Date Time expression nodes 📆 🕘

In May, we released the Item Form Expression Builder, to help you harness the power of codeless expressions and make your item forms responsive to user input. We're continuing to expand this feature by adding more node types.

This month, we've added two new sets of Date and Date Time node types to the top bar. Broadly speaking, they let you:

  • add unit values to a date/time
  • subtract unit values from a date/time
  • construct a date/time from multiple unit values
  • calculate the difference between two dates/times
  • extract a unit value from a date/time

This makes it possible for item forms to generate and display dynamic dates and times.

For example, imagine a Highway Jobs item form that automatically populates the Target Time attribute with a value 14 days from now. It could even apply different increments depending on the selected Priority value!

This would give the user immediate feedback on when the job is expected to be completed.

New "Is Triggering" expression node 🔫

We've also added a new global node type to the Item Form Expression Builder.

The new Is Triggering node checks whether the expression was triggered by the selected control property (or Alloy global variable) and outputs a corresponding boolean value.

In other words, this lets you create an expression that can produce different final outputs depending on how it was triggered. This adds a whole new dimension of conditional behaviour to item forms!

For example, imagine an item form with a Checkbox control and two Number controls. The Checkbox's Value property targets an expression that outputs "true" when the Value properties of the two Number controls are equal. However, thanks to an Is Triggering node, the expression can only output "true" when the second Number control is updated. 

Now available in French 🥐

Alloy has been translated! If your web browser's language is set to French, Alloy will now automatically display in French. Où est la bibliothèque?

Fun fact: Alloy is also available in Dutch, German and Spanish 😮

Warning when replacing data ⚠️

When configuring an import in Gateway, you can set it to operate in Replace mode. This will delete all items in the selected design before replacing them with the import items.

This wasn't made clear enough previously, so we've revised our documentation and Alloy will now display clear warnings when selecting Replace and again before the point of no return.


Optimised asset creation on Android ⚡

In Alloy Mobile, you can register new assets while out in the field. Naturally, this involves choosing the design of the asset you want to create.

Previously, the app would list all the asset designs in your organisation. As this typically ranges in the hundreds, you'd often end up doing lots of scrolling to reach the one you want.

Now, the app will only list the asset designs that you have permission to create, resulting in a shorter list that's easier to select from.


Show Previous EntriesShow Previous Entries