The XRay.Tech Blog

XRay automated Journey's onboarding process for faster, more reliable results and a consistent source of truth.
View all
Category one
Category two
Category three
Category four
Filter by category
Filter by tools
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Showing 0 of 100
July 15, 2024
How to Create and Reference Data Stores in Make (Integromat)

When you’re building Make scenarios, the prebuilt integrations don’t always retrieve all the data that you need. If you want to supplement your automations with some lookups for extra information, you can easily do it with Make’s “data stores” feature. 

In this post, we’re going to show you how it works. 

We’ll begin by creating a data store in Make. Then, we’ll demonstrate how to retrieve, create, and update information from a data store in an automated scenario. 

At the end of the post, we’ll also share an alternative lookup method that can be more useful if you’re automating your work with both Zapier and Make. 

To follow along, just sign in to Make. Data stores are available on every subscription level, including free plans. 

How to create a data store in Make

To create a data store in Make, open up the app and click on the “Data Stores” option on the left-hand menu. 

If you don’t see the “Data Stores” option, click on “More”, then select “Data Stores”. 

To make a new data store, click on the “Add data store” button in the top right corner.

Adding a new data store in Make

In the window that pops up, you can give your data store a name, choose its size, and give it a structure. 

Initial options for configuring a new data store

Your maximum data store size will depend on your subscription level. On the free plan, you’ll be limited to just 1 megabyte.

When you click on “Create a structure”, you’ll be able to add fields to your data store. When you create a structure, you’re just defining the fields that will be present in the table, such as “Full Name.” You’re not going to enter the actual data yet, like “John Smith.”

Creating a data structure for a data store

To add a new field to your data store, click on “Add item” under “Specification.” 

Initially, you’ll see three fields to fill in here: “Name”, “Type”, and “Default.” If you enable advanced settings, you’ll also see a “Label” field.

Data structure configuration options

A field’s Name represents the programmatic name of the field. This is the text that Make will look for or return whenever it references this field. If you change the name of a field in your data store, you’ll need to make sure that you update any automations that reference that field.

Data structure configuration - giving an item in a name

The label is an alternative title for the field that’s primarily intended for people to read. It’s often better to keep the name of each field constant and just update the label if you want to change what the field’s called.

Data structure configuration - giving an item a label

Under “Type”, you can select the data type that your field will accept, such as “Text” or “Date.” 

Data structure configuration - choosing an item's type

In “Default”, you can specify a default value for the field. Note that this option won’t be available for every field type – for instance, it’s not present for “Date.”

Data structure configuration - choosing an optional "default"

You can add several items to create as many fields as you want. Note that in addition to all of the custom fields that you specify here, every data store will also have a field called “Key”, which is meant to be used as a unique identifier for each record. 

Once you’re done, click on “Save” to close the field configuration menu.

Saving a data structure

Then click “Save” again to create your data store using the chosen structure.

Saving a data store

How to manually add records to a data store

To add records to your data store manually, hover over it and click on “Browse” to open the data store. 

Clicking "browse" to view and edit a data store

Then, click on ‘Add’ and fill in each field. 

Clicking "Add" to manually add new records to a data store

Once you’re done adding records, be sure to click “Save” to commit your changes.

Saving edits to a data store

Look up data store records from a Make scenario

Once you’ve created a data store, you can use Make scenarios to automatically find, add, and update records in it. However, you can’t trigger automations to run when you add or update a record in a data store.

Available automated actions for data stores in Make

To automatically look up records in a data store from a Make scenario, add a new module to your scenario, and search for “Data store.” 

In the “Data Store” module, select “Search records.” 

Choosing the "Search records" action

Then, pick the data store you want to search in.

Selecting a data store to search in

Choose the field that you want to search within, and provide a value to search for. You can also specify a sort order for the search results here. 

Choosing a field to search in and a value to search for

When you run this module, you’ll see any matching records that were found in the data store.

The results returned by the data store search action

Then, you can use that data in any subsequent steps in your automation. As usual in Make, the value in each field will be returned as a separate variable.

Using the data retrieved by the search in subsequent actions

Create and update records in a data store

There are a couple of different ways to automatically create records in your data stores, but the most efficient and flexible options will usually be to use the “Update record” option. 

Selecting the "update records" action

With “Update record”, you can either update an existing record, or create a new one if it doesn’t exist yet.

Just specify the data store you want to use, and the key to search for. 

Entering an ID to find a record to update

Then, choose whether or not to create a new record if no match is found. 

Choosing whether or not to create new records if no match is found

Fill in every field that you want to update with the new value that will be entered.

Filling in fields for the updated or created record

If you leave a field blank here, then the contents of that field will not be updated when the scenario runs. However, if you’re using the “update” module to create records as well, you’ll probably want to fill in every field.

Once you’re all set, click OK to close the configuration window. 

When you run the module, you should see the record created or updated as appropriate.

An automatically created record in a Make data store

Operational Databases: an advanced alternative

Of course, data stores are certainly not the only way to do a lookup in Make, and frankly, they’re often not the best way. 

Instead of using a built-in feature like a data store, we’d often recommend using Airtable to create an Operational Database (ODb). With an ODb, you can store data for easy reference, control how your automations run, and share data with your team using interfaces.

An operational database in Airtable being used with a Zap

You can learn more about using an ODb with your no-code automations in this blog post. In the post, we give a brief overview of all the key benefits and use cases of connecting your automations to an Operational Database.

The post primarily demonstrates an ODb connected to Zapier, but the same principles apply to Make. In fact, one of the key benefits of using an ODb is that you can search the same database from several different automation providers. 

To learn more about designing workflow automations that leverage an ODb, you can also sign up for our Workflow Designer course. With over 2 hours of video content and activities, we’ll teach you how to design and implement automated workflows that support entire teams with techniques like an ODb.

Of course, an ODb may be overkill in some circumstances. If you just need a small set of data that likely won’t be referenced in many places, then the data stores that we’ve looked at today are a great choice.

Easily find, update, and create data in Make with data stores

With Data Stores in Make, you can quickly create a simple database that you can reference from any Make scenario. Once you’ve established the structure for a data store, you can add, update or delete records with a simple built-in module. 

If you’d like to learn more about Make, Zapier, and other no-code automation tools, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

July 8, 2024
A Better Way to Import CSVs into Airtable

If you’ve ever tried importing a CSV into an existing table in Airtable, you’ve probably run into a certain frustrating problem. 

While you can easily add data to most field types with a standard CSV import, you can’t map the imported data to your linked record fields, such as the linked “Owner” field pictured below. 

Attempting to map data to a linked record with a standard CSV import in Airtable

Fortunately, there’s another way to import CSVs into your tables, and it will let you add data directly into your linked record fields. 

All you need is an Airtable subscription and one free extension. In this post, we’re going to show you how it all works. 

We’ll demonstrate how to add the “CSV import” extension, and explain how to use it step by step. 

Just open up Airtable to follow along. 

Airtable’s “CSV Import” Extension

With the “CSV Import” extension, you can map data from a CSV to a linked record, even when you’re adding the CSV to an existing table.

The extension itself is free, but like all extensions, you will need to have a paid Airtable plan to add it to your base. 

Adding the extension to your Airtable base

To add the extension to your base, start by clicking on “Extensions” in the top right. On Mac, you can also press Cmd + Shift + backslash to open up the extensions panel. 

The extensions tab and shortcut in Airtable

Once the extensions panel is open, add an extension to your base. 

Adding an extension to an Airtable base

Search for “CSV import.” It should be the only result that appears. 

Searching for "CSV import" in the extension marketplace

You can click on the extension to view more details. For instance, you’ll be able to see that the extension is actually published by Airtable.

CSV import extension marketplace page

Click “Add Extension” to add the extension to your base. 

Just note that extensions are added at the Base level. The extension will immediately be available in every table in the base you have open, but it won’t be automatically added to other bases.

Once the extension is installed, you can use it at any time by opening up the extensions panel. 

Uploading a CSV with the extension

With the extension open, you can click on the table icon to upload a file. 

Clicking the icon to upload a file

After your file has finished uploading, you’ll have a few settings you can adjust to configure your import.

By default, the extension will import your data into the table you currently have open, but you can select another table if you'd like.  

Picking a table to import data to

Under “Settings,” you’ll see a few options: 

• Merge existing records if there are duplicates

• Skip the header row of your CSV

• Automatically create new “select” options when the entry doesn’t match an existing choice.

CSV import settings

Below these settings, you can easily map each field from your CSV to the appropriate field in Airtable. Just select the destination field from Airtable and pick a matching field from your imported CSV. 

Mapping fields in a CSV import

If your CSV field names match your Airtable field names, most should be mapped automatically, but you can adjust them as needed if they don’t get paired up correctly. 

And most importantly, you can map data from your CSV to linked records in Airtable, such as the “Owner” field in our example. 

As you adjust your settings, you’ll see a preview of your new records in this area to the right.

Preview records for a csv import

Once you’re done configuring your settings and field mappings, click “Save records” to add the new data to your table.

Your records will begin to show up immediately in the table, although large imports may take a little bit longer. 

Imported records in Airtable

You should also see that any linked record fields are filled in correctly for each new record, just like the “Owner” field in our example. 

Limitations of the “CSV Import” Extension: Formula Fields in Linked Records

Before we wrap up this tutorial, we just want to note that there is one key limitation if you’re importing CSVs into a table with linked records. 

If the table you’re linking to uses a formula for the primary field, then you won’t be able to add records to that linked table by importing new data. 

Let’s illustrate this issue with an example. 

Bill Thompson is listed as an “Owner” in one of the rows in our Google Sheet pictured below, which we’ll export as a CSV.

A Google Sheet that lists Bill Thompson in the "Owner" column

However, Bill isn’t in our “People” table in Airtable, which is what the “Owner” field links to. 

The "People" table in Airtable does not include a record for Bill Thompson

In the “People” table, the primary field uses a simple formula to concatenate the “First name” and “last name” fields.

The formula used to populate the primary field of the "People" table

When we import the CSV into Airtable with the extension, the “Owner” field for this record is blank, because it can’t find “Bill Thompson” in the “People” table. That record doesn’t exist. 

An imported record with a blank linked record field

It also can’t create a record for Bill Thompson, because data cannot be entered directly into a formula field. 

How to work around the formula field limitation

In circumstances like these, just make sure to import any necessary data into the linked table first. 

In this case, we’d want to import data into the People table before importing into the “Tasks” table. If we import a “Bill Thompson” record into the People table, then our imported records in the tasks table will be able to link to it. 

Importing data into the linked table first

This limitation with formula fields can be a little annoying to work around, but using the CSV Import extension generally works much better for adding new data to a table with linked records.

Better CSV imports with Airtable’s free extension

Importing CSVs into Airtable with the usual method has some frustrating limits. If you’re regularly updating a table with new data from a CSV, then you’ll definitely want to start using the CSV Import extension

It will let you easily add records to an existing table, and will even map directly to Linked Record fields, avoiding the hassle of converting your field types. 

You may also want to check out our Zapier or Make beginner’s guides to start setting up some automations instead. 

If you’d like to learn more about streamlining and automating your work in Airtable, Make, Zapier and other no-code tools, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
July 1, 2024
4 Free Workflow Automation Resources from XRay.Tech

At XRay.Tech, our goal is to help people automate their mindless work so they can create more time for the work that matters. 

We believe that everyone should be able to design the perfect way to work for themselves, regardless of their budget and background. 

In addition to offering long-term automation support to enterprise organizations through our CWO Membership, we also offer several ways for anyone to start automating their work for free. 

In this blog post, we’re going to share four of the tools and resources that we’ve built to enable everyone to research, build, and learn more about workflow automation. 


First, let’s take a look at XRay.Tools, a free automation search engine developed by our team at XRay. 

If you want to quickly research the automation capabilities of any web app, a quick search on XRay.Tools will show you everything you need to know. 

searching for an app on

You’ll see every available trigger, action, and search in Zapier, Make, Workato, Power Automate, and other popular automation providers. 

Reviewing triggers, actions, and searches in XRay.Tools

You can search for several tools at once, and save your search to a convenient, shareable tool belt that you can send to clients and collaborators. 

Copying a shareable link for a tool belt in XRay.Tools

Just go to to get started. 

XRay Workflow

Next, let’s explore a tool that anyone can use to share resources from around the web with a single convenient link. 

With XRay Workflow, you can save any URL as a link or an embed, including video URLs from YouTube. 

A YouTube video embedded in XRay Workflow

Your links will exist alongside any other text, documents, or even webhooks that you want to share on your custom board. 

A board with several pins on XRay Workflow

When you’re ready to send your board to clients, coworkers, students, or just anyone on the web, you can make your board public and copy the link. 

Copying a link to share an XRay Workflow board

With a single URL, you can compile and share dozens of links and helpful pieces of information in one place. 

To learn more and download XRay Workflow for free just to 

XRay YouTube Channel

Every week, we post no-code and low-code automation tips and tutorials to this blog. But we also post a companion video each week on YouTube. 

XRay.Tech's YouTube channel

On YouTube, you’ll get to see more detail in every tutorial as we walk through the entire process instead of just sharing key screenshots. 

If you’d like to see all of our tutorial workflows in action and get alerts for every new video, subscribe to the channel here and turn on notifications so you don’t miss a new way to save time. 

Workflow Designers on Slack

Finally, if you want to chat with some like-minded builders to share advice, tips, and horror stories, be sure to check out the Workflow Designer Slack community we’ve built. 

It’s a free community for no-code automation builders that we set up to give everyone a place to talk and share ideas. 

Click here to join Workflow Designers on Slack. 

Supporting no-code and low-code builders

Check out all the resources listed in this blog to learn more about workflow automation, plan your no-code builds, and compile links from all over the web into a single URL. 

And if you’d like to learn how XRay can help your company to automate your work and scale your processes, just reach out for a free consultation. 

You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
June 24, 2024
The 5 Best Free Automation Apps

Automating your daily tasks doesn’t mean you need to sign up for expensive software. With the right tools, you can boost your productivity and get rid of robotic work without breaking the bank. 

In this post, we’ll give you a rundown of 5 of the best free (or cheap) automation apps available right now.

While most of these apps can be accessed for no charge at all, many do offer additional features at an extra cost. 

This list will cover several use cases, so whether you want to automate personal tasks, your social media, or your business, there’s something here for you. 

Links to every app can be found in the companion XRay Workflow resources board for this post

Now let’s jump into the list. 

App #1: Simple Social Media and Mobile Automation with IFTTT

ifttt logo

What is IFTTT?

IFTTT stands for “If This, Then That”, and it's a tool that lets you automate your web apps and your mobile devices, including system settings on your Android or iOS phone. 

This app does not have a huge library of integrations compared to giants like Zapier, but it does offer great support for social media apps and mobile devices in particular. 

Example automated "applets" on IFTTT

What can IFTTT Do?

With IFTTT, you can build automations or “applets” that run whenever a specified event occurs. 

For instance, you could create an applet that shares every new update in an RSS feed as a post on a Facebook page. 

An RSS and Facebook applet in IFTTT

Or, you could build an applet that creates a new post on Twitter whenever you start streaming on Twitch, so all your followers can get notified immediately. 

A Twitch and Twitter (X) applet in IFTTT

Automating mobile devices with IFTTT

With its mobile automation tools, you can use IFTTT to do things like unmuting your phone whenever you get home.

You could also send an automated text to your family asking if they want anything whenever you arrive at the grocery store. 

That way, you can avoid making a second trip just for a single bottle of hot sauce. 

Limited support for business apps in IFTTT

IFTTT also offers decent support for some popular business apps, including Google Drive, Slack, Webflow, and Airtable. However, you’ll definitely find more integrations for this kind of software on automation providers like Zapier and Make. 

What are IFTTT’s limitations?

The biggest downside of IFTTT is that the free plan is rather limited. You’ll be stuck with 2-step applets only, and you’ll be limited to 2 applets total. 

IFTTT pricing

However, the paid plans that unlock additional applets and some premium integrations like Twitter start at only $35 bucks a year.  That's a little less than 1/10th the cost of zapier. 

If you need to automate your social media posts and your mobile devices, IFTTT is one of the cheapest ways to do it, and you can easily get started with the free plan. 

Get started with IFTTT

You can learn more and create a free account on IFTTT’s website.

App #2: Build Sophisticated Automated Workflows with Make

Make logo

Next, let’s take a look at the best free automation choice for businesses. 

This app is now called Make, though it used to be known as Integromat. A recent rebrand switched their color scheme from blue to purple and changed a few things behind the scenes, but it’s still the same app. 

At its core, Make is pretty similar to IFTTT, and even more similar to Zapier. 

What can Make do?

With Make, you can build automations – called “scenarios” here – that connect your web apps together. When an event happens in one web app, one or more actions will be automatically performed in your other apps. 

Example automated scenarios in Make

Make has about twice as many integrations as IFTTT, though it doesn’t have nearly as much support for Android and iOS device-specific automations.  

Instead, you’ll get access to a greater number of integrations with popular business and enterprise web apps, like Shopify, Hubspot CRM, and Basecamp, just to name a few. 

Available integrations in Make

You’ll also typically see much more advanced support on Make for apps that might also be on IFTTT, like Asana or Salesforce. 

Automated actions for Asana available in Make

Additionally, Make’s free plan is the most robust out of any comparable automation provider. You’re still limited to only 2 active scenarios, but unlike IFTTT or Zapier, Make will let you build multi-step automations without a paid plan. 

You can also access basically all of Make’s core features without paying a dime. Your two scenarios can connect data between a dozen different apps and run all the conditional logic that you want. 

Flow Control features are available in the Make free plan

Routers, filters, arrays, iterators and other features are all available to give you precise control over how your automations run. 

Make’s limitations

Compared with competitors like Zapier or IFTTT, Make can be a little challenging to learn, particularly for users with no coding experience at all. 

Additionally, while its current tally of almost 2,000 integrations is impressive, it’s still a long way off of Zapier’s staggering total of over 7,000 integrations. If you’re a strictly no-code builder and aren’t interested in dabbling with low-code Make may not be an ideal choice. 

Finally, Make’s free plan won’t be suitable as a long-term solution for automating your company’s work. If you want to start using several scenarios to automate your team’s work, you’ll need to start a subscription. 

That being said, Make is easily the best way to explore everything no-code automation can do for your company without any cost or commitment upfront, and it offers several affordable paid plans. 

Get started with Make

To learn more about Make and start using it for free, just explore Make’s website.  

#3: Automate Your Apple Devices with Shortcuts

Shortcuts logo

Of course, automation isn’t all about business, and it’s not all about connecting web apps together, either. Sometimes, it’s all about that little device that lives in your pocket. 

What is Shortcuts?

Shortcuts is a free utility available on every Apple device. It lets you run automated actions at the press of a button, or whenever specific trigger event conditions occur. 

Shortcuts primarily connects with native Apple software, but also integrates with third-party apps like Dropbox. 

What can Shortcuts do?

With Shortcuts, you can automate reminders, photo backups, and a whole lot more on your iPhone, iPad, Apple Watch, or Mac. 

For example, with Shortcuts, you can set up a Shortcut button that uploads the latest photo from your camera roll directly to your dropbox account. 

Uploading a photo to Dropbox with Shortcuts

You can also set up automated text messages that get sent out at a scheduled time, or turn off cellular data when you connect to your home wi-fi. 

Automatically turning off cell data with Shortcuts

Watch “15 iPhone Shortcuts YOU Requested” on YouTube

For a bit of fun, try using the meme builder template to quickly add text to any of your images and liven up your group chats. 

The "meme builder" Shortcut

To create a Shortcut, you can either build custom actions from scratch, or grab a premade Shortcut from Apple’s template gallery to get started quickly. 

The Shortcut gallery

Shortcuts Limitations

Shortcuts is an automation tool that’s easy to use, totally free, and it’s already installed on all of your Apple devices. 

The only real downside is that it has relatively few integrations and limited functionality when it comes to automating web apps, so Shortcuts is definitely not a good choice for automating the software you use for work. 

But all in all, it’s a great tool for automating reminders, personal tasks, smart home devices, and managing your photos and other media. 

Get started with Shortcuts

To get started with Shortcuts, just open up the app on your Apple device. The icon looks like this:

#4: Use Macrodroid or Tasker to Automate your Android Phone

If you like the look of Shortcuts but don’t have an iPhone or other Apple device, don’t worry. There are a couple of good Android alternatives to Shortcuts, which we’ll cover now. 

Let’s take a quick look at both Macrodroid and Tasker

What are Macrodroid and Tasker?

Both apps are very similar to Shortcuts, allowing you to automate actions in your phone’s software. 

However, unlike Shortcuts, these are third-party apps. You’ll need to open up the Google Play store to install them. 

Macrodroid is available to download for free, although you’ll need to pay a one-time fee of $7 to unlock unlimited macros, remove ads, and get some other functionality like cloud backups. 

Tasker doesn’t offer a free plan, but costs only $3.50 to download. 

What can Macrodroid and Tasker do?

As just a few examples of the kinds of automations you can set up with these apps, you can use them to start automatically playing music whenever you connect to a bluetooth speaker, set up advanced reminders and tasks, create a screen-recording button, and more. 

Automatically playing music when connected to bluetooth speakers in Macrodroid

Watch “How to Use Macrodroid 9” on YouTube

The biggest difference between the two apps is ease of use. 

Tasker has extensive functionality and lets you choose precise settings for every automation, but it’s not the most user-friendly experience. 

Tasker UI

Watch “Tasker 5.13 - Scenes+” on YouTube

You’ll definitely need to check out some tutorials to get started, but it does have a dedicated and helpful community that will gladly lend you a hand. 

On the flipside, Macrodroid is a much simpler app to use, with an interface that will likely be a lot more comfortable for most users. 

Macrodroid UI

Watch “Tasker Too Complicated? Give MacroDroid a Try” on YouTube

Whichever you choose, you’ll be able to streamline all sorts of tasks and actions on your Android device. 

Tasker and Macrodroid Limitations

The biggest downside to both Tasker and Macrodroid is that they’re strictly Android apps. You won’t be able to use the apps on a PC or Mac to automate your work there as well. 

Get started with Tasker and Macrodroid

You can learn more about both apps and download them on their respective Google Play Store pages:

Tasker on Google Play Store

Macrodroid on Google Play Store

#5: Explore self-hosted automation with N8N

Finally, we’ll wrap up this list with an automation tool for the most tech-savvy builders out there: N8N.

What is N8N?

N8N is an open-source automation provider. It works similarly to Zapier, Make, or IFTTT, and it also offers some standard paid subscriptions just like those apps. 

What can you do with N8N?

In N8N, you can build automated workflows that are comparable to what you might build in Zapier or Make. 

However, what makes N8N stand out from the competition is that it also offers a unique self-hosting option. 

This is available for both their Enterprise implementations, and for their free Community version. The community version of N8N is available as a Github repository.

Self-hosting on N8N

If you’ve got some technical knowledge and you’re looking to set up automations that you have total control over, then N8N is a great choice. 

They only offer about 1,000 pre-built integrations, but they also include generalized tools for connecting to any app with an API. 

Integration and API options in N8N

Even if setting up your own instance is beyond your comfort zone, N8N’s paid plans can still often be much more affordable than Zapier or Make. Team plans with unlimited users start at just $20/mo. 

N8N pricing

Note that N8N sets their pricing based on completed workflow runs, rather than individual tasks or operations. If you want to build longer or more complex automations, this is a more budget-friendly approach. 

N8N limitations

Setting up your own self-hosted instance of N8N is not something most no-code builders will be familiar with. 

Additionally, many of N8N’s features like native support for JavaScript won’t be very useful or accessible if you’re not familiar with web development. 

However, making the jump from purely no-code tools to software like Docker or Supabase may be worth it for many users. 

Get started with N8n

N8N certainly won’t be for everyone, but if you’ve got the technical background, its unique pricing and self-hosting model might be exactly what you're looking for. 

To learn more about N8N and setting up your own instance, just check out N8N’s website

Automation tools for any budget

Automation can make everything in our lives easier, from streamlining dull tasks at work to helping us stick with healthy habits at home. With free and cheap tools like the apps we’ve outlined, anyone can start creating more time for the stuff that matters. 

For more automation tips and tutorials, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
June 17, 2024
Building Better No-code Automations with One Simple Technique

Are your Zaps just not zapping like you want them to? 

If you've dabbled in apps like Zapier and Make, you might have hit a wall trying to take your automations to the next level. As you try to move past simple workflows, you may be struggling to build automations that find all the data you need, and you may find that your Zaps or Scenarios end up becoming far too long and difficult to maintain. 

Fortunately, there’s a reliable technique that can untangle your automation woes and help you build better, more consistent workflows. It's all about diving into the world of no-code databases, particularly in apps like Airtable and SmartSuite. 

In this post, we're going to walk you through how leveraging an Operational Database in Airtable or SmartSuite can revolutionize your approach to automations, and will let you build systems that support multiple teams and departments. 

As we go along, we’ll share some real-world examples from our own workflow toolkit so you can see exactly how it all works. 

The problem: linear design

If you’re getting frustrated with Zapier or Make, you’re not alone. At XRay, we constantly hear from people who are struggling to connect their apps the way they want to with no-code automation providers. 

In many cases, we find that the issue comes down to one critical concept: linear design.

For new builders, it can be difficult to break out of a linear design pattern, especially since automation providers typically describe their product using this type of pattern. Most of the automation descriptions on Zapier and Make’s websites rely on a “When A, then B” format, like in the examples below. 

Simple automated workflows advertised by Zapier, Make, and IFTTT

However, this setup is just the beginning, and if you keep trying to use it for every automation, you’ll quickly find that it becomes limiting.

For example, let’s say you want to build an automation that creates a task in Asana (or any other task management app) whenever you add an emoji to a Slack message. 

Tip: if you'd like to learn how to add custom emojis to your Slack workspace, explore Slack's help docs here.

Adding a custom emoji reaction to a Slack message

Automatically created tasks in Asana

It’s easy enough to set up a trigger in Zapier or Make that watches for new emoji reactions, and filters for custom “team task” emojis. Then, you can add an action that creates a task in your preferred software.

A Zap that creates Asana tasks for emoji reactions in Slack

Unfortunately, the trigger doesn’t actually retrieve all the useful, dynamic data that might be needed when creating tasks. 

For instance, how do you reliably attach the task to the appropriate project? The title of the channel might be a good starting point, but the title of your “Marketing” channel in Slack might not exactly match your “Marketing” project in your task management app, so adding a search step based on this data won’t be a reliable approach. 

The Slack channel is called "xr_marketing"

The matching Asana project is called "Marketing"

A single mismatched hyphen or underscore could prevent the automation from working correctly. 

Zapier can't find a match since the names aren't identical

And what if you want to automatically create tasks from multiple sources, like email or forms? If you want to avoid building redundant automations, you would need to mess around with things like Sub-Zaps or Webhooks, which can get a little complicated.

The solution: supporting your automations with an Operational Database (ODb)

There are many ways you could potentially solve automation design problems like these, but in our experience building no-code automations for our members and for our internal team, there’s one technique that consistently stands out.

The trick is to connect all of your automations to what we at XRay call an “Operational database,” or ODb.

While this term might sound like technical jargon, a well-designed operational database is arguably the single most important asset you’ll create as you’re building automations in the long term.

It will enable automations that support your entire team with the dynamic data that Zapier, Make, and other similar platforms struggle to find on their own. 

We’ll show you how it works and how it can fix all of these problems we’ve outlined and more.

Using an ODb to store and retrieve any data

Below is an example ODb that we could use to support the Task Creation automations we’ve described.

A simple Operational Database (ODb) in Airtable

This is a pretty simple no-code database built in Airtable, which is what we typically use at XRay, although you can also accomplish something very similar with SmartSuite. 

This database is a repository for all of the information that our automations use. We can match usernames to their emails and IDs in various apps, their job role, and a lot more. That way, we can create truly dynamic automations that suit an entire team instead of just an individual.

We can assign tasks or send messages to anyone with a single automation that searches for a record in this database, because all of the info we need is present. 

Integrating an ODb into automated workflows

Now, let’s take a look at some updated automations that connect to this ODb instead of using a standard, linear design.

By supporting the automations with an ODb, we can make sure that every task is assigned to the right person and connected to the right project.

In the “people” table, we’ve stored the names of the custom emojis that represent each team member, as well as their IDs in Slack and Asana.

The ODb contains Slack emojis and Asana IDs for every team member

After the automation is triggered by a new emoji reaction in Sack, it searches in our Airtable database for a matching emoji name, which is guaranteed to find an exact match. 

An Airtable search step matches emoji reactions to the right Asana ID

The Asana ID found in this Airtable record can then be used to assign the right task. When a “mattj” emoji is added to a Slack message, this search step will find Matt J’s Asana ID. When a “tom” emoji is added, it will find Tom’s Asana ID, and so on. 

The assignee and project ID are designated dynamically

Dynamically selecting an Asana project with an ODb

With an ODb, you can use largely the same process to attach the task to the right project in Asana. The table pictured below lists all of the projects at the company, and includes their exact names and IDs in Slack and Asana. 

An Airtable search step matches each Slack channel to the right Asana project ID

With this information, we can be confident that lookups will always work correctly. 

Using an ODb as an advanced lookup table

With an Operational Database, you don’t just go from App A to App B. You can search in the database for any data you need, send it to other apps, and update the database with the latest information. 

When you use an ODb, you don’t need to worry about necessary data missing from a Zapier trigger, action, or search. Just store any data you need in your ODb to conveniently access it whenever you want from any automation.

Additionally, by leveraging linked records in your ODB, you can associate data in one table with data in another table. Even as you add more and more information, you can keep the whole database neat and organized with one table for “People,” one for “Tasks,” one for “Projects,” and so on. 

Linked records surface the right data while keeping your database organized

You don’t need to worry about a given Zapier trigger or action not having the right data, because you can find it all with a simple search step for the right record in your database. 

And unlike a simple lookup table in Zapier, you can refer to this database from any number of automations, on any number of automation platforms, and include as many attributes as you want. Plus, you don’t need an expensive subscription like Zapier Tables just to put this database together.

Controlling automated activity and building modular automations with an ODb

However, an Operational Database is more than just an advanced lookup table. With views and filters, you can use an ODb as a control center for your automations.

For example, one useful aspect of an ODb in Airtable is that you can launch automations whenever a record enters a specified view or meets certain conditions.

A filtered view in Airtable controls when automations run

This is a very flexible automation trigger that gives you a lot of options for controlling your workflows, and can help you to build modular automations that avoid redundancy. 

For instance, if we wanted to expand our task creation automation and establish multiple ways to create tasks, we could use our ODb to create a system that funnels data from several sources to a single endpoint. 

Our main task creation Zap, pictured below, triggers in Zapier whenever a record enters the “Create Task” view in our database. 

A simple three-step automation creates Asana tasks out of Airtable records

So whenever we want to add a new method for creating tasks, we don’t need to add steps that create the task every single time. 

All we need to do is get the information into Airtable, and then the main automation that we already built will take over. 

This means that we can have one automation that collects data from Slack, one that collects data from a form, and one that collects data from an email inbox.

Three separate sources funnel data into Airtable to create tasks with the same automation

They all send their data to Airtable, which launches a single automation that actually creates the task. 

This is a much more scalable, maintainable approach than building three fully separate automations, and you don’t need to mess around with sub-Zaps or webhooks to do it. 

Additional benefits of using an Operational Database

In addition to all of the advantages that we’ve described so far, you can also use your database to create indefinite delays, as we demonstrated in this earlier Zapier tutorial.

With an ODb, you can also create several smaller automations that run on demand, or transform data however you want with formula fields, and much more. 

We can’t cover every feature and benefit in a single blog post, but if you’d like to learn more about designing scalable and dynamic automations with an Operational Database, you can sign up for our Workflow Design Course. 

Going beyond linear design to build better automations

Building simple, straightforward automations in Zapier or Make is a good way to get started, but creating great automated workflows requires a bit more. It's all about thinking beyond the linear and embracing the power of a well-crafted database.

With an Operational Database in Airtable or SmartSuite, you can get all of the data you need in one place to build dynamic automations that support entire teams. You can control when each automated action runs, and you can avoid creating redundant automations that all do basically the same thing. 

Essentially, with an Operational Database, you can build complete systems instead of just building automations.

If you’d like to learn more about designing and implementing automated workflows with no-code tools, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

News and Updates
June 10, 2024
Everything you Need to Know About ChatGPT’s New Google Drive Integration

Since bursting onto the scene in November 2022, ChatGPT has been making consistent updates. 

In this post, we’re going to take a look at one of the latest features – a direct integration with Google Drive. 

OpenAI has been rolling out the Google Drive integration over the last few weeks, and it’s now available to all ChatGPT users – including users with free plans. The integration allows you to upload files directly from your Google Drive into your ChatGPT conversations. 

Once you’ve uploaded the file, you can ask ChatGPT to do whatever you want with the file. You can summarize it, translate it, describe it, or even rewrite it as an epic poem. 

We’ll show you how to get started with the new integration, and give you a few examples of what it can do. 

How to use the Google Drive Integration in ChatGPT

To begin, just click on the file (paperclip) icon next to the chat window. 

The "attach files" button in ChatGPT

Then, choose the new option that reads “add from Google Drive”. 

The "Add from Google Drive" option in ChatGPT

You’ll need to sign in with a Google account and authorize ChatGPT to access your Drive before you can proceed. 

Once you’re signed in, you’ll see a familiar portal where you can browse or search for any file that you want to send over. 

TIP: Wait for your file to appear as a suggestion rather than clicking on search. As we were testing the new feature, we generally found that Google Drive placed more accurate and consistent search results in the dropdown that appears underneath the search bar. Actually clicking on the search icon would typically turn up several bad matches, and often wouldn’t include the file we were looking for. 

The Google Drive modal in ChatGPT

Click on the file you want to upload to ChatGPT, and the file will start loading right away.

A file inserted into ChatGPT from Google Drive

Then, enter any prompt you want, and send your message to ChatGPT as usual. 

A prompt and response in ChatGPT including a Google Doc

While this update isn’t a revolutionary change to ChatGPT by any means, it definitely adds some real convenience if you do most of your work in Drive. 

It’s a lot quicker to attach a file directly than to open it in Drive, download it to your computer, and re-upload it to ChatGPT. 

What file types does the Google Drive integration in ChatGPT support?

ChatGPT can view and analyze text documents, slide presentations, images, and video files. However, based on our most recent tests on 06/04/24, the AI encounters several errors and has pretty limited functionality when it comes to video files. 

Try using the ChatGPT to extract key insights from your docs, create new iterations of your images with DALL-E, or suggest speaker notes in your presentations. 

Additionally, ChatGPT can only extract text from Slides presentations. If you want ChatGPT to take a look at any of the images in your deck, you’ll need to upload them separately. 

What are the limitations of the Google Drive integration in ChatGPT?

The Google Drive integration can read and analyze the files that you add to your conversations, but it cannot create or edit files directly in your Drive. Sending ChatGPT a prompt like “Create a file in my Google Drive called ‘Example Doc’” won’t work. 

It also can’t search for files on your behalf, so a question like “is there a file called ‘Example’ in my Drive?” won’t return a helpful answer. 

Instead, its features are limited to reading and interpreting the files you choose to share with ChatGPT directly. 

Integrating AI into routine workflows

For many of us, ChatGPT has become an essential part of our daily work, so integrations with apps like Google Drive are a natural fit. 

It’s not an earth-shattering change, but it’s a nice little update to be able to upload files directly from Drive into ChatGPT, and it’s hopefully laying the groundwork for a more robust integration to follow. 

If you’d like to learn more about saving time with AI and workflow automation, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

June 3, 2024
Automatically Export Gmail Messages to Sheets with Zapier

With tools like Zapier, it’s easy to export new emails to Google Sheets for better analysis. However, the best process for exporting existing emails isn’t always so obvious. 

Today, we’re going to show you how to automatically send data from any Gmail message to Google Sheets by just adding a simple label. This will let you send over any data you want from your messages, like the subject, sender, and body, or even attachments. All you’ll need are accounts in Google and Zapier. 

Attachments or no attachments: your choices for this tutorial

Let’s begin with a quick overview of how the finished automation works. 

The automations in this tutorial consist of two separate Zaps: one for emails with no attachments, and one for emails with attachments. 

We’d normally try to do this all in one automation, but there’s a special Gmail trigger for new attachments which is very useful for uploading each attachment individually without messing around with loops, custom scripts, or other advanced options. 

However, since the “new attachment” trigger obviously won’t work for emails without attachments, we’ll need a separate automation to handle them. 

With both of these automations, all you have to do is apply the appropriate label to an email in Gmail.

Inbox with the Send to Sheets label being selected

Then, that email’s data will be sent over to Google Sheets. 

GSheets that will be receiving email data

If the email has attachments, they will be automatically uploaded to a folder in Google Drive, and that folder is added to the email’s row in Sheets. 

Google Drive folder where Email Attachments are located

The Zap that doesn’t include attachments is only a 2-step, which means it can be built and used on a Zapier free plan. 

Conversely, the Zap that handles multiple attachments is a 4-step Zap, so it won’t work on a free plan. You can build it in the editor, but you won’t be able to turn it on. If you’re limited to a Zapier free plan, we’d recommend using the first Zap only. 

That’s how the automations work in a nutshell, but let's take a closer look and break down both Zaps step by step. 

Transferring emails to Sheets: No Attachments

We’ll start off with the simpler option. This is an automation that will work great for sending email data to Google Sheets, but it won’t work so well for sending attachments. 

On the other hand it’s only a 2-step Zap, so it will work on a Zapier free plan. 

Trigger: New labeled email in Gmail

Add a Gmail trigger to your Zap and choose “New labeled email” as the event. 

A "New Labeled Email" trigger event in Zapier

Using the “New labeled email” trigger will give you more direct control over which emails you export to Sheets and when you send them. If you use a standard “New email” trigger instead, every new email will be sent by default. 

With this trigger, you can label new emails or historical emails whenever you’d like to send them to Sheets. 

Select the label that Zapier should watch for. You’ll likely want to create your own custom label in Gmail first, then apply it to an email so you have test data. 

The label you will trigger the automation on "⚡️ Sheets: No Attachments"

Once you’ve chosen the label to use, give your trigger a test. In the test data, you’ll see a huge quantity of data retrieved from the sample email – all of which can be sent to Sheets or other apps if you’d like. 

Sample Trigger Data of the Email

However, in most cases, you’ll just want to send over a few data points like Body, Sender, Subject, Date, etc. 

Action: Find or create a new row in Sheets with “Lookup spreadsheet row”

Create a spreadsheet in Google Sheets where you’ll store your email data. Be sure to include a column for each data point you want, as well as a unique identifier for each email. We’d recommend using “Message ID” as the identifier. 

Spreadsheet with Columns of different fields of the email to be logged

Add an action to your Zap and choose Google Sheets as the app. Select “Lookup spreadsheet row” as the event. 

Lookup Spreadsheet Row Event Action

This might seem like an odd choice, but the name of the event doesn’t tell the whole story. “Lookup spreadsheet row” is essentially two actions in one. It will start by searching for a row, as the name suggests. 

Lookup Spreadsheet Row Event Action

However, if it doesn’t find a matching row, you can configure the step to create a new one. You’ll have all the same options as usual to map any data you want to each field. 

The Action to map the email fields to a spreadsheet

Just make sure to check the “Create Google Sheets Spreadsheet Row if it doesn't exist yet?” box to enable this option. 

Create Google Sheets Speadsheet Row checked

Using the lookup step is an elegant way to avoid duplicates without having to add extra steps to your Zap. 

NOTE: We’d recommend searching for a unique identifier for each email, such as the “Message ID”. If you use something like “Subject” instead, the Zap won’t work correctly if you have two emails with the same subject line (which is quite likely). 

Testing the Zap

Once your Sheets step is configured, your automation is all set. Turn it on, publish it, and give it a test by adding your designated label to an email in your inbox. 

Label an Email with "⚡️Sheets: No Attachments" highlighted

After adding the label, you may need to wait several minutes for Zapier to check your inbox for new labels. On the free plan, Zapier only looks for new data every 15 minutes. On higher tiers, you can expect to see new data processed within five minutes. 

After waiting an appropriate duration, you should see data from your email appear in Sheets, just as in the image below. 

New data from the automation in the GSheet

Transferring emails to Google Sheets with attachments

Next, let’s take a look at the second Zap, which is designed to export emails with attachments. Since this Zap has 4 steps total, it won’t work on a free plan, but it’s still easy to set up. 

Trigger: New Attachment in Gmail

To begin, create a new Zap and add a Gmail trigger. Select “New Attachment” as the event. 

Gmail trigger of New Attachment selected in Zapier

“New Attachment” is a unique trigger. Unlike most other email triggers, it will make the following Zap run for every attachment in a new email, not for each new email. 

For example, if you receive a new email with 3 attachments, then this Zap would run 3 times.

This functionality can be very useful for processing an arbitrary number of email attachments, but it does carry the risk of duplicating or overwriting data if the subsequent actions aren’t configured carefully. We’ll use a “Lookup” step once again to avoid these potential issues. 

If you’d like, you can also filter this trigger to only apply to emails with a designated label, or any other search criteria you want to apply. 

Once you’ve set up the trigger and its filter to your liking, give it a test to pull in some sample data. 

Be sure to have an email in your inbox with at least once attachment that you can use as test data. 

A new email in an Inbox

Action: Find or create a folder in Google Drive

In the next action, the automation will either find an existing folder in Google Drive where it can store the attachments, or it will create a new one. 

This action will work very similarly to the “Lookup row” action we used in the first Zap. 

Add a new action to your Zap, and choose Google Drive as the app. Select “Find a folder” as the event. 

Provide a name for the folder. Make sure to use unique, dynamic data again to ensure that each folder’s name will be unique. In our example pictured below, we’ve combined the Message ID with the email’s subject line to create a unique name for each folder. 

A GDrive Find Folder with fields mapped

Choose the parent folder where this subfolder should be created, and check the box that reads: “Create Google Drive Folder if it doesn't exist yet?”

So if Zapier doesn’t find a folder with a matching name, then it will create a new folder instead using the name provided. When you test the action for the first time, it should create a folder, since there won’t be anything for it to find yet. 

Action: Upload a file in Google Drive

Next, we’ll add a step to this automation that will upload each attachment to a folder in Google Drive. This will be the folder that is created or found in Step 2. 

Add a Google Drive action and choose “Upload file” as the event. 

An Upload File in Google Drive Action selected

To configure this action, you just need to pick which folder to upload your file to, and the file you’d like to upload. 

For the file, choose “Attachment: Exists but shown” from the trigger. The phrase “Exists but not shown” in a Zapier variable indicates that the variable represents a file, rather than a link or reference to a file. 

File field mapped with the Email Attachment Field

Optionally, you can also provide a new name and extension for the file. However, if you just leave these fields blank, then the file will retain its original name and extension. 

Blank File Name and File Extension fields

Test the action after configuring your choices. 

Action: Lookup row in Google Sheets

Finally, the last step in this automation will add the email’s data to Google Sheets, along with a link to the Google Drive folder where you can find all of the uploaded attachments. 

Add a Google Sheets action, and choose “Lookup spreadsheet row” as the event. Just like in the simpler Zap, this step will let you find or create a row as needed with a single action. 

GSheets Action Lookup Spreadsheet Row selected

Choose the sheet you want to use (you can use the same sheet as before), and select a column to search by. Again, we’d recommend using a column that will have unique data for each row, such as Message ID. 

Once again, check the box that says “Create Google Sheets Spreadsheet Row if it doesn't exist yet?”

Make sure Create Google Sheets Row if it doesn't exist is checked

Then, map your email’s data to each column in your Spreadsheet. 

For the “Attachment” field, provide the URL of the Google Drive folder created in the previous step. You can find this in the “Alternate Link” variable. 

The Attachments Field  with Alternate Link from Step 2 checked

Linking a single folder will be much easier than adding a link to each attachment individually. 

Once you’ve configured and tested this step, your Zap will be all set, and you can turn it on and publish it. 

How the “New attachment” Zap works

The “new attachment” trigger makes this a pretty unusual Zap, so let’s look at an example to explain how the whole thing works. 

Let’s assume you’ve received a new email in your inbox with four attachments, and you’ve added the “Send to Sheets” label to that email. 

The Zap will run once for each of the four attachments, but because of our “Lookup” and “Find” steps, it won’t perform exactly the same actions each time. 

First run

For the first attachment in a newly labeled email, this Zap will proceed to Step 2, where it will create a new folder in Drive to store the email’s attachments. 

Then, it will upload the first attachment to that folder in Step 3. 

Finally, in Step 4, it will create a new row in sheets with the email’s info and a link to the attachments folder in Drive. 

Additional runs

For every subsequent attachment in that newly labeled email, the automation will find the folder that already exists in Step 2. It will not create a new folder for attachments 2-4. 

In Step 3, it will upload the attachment that it’s currently processing to the right folder. 

Finally, in Step 4, it should find the spreadsheet row that it created for the first attachment, and will simply leave that spreadsheet row unchanged. 

Testing the “New attachment” Zap

To see it all in action, give the Zap a live test. 

Add your label to a new email with a few attachments. To make things clear, it’s best to use a different email than the one you used as test data while building. 

Inbox  with the "⚡️Send to Sheets label" checked

Wait up to 15 minutes (based on your Zapier plan), then check for your new row in Sheets. 

Exported Emails Sheet with new data

You should see it added to the bottom of the spreadsheet, and it should include a Drive link where you can find its attachments. 

Folder where Attachments are located

After giving it a test, this automation will be all set. 

Be aware of your Zapier task limits

Before we wrap up, we just want to give you one quick warning: 

Always check your task limits in Zapier before mass exporting data!

Sending 1,000 or more emails to Sheets could easily use up your month’s tasks in a single day. 

When you sign in to Zapier, you should see your task usage and limit in the bottom left corner. 

A view of Zapier's Task limits

Analyze your emails efficiently in Google Sheets

Putting your emails into a convenient spreadsheet makes it much easier to get the insights you need.  And with the simple Zapier automations we showed you today, you can send your emails over with just one click. 

If you’d like to learn more about automating software like Gmail and Google Drive, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

May 27, 2024
Instantly Create Google Slides Presentations with Make

With automated templates, you can create presentations, reports, and other slide decks faster than ever. By completing a quick form in Airtable, you can instantly create a Google Slides presentation populated with custom text and even images. 

In this post, we’re going to show you how it all works with a simple 3-step automation in Make, formerly known as Integromat. All you’ll need are free accounts for Google Slides, Make, and Airtable (or any other form building app you want to use). 

Preparing your template in Google Slides

Create a presentation

To begin, just create a presentation in Google Slides as normal. Note that you won’t need to upload this presentation as a template in Google Drive. Just make note of where the file is saved so you can identify it later in Make. 

Quick tip: enter “” in your URL bar or in a Google Search bar to instantly open up a new, blank presentation. 

Using "" to create a new presentation in Google Slides

Add variables to your presentation

Next, you can add variables to your presentation by enclosing text in two pairs of curly brackets.

A variable will act as a placeholder. When Make creates a new presentation from your template, it will copy the template as a new deck, and replace the variables with text or images from Airtable (or your other data source). 

In Make, you can use nearly any symbols and syntax you want for your variables as long as they’re enclosed in two curly brackets {{like this}}

However, we would generally recommend using “camel case”, where each word is separated with a capital letter instead of a space, hyphen or other character. This will ensure compatibility with other automation platforms like Zapier, in case you want to use them in the future. 

For example, your variables would look like this:



In the image below, you can see a finished Google Slides template with a few variables in curly brackets. 

A Slides presentation with variables that will be recognized by Make

Adjust placement for image variables

If you plan to replace any of your variables with images, you can still use a text field like with any other variable. 

Just note that the final placement of the image will be based on the placement of your variable. 

When the variable is replaced with an image, the image will be the same width as the text box you’ve drawn. 

An image variable in a Google Slides template

The top of the image will align roughly with the top of the text box as well, so we’d recommend drawing the text box for your image variable where you want the image to be. 

A finished view of the slide presentation with the image and variables completed

However, getting the exact right placement may take a little trial and error. 

Additionally, many effects that you’ve applied to the variable text will also apply to the final image. For instance, an image variable with “drop shadow” applied will also have a drop shadow on the final image. 

Selecting Formatting Options with Drop shadow enabled

Once your variable tags are all set, it’s time to create a form in Airtable

Use a form to generate new presentations

Create a form in Airtable or another app

In Airtable, or in any other app that you want to use that supports forms, create a form with a question for each variable that you added to your slide deck. 

You could also use apps like Tally, Typeform, or Google Forms. However, the automation that we demonstrate in Make will use some Airtable-specific settings. 

If you're new to Airtable and would like to learn more about using the app, you can check out our beginner's guide here

Prepare a table as the basis for your form

In Airtable, you can make a form by simply creating a form view for any existing table. When you do that, every field in your table will become a field in the attached form view. 

So to begin, just create a table with a field for each variable in your presentation template. Be sure to choose appropriate data types for each field. 

In our example pictured below, most of the field types are “text”. 

Airtable Fields in the Presentations Table with one entry filled.

However, we have included one field called “Image”, which is an “Attachment” field type. That will allow us to upload an image to the field. 

The Image field should be an Attachment

You'll also note that we've included a “created time” field. This is a necessary field whenever you're trying to automate Airtable with Make. 

A created Time field is important to trigger for Make

This field will be automatically populated with the date and time when each record was created. Since Airtable fills it in automatically, this field won’t be included in the form.

Create a form view

Once all of the fields in your table are ready, you can create a form view. Just click on “Form” in the bottom left-hand corner. 

Creating a Form View in Airtable

All of the fields from your table should be added as questions in the form, except for any formula fields like “Created Time”. You can customize the form with a title and description, and change the title for any field. 

A Form View in Airtable

Once your form is all set, click on “Open form” to view the form in your browser. Then, fill it out to create test data.

Filling out an Airtable form

Creating the automation in Make (Integromat)

To create an automation for generating Slides presentations from a template, go to and sign in.

If you don’t have an account yet, you can create one for free. 

You can also check out our Make beginner’s guide to learn the ropes. 

Once you’re signed in, create a new scenario. 

Configure the trigger: Watch Records in Airtable

Choose Airtable as the app for your trigger module. Then, pick “Watch records” as the event.

Watch Records trigger in Make

Sign in to Airtable to authorize Make if you haven’t already. Then, choose the correct base and table to watch. In our example, we’ll watch the “Presentations” table for new records.

Select the Base and Table to look for Records

For the “Trigger field”, you need to pick a field with date-time data that Make can use to sort your records. That lets it determine which records were created most recently, and this is why we made the “Created time” field earlier. 

Watch the Created Time field

For “Label”, pick a field to use as the label or title for each record. You can pick any one that you want. 

Select the Field you want to use to identify the record

In the “Limit” field, you can set the maximum records that the automation will retrieve each time it runs. You can set this to whatever you’d like. 

Once your trigger is configured, click “OK”. Then, test the trigger. 

After testing your trigger, you can click on the number that appears over the module to see the data it retrieved. 

In our example, we can see that the trigger successfully retrieved our test data about Paris. 

Test Data for the Airtable Trigger

Create a new slide deck and replace text variables

Next, add a new module to your scenario. Search for “Google slides”, and choose “Create presentation from template”. 

Sign in to your Google account to authorize Make.  

Add List Presentations in Google Slides as the module

Then, provide a title to use for each new presentation. Be sure to include some dynamic data to make sure the names for each presentation are unique. 

Map the Variables from the Trigger into the appropriate Google Slides fields

Identify the presentation you want to use as a template. 

Select the Presentation you wish to use with the dropdown from Presentation ID

Once you choose it, all the variables in your deck will appear under the “Values” section.

The Template variables will appear below

Map your Airtable form data to every field, except any image variables. You’ll need a separate step to fill in those, so just leave them blank for now.

Fill out variables with fields from Airtable trigger.  Click to choose a folder for the New Documents Location

Next, pick a Drive folder to store each new presentation in. 

The location will be where you want the final presntation

Once you’ve finished configuring the module, click “OK”. Now you can test your whole scenario again.

After testing, open up Google Drive to check the newly created deck. You should see all of your text variables replaced with your test data. 

First slide of the finished Presentation

Any image variables will remain unchanged, but that’s fine. 

Second slide of the finished presentation with the image variable still empty

Next, we’ll show you how to add one last step to this automation to fill in the image variable. 

Add images to your slide deck

Go back to your Make scenario, and add a new module. Search for “Google Slides” and choose “Upload an image to a presentation”. 

A new Google Slides module with Upload an Image to a Presentation

For “Presentation ID”, enter the Presentation ID retrieved in the previous step, not the ID of the original template. 

Presentation ID being mapped with the Presentation created previously

Under “Select the Method”, you can stick with “Upload an Image by Replacing Text Tag”

Select the Method to upload the image as "Upload an Image by Replacing Text Tag"

In the “Values” section, add a new item. 

Variables will not load automatically click "Add Item" below Values

In the “tag” field, type your image variable’s name, without any curly brackets. For our example, we’ll just enter “image” here. 

In the image URL field, enter the URL of the image you want to upload.In our example, we’ll select the “Image URL” data retrieved from Airtable. 

Fill out the "Tag" field with "image" and the "Image URL" field with the Image URL from the Airtable step

If you have several image variables, you can create additional items here for each one. Once you’re all set, click “OK”.

Testing the complete scenario

Now you can test the scenario one more time. As always, check Google Drive to ensure that the presentation was created correctly. 

In our example, we can see that all of the text variables have been filled in just like before.

First Slide of finished presentation

However, with the final step added, the image variable has also been replaced.

The second slide of the finished presentation with the Image visible

You’re now all set to save this automation, turn it on, and start using it. 

Create presentations faster and enable easy collaboration

With automated Google Slides presentations, you can save time whenever you need to create a commonly used report or other document. You can also use the form to let collaborators create presentations in your account without logging in and getting direct access. 

No matter how you want to use this automation, it just takes a few minutes to set up, so give it a shot today. 

If you’d like to learn more about automating software like Google Slides, Notion, Airtable, and more, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

May 20, 2024
Automatically Generate Images in Abyssale with Airtable

Manually preparing graphics in different sizes and formats for every social media platform quickly becomes tedious. 

But with Abyssale, you can prepare templates in as many formats as you want, then auto-populate them with text and images from your Airtable records. 

In this tutorial, we’ll show you how to get started with this time-saving app step by step. 

We’ll demonstrate how to connect Abyssale to Airtable, create some templates, and populate those templates with Airtable data. 

Create a template for multiple graphic formats in Abyssale

Begin a free trial for Abyssale

To begin, go to and create a free trial account. The free trial will last for 14 days. 

It  includes 30 credits for automatically creating graphics with apps like Airtable, Make, or Zapier, and allows for a total of 1 GB of bandwidth. 

Create a template for your graphics

Click on “Templates” to view your library of templates.

Abyssale's dashboard

At first, you’ll just see a single Demo Template created by Abyssale. You can explore this demo to learn more about Abyssale, or get some hands-on experience by creating your own template. 

The template menu in Abyssale

To make your own template, click on “Create new template”. 

Then choose whether you want to browse the template library or make your design from scratch. In our example, we’ll build a template from scratch. 

Creating a template from scratch in Abyssale

Choose a type and format for your first template

After clicking “Create from scratch”, Abyssale will prompt you to choose a type and format for your template. 

Template types available in Abyssale: Static image, Animation, and Print

Abysale includes formats for a wide range of social media platforms, print layouts, animation, and more. For our example, we’ll begin with a simple 1080x1080 pixel square ideal for Instagram. 

Some social media formats available in Abyssale

Click “Create” to generate a blank template to start with. 

Design your template with Abyssale’s drag-and-drop interface

With Abyssale’s intuitive drag-and-drop designer, you can easily create any layout that you want for your graphics. 

Use the element menu at the top of the screen to add images, text, shapes, and more to your design. 

The element menu in Abyssale's visual editor

Note that every element you add to your design can act as a placeholder. When you sync this template with your Airtable base, you can replace the image with one that you’ve uploaded, replace text with custom copy, and even recolor fonts or shapes. 

A placeholder image in an Abyssale template

Our example template will consist of four key elements:

• A background image

• A semi-transparent black square over the background image

• Title text

• Description text

A finished template example in Abyssale

You can see how we constructed this template step by step in this blog’s companion video on YouTube

You can follow along and build a similar template, or try your own design. 

Quick tip: to keep an image centered while resizing it in Abyssale, hold Option on Mac or Alt on Windows while you drag with your mouse. 

Be sure to give each element a descriptive name! The name is the only way you’ll be able to identify each element when you sync with Airtable, so it’s important to make it clear what each element is. 

Changing an element's name inAbyssale

Once your template is all set, click on “Save & Exit” to commit your changes and return to the main Templates menu. 

Saving a template

Add additional formats to your template

Each template can include multiple formats. To add more formats to your template click on “Edit” from the main template menu. 

Editing a template

Then, click on “Add New Format” in the left hand sidebar.

Adding a new format to an Abyssale template

Each format within a template will have to be the same type (Static Image, Animation, or Print), but you can use a wide variety of formats within each type. 

For instance, we’ll select a 1280x720 YouTube thumbnail for our second format within this template. 

Choosing a YouTube thumbnail format for an Abyssale template

Any formats you add to your template will include all of the same elements as your original format. As you can see below, the background image, overlay, and text boxes are all still present in our new YouTube thumbnail design. 

A default layout for a newly created format in an Abyssale template

When you customize most settings in one format, the other formats won’t be impacted. For instance, we can change the background image in the YouTube format to “Cover” instead of “Contain” so that it takes up the entire canvas. 

Changing an image's "fitting" setting from Contain to Cover

However some settings, such as element names, are applied to all formats universally. 

Once your additional formats are finished, click on “Save & Exit” again to return to the template menu. 

Set up Airtable and sync it with Abyssale

With a finished template in hand, you’re now ready to create an Airtable base that will populate your Abyssale template automatically. 

Getting started with Airtable

To begin, go to and create a free account. 

NOTE: While Airtable offers a free plan, you’ll need to be on the “Team” plan or higher to access Extensions, which are necessary for syncing with Abyssale as shown in this tutorial. Airtable does provide a free trial for Teams. 

You can learn more about using Airtable in XRay’s 2-part beginner’s guide. Click here to check out Part 1, and click here to explore Part 2

Creating a table to generate Abyssale graphics

Once you’re signed, create a new base, which will automatically include a new table.

In your table, you need to add a field for each element that you want to replace in your template. For our example, we’ll need a field for each text box, and a field for the background image. 

An Airtable table that will be connected to Abyssale

Be sure to use the “Attachment” field type to upload images or other media. 

An attachment field in Airtable

Finally, you need to add another attachment field for Abyssale’s output. This is where final, exported graphics will be stored. 

Be sure to add at least one test record to your base that you can use to create a graphic. 

Adding the Abyssale extension to Airtable

Once your table’s fields are all set, you can add the Abyssale extension. 

Click on “Extensions” in the top right corner to access Airtable’s extension menu. 

Selecting the "Extensions" menu in Airtable

Then, select “Add an extension”. 

Search for Abyssale, then add the extension to your base. 

Adding the Abyssale extension to an Airtable base

Once the extension is added, you’ll see a pop-up prompting you to set it up. Click on “Get Started” to begin the setup. 

Configuring the Abyssale extension

Follow the steps in this pop-up to connect your account and generate an API key. 

Instructions for connecting an Abyssale account to an Airtable base

You can create an API key by clicking on “Settings”, choosing “API key”, and selecting “Request an API key”. 

Getting an API key from Abyssale

Copy the key that gets generated, and paste it into the pop-up window in Airtable. 

Then, click on Save to finish linking your Airtable and Abyssale accounts. 

Mapping an Airtable table to an Abyssale template

Now that the accounts are connected, you can sync a specific table with a specific template. 

In the Abyssale extension in Airtable, choose a table that you want to use. Select the specific view within your table that should be referenced.

Then, choose a matching template from Abyssale that you want to populate with this Airtable data. 

Choosing a template and table to sync

Once you select a table and template, you’ll see a list of every element (or “Layer”) from your Abyssale template. 

Enable the toggle next to any layer that you want to replace with content from Airtable, then choose the Airtable field that you want to connect to that layer as the “payload”. You can also change the color of any text layer by providing a hex code in the “color” field. Alternatively, you can keep the color set in the Abyssale template by leaving this field set to “None”. 

Mapping Airtable fields to Abyssale elements

Once you’ve mapped all of your fields, you can designate a field for Abyssale’s output. You can make this choice in the “Save banners to this URL field or attachment field”. As the text indicates, you’ll need to choose either an attachment field or a URL field to store Abyssale’s output. 

Choosing the output field for finished graphics

Once you’ve configured the sync, you can click on “Generate Banners” to create some graphics. 

Before it starts creating graphics, the extension will tell you how many assets will be created, and will explain that only successful calls will count against your total credits. 

An Abyssale warning about API charges

Click “confirm” to start generating your graphics. 

Abyssale will process your requests, and then show you a preview of each finished graphic. 

Review your exported graphics

To see the full resolution images generated by Abyssale, close the extension window, and open the records in your Airtable base. 

An exported Instagram graphic

By clicking on “Generate” once, we produced four images - a YouTube thumbnail and an Instagram image for both records in our base. 

An exported YouTube graphic

Going further with Abyssale

Bear in mind that the template we’ve demonstrated here is just a basic starting point. You can go further and build very useful automations with your templates.  

For example, we’ve worked with a company to build an Abyssale system for their Etsy store where user-uploaded images for blankets and signs are automatically assembled into print-ready graphics. 

Instantly generate graphics in several formats at once

With tools like Abyssale, you don’t need to waste your time resizing images and text boxes manually over and over again. 

You can generate all the assets you need for every platform and device with a single click. To get started, just try out Airtable and Abyssale for free, and follow the steps in this guide. 

If you’d like to learn more about workflow automation, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

May 13, 2024
How to Create and Share Templates in Zapier

Creating an automation from scratch with Zapier’s visual editor is pretty simple and straightforward. 

But did you know that there’s an easy way to get a headstart?

In this post, we’ll show you two ways to create, share, and use automation templates in Zapier. 

We’ll start by explaining the two different types of Zap templates that are available, and we’ll break down their pros and cons. 

Then, we’ll give you detailed walkthroughs for building, sharing, and using both template types. 

Simple Templates vs. Developer Templates

Before we begin creating templates, it’s important to understand that there are actually two different types of templates that are available in Zapier. 

When a user copies a Simple template, the app and event for each step will be pre-selected. However, none of the settings within each step will be configured. Instead, each field and option will revert to its default state. 

With developer templates, every setting that’s specified in the template will be pre-configured for users. Each variable, text, and option chosen in the template will be preserved when a user copies the template to their workspace. 

Simple templates can be easily created by any Zapier user and shared with anyone on the web. On the other hand, developer templates are primarily intended for developers who have built integrations for their software on Zapier (e.g., a Google Docs dev would create these templates for Google Docs). 

Neither simple templates nor developer templates support branching paths. 

Note: the terms “simple templates” and “developer templates” are not official; we’re just using them here for clarity. 

Duplicating Zaps for internal templates

If you’d like to create a template for internal use only, then we’d recommend creating a normal Zap, sharing it with your team, and duplicating it. 

Duplicating a Zap

When you duplicate a Zap, every action will be replicated and configured in its entirety - paths included. 

A pre-configured action in a newly duplicated Zap

However, users outside of your workspace will not be able to directly duplicate your Zaps. 

JSON Exports/Imports

Zapier users on the “Team” plan or higher can also share and duplicate Zaps by exporting and importing JSON files for each Zap. 

However, if you’re not using a team plan and still want to get a head start on your Zaps, then you’ll need to use either simple templates or developer templates. 

Creating a simple template in Zapier

To make a simple Zapier template, you’ll need a finished Zap that you want to turn into a template.

A finished Zap in Zapier

For example, the finished Zap pictured above sends an AI-generated motivational message in Slack every weekday. 

You can create a template from either the Zaps menu, or from the visual editor. 

From the Zaps menu, just click on the arrow next to your Zap’s name, then select “Share Template”.

Selecting a Zap from the "Zaps" menu

The "Share Template" option

Alternatively, from the visual editor, you can select the three dots in the top right hand corner. 

Clicking on the "More Options" menu in the Zap editor

Then, choose “Create Template”. 

Selecting the "Create Template" option from the Zap editor

Both of these options will lead you to the same simple template builder. 

Adding a title and description to your simple template

Once you’ve opened the template builder, all you have to do is give your template a title and a description. By default, the template will use your Zap’s title, and Zapier will provide a description that summarizes each app and action. 

Zap template details

It’s best to make sure you describe the apps and actions involved in your template. You may also want to suggest a use case for this automation to give more context. 

Customized Zap template details

After you’ve drafted your title and description, you can click “Preview” to see what the finished template will look like to other users. 

If you’d like to make any changes, just click on “Edit” to go back to the template builder page. 

Preview of a shared Zap template

Once it’s all set, click “Share” to publish your template. 

Clicking 'Share' to finalize a template

Zapier template sharing settings

Once you click “share”, a window will pop up where you can copy the link to your template and adjust the template’s visibility. 

Selecting "Change" to edit Zap template sharing settings

Click on “change” to choose who can see and copy your template. 

You can select:

Publicly shared, to share the template with anyone on the web. 

Anyone with the link, to ensure that only people who have the link will find your template. 

Only your team, to limit access to other users in your Zapier workspace. 

Although as noted earlier, it’s usually best to duplicate normal Zaps if you want to create a template for internal use. 

Turn off, which you can select to stop sharing the template. 

Copying and using a simple template in Zapier

Now let’s explore the process of copying a Zapier template. Begin by copying the link to one of our example templates in this resources board, or any other publicly accessible template. 

Paste the template into your browser. 

The link will open up a template page, where you can see the template’s custom title and description up top. Note that you’ll also see the profile picture of the person who built this Zap. 

To copy the Zap, click on “Try this Zap”.

Clicking "Try this Zap" to copy a template

The Zap will immediately be copied to your Zapier account. The correct apps and actions will be pre-selected for each step. 

A Zap built by copying a template

However, none of the settings or variables have been configured. 

An automated action in a template Zap. None of the steps are configured.

To finish setting up a copied Zap template, you’ll need to sign in to each app and adjust all other settings manually. 

Creating a developer template in Zapier

If you want to create a template with pre-configured actions, you’ll need to create a “developer” template. 

To start, go to, and select “Zap templates”.

Zapier developer portal

Then, create a new template.

Creating a new developer template

From here, you can build a Zap more or less the way you would normally, although the new visual editor isn’t available here yet. 

Building a developer template

The most important difference is that you’ll have to use placeholder test data. You can’t sign in to your accounts to retrieve real test data.

And since you’re stuck with placeholder data, sometimes, not all the usual variables will be there. It’s up to each app’s dev team to create the default placeholder data for their integrations, and in some cases, they may skip a few variables. 

You can check out some Zapier help docs in the resources board for instructions on how to create missing variables yourself. 

Provide pre-configured data with a developer template

Unlike a simple template, any configuration that you provide here will be preserved when users copy this template. 

Providing more data in a Zapier developer template

Text, variables, and other settings will all be prefilled. 

Preparing your developer template for review

After adding and configuring your steps, you can add a title and description just like with a simple template.

Providing a title and description for a Zapier developer template

Before you can share the template, you’ll have to submit the developer template for review.

But be warned - once you submit your template for review, the template cannot be edited. Make sure it’s all set before you submit for review. 

Understand that your template will immediately be sent to Zapier’s team for their approval, and there’s no guarantee it will be accepted at all. 

Your templates can get rejected for being too generic, or redundant to other existing templates for popular apps that you don’t own.

It’s only really worth going through the trouble of creating a developer template if you’re confident you have a unique use case that has a good chance of being accepted 

In most cases, it’s best to create developer templates like these for your company’s own applications. 

Copying and using a developer

Once a template has been submitted for review, its shareable link will be accessible

However, we would not recommend trying to share the template publicly while the Zap is in review. 

It’s probably fine to test internally, but you don’t want to abuse the system and share templates extensively before they’re approved.

In the image below, you can see what a user will see when they copy the link to a developer template. 

A Zap created by copying a developer template. All actions and apps are pre-selected.

When they copy it, it will instantly create a Zap just like with the simple template. Just like before, all of the apps and actions are chosen already.  

However, all of the configuration options are also pre-selected. Some text is filled out, some variables included, and so on. 

A Slack trigger in Zapier is already configured after copying a developer template

Pros and cons of developer templates

With a developer template, much more of the work is already completed ahead of time.

However, as we noted, there’s a much bigger hurdle to clear to create a developer template. It may not be worth the extra effort depending on your use case, or level of technical expertise.

You’ll most likely want to use developer templates if you are part of a company with your own SaaS app integrated into Zapier.

Build a Zapier integration and templates for your app with XRay

If you’d like to create or manage a Zapier integration for your app, just reach out to XRay and schedule a free meeting to discuss your options. 

Choose the right template type for your use case

A simple template will likely be the more popular and accessible choice for most no-code builders. 

However, if you can make a developer template that meets Zapier’s specific standards, then you’ll get the benefit of pre-configured actions. 

And if you want to share templates with your team only, then you can always just duplicate a Zap to make things easy. 

Ultimately, there’s no wrong choice here. All versions of Zapier templates are useful ways to save time while you’re building and rebuilding similar automations. 

To learn more about Zapier and other no-code automation tools, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

May 6, 2024
How to Add Variables to Your Google Docs

The “Templates” feature in Google Docs has always been a useful way to save some time when creating a frequently used report or proposal. However, it’s always required significant manual work to update every placeholder with the content you want to use. 

Fortunately, with a recent update, Google Docs has made it easier than ever to create templates from your documents and fill them out with dynamic data in seconds. 

In this post, we'll show you how to create and use the brand-new variables in Google Docs.

If you don’t have access to the variables feature yet, we’ll also show you how you can use automation apps like Zapier and Make as an alternative. 

We’ll walk you through everything step by step, so sign in to Google Docs and follow along. 

Adding variables to a document

To begin using variables in Google docs, start by opening up a doc.

TIP: Try typing “” into your URL bar to quickly bring up a new Google Doc. 

creating a new doc with ""

Note that you’ll only be able to access variables if you’re using a workspace account for a company or school. Variables are not yet available for individual accounts.

If you’re on an individual account and want to add variables to your docs, you can scroll to a later section in this blog to check out an alternative method with Zapier or Make.

Once you have your doc open, there are two ways to create a variable.

Type a word in [square brackets]

First, you can just type a word enclosed in square brackets. In our example below, we’ll create a variable called [example]. As soon as you type the closed bracket, Google Docs will prompt you to hit “tab” to insert a new variable.

Creating a variable in Google docs using brackets

When you create the new variable, you’ll see a “Variables” panel open up on the right, and your new variable will be added to the list.

The "Variables" panel in Google docs

Open the “Smart Chips” menu by typing “@”

Alternatively, you can create a variable by typing the @ (at) symbol anywhere in your doc.

Opening the "Smart Chips" and "Building Blocks" menus in Google docs with the @ key

This will pull up a list of “Smart Chips” and “Building Blocks” that you can add to your doc. You’ll find variables under the “Smart Chips” category.

Choosing the "variables" option from the Building Blocks menu

When you select it, you’ll have the choice to either create a new variable or insert an existing one (if you have any). 

Inserting an existing variable into a Google doc

In our example, we’ll insert the same “example” variable that we already created.

Two instances of the same variable in a Google doc

Assigning a value to your variable

When you first add a variable to your doc, the panel on the right will say that it has “No value”.

This just means that to start with, your variable has a title, but no content assigned to it.

You can either click on any instance of your variable, or on the “no value” text in the right-hand panel to assign your variable a value.

For instance, we’ll give this ‘Example’ variable a value of “Automation”.

Assigning a value to a variable in a Google doc

Once you’ve provided a value for your variable, click outside of the variable to save it.

All instances of a variable updating to show the same value

Instantly, every instance of your variable will be updated with its new value. You can also update this value whenever you want.

Updating the value for a variable in a Google doc

As you can see from this quick demo, variables are a great tool for filling out templates. You can just fill in each unique piece of information once to populate your entire document, and updating any variable is just as easy.

With variables, you don’t have to look for each instance of the word manually, or worry about find-and-replace errors.

They’re a great addition to any template, and it just takes a couple keystrokes to set them up.

Quickly filling out a template with Google Docs Variables

Now that we’ve covered the basics of creating Google Docs Variables, let’s see what a complete template with variables looks like.

We’ve created this proposal template with several key variables like Client Name, Start Date, Project Manager, Project Fee, and a few more. Note that we’ve also added this document as a template in our company’s gallery.

A Google Docs proposal template with several variables

We’ll make a copy of this template to create a proposal for ‘TestCo’.

When you create a copy of a Google Doc with variables, all of the variables will still be functional. Additionally, any changes you make to the copy will not affect the original. The same conditions also apply if you simply make a copy of the document directly without using the “template” feature.

Adding values for each variable

With our newly created doc, all of the variables just display their labels: client name, project manager, etc.

You can click on each variable in the doc to fill them out, but we’d recommend opening up the variables panel to make things easy.

Just select any variable, then click the icon on the right to open up the panel.

Selecting a variable to find the "open in sidebar" option

Then, you can go through all of the variables in one spot and fill them out in a few moments.

Filling in variables one-by-one using the Variables panel

Just be sure to press “enter” or click outside of the variable after filling in a value to save your entry.

Once you’re finished, you can close the variable panel, and all of those outlines around the variables will disappear. Your doc will be all set to share or export as a PDF.

Updating the value for a variable

If you need to update any of these variables later, just click on any instance of the variable, change the value, and press enter. Instantly, every instance will be updated with the same value.

Updating the value of a variable in a Docs template

If you accidentally misspelled your project manager’s name in your first draft, you can easily update them all at once, and you don’t need to worry about leaving one of the “Dwights” as a “Dwigt”.

Adding variables to Google Docs with Zapier or Make

This new variables feature is a great way to quickly fill out a template, but some of you out there might want to take things a step further. You might want to create a document automatically with a no-code provider like Zapier or Make.

That way, you could also send the data for your document to other apps at the same time, like Slack or Google Drive.

Additionally, if you aren’t part of a Google workspace, creating variables in your docs with Zapier or Make is a great alternative.

If you’d like to learn how to use these apps, then just check out our beginner’s guide to Zapier, updated in 2024 to give you a look at the software’s latest features.

You can also explore our beginner’s guide to Make if you’re interested in learning to automate on a more affordable, and technical platform.

Now, let’s create some variables in Google Docs that we can fill in automatically with Zapier or Make.

Adding variables to your template document

In the screenshot below, you can see a proposal template using variable syntax that Zapier and Make will recognize.

A proposal with variables recognized by Zapier and Make

To create Zapier and Make variables within a Google Doc, just enclose the text in two pairs of curly brackets, like this:


Zapier won’t recognize any variables that use spaces, hyphens, or most special characters. However, underscores are fine.

Formatting rules for variables in Zapier and Make

In Make, you can do whatever you want as long as the variable is enclosed in two sets of curly brackets.

Spaces, underscores, hyphens, upside-down question marks, ampersands, octothorpes, and other special characters are all fine.

To keep things simple and compatible with both, we’d recommend using camel case, like this:


Building a Zap to automatically add data to variables

Now let’s build an automation in Zapier to fill in these variables.

We’ll also show you a bit of how it works in Make, but conceptually, it’s a very similar process in both apps.

Create a trigger your Zap

To start, you’ll need a trigger that gathers data to fill in your variables. You can use any trigger you’d like. 

One easy way to trigger this kind of automation is with a form and a spreadsheet, like the form pictured below that we’ve created in Airtable, and its associated table.

An Airtable form that will collect data for the template

There’s a question for each variable, and each submission is stored in an Airtable base.

We’ll fill out the form once to create some test data. 

Filling out the form to create test data

Now, back in Zapier, we’ll choose Airtable as our trigger app, and select “New Record” as the event.

Adding a "New Record in Airtable" trigger to a Zap

Then, we’ll sign in to our Airtable account, and finish configuring the trigger. 

"New Record in Airtable" trigger configuration

Once your trigger is all set, give it a test. 

Testing the Airtable trigger in Zapier

Add a Google Docs action to your Zap

With your test data ready, click “Continue” and add a new step to the Zap. Select “Google Docs” as the app, and choose “Create document from template” as the event.

Adding a 'Create Document from a Template' action to the Zap

Be sure to sign in to your Google Workspace account to authorize Zapier.

Next, you can configure the action. To start, you need to identify the doc that should be used as a template and copied whenever the automation runs.

Required fields for the "Create Document" step, like "Template Document" and "New Document Name"

You can search for the document by name if you’d like, but we recommend using the document’s ID instead.

Open the doc in Drive, and copy its ID from the URL bar. The ID is the string of characters after /d/ and before /edit

Copying a Google Doc's ID from the URL bar

Switch back to Zapier, and select “custom” for the “Template Document” field and paste the ID in.

Pasting the Google Doc ID into Zapier

Next, you can give the new document a name. We’d recommend using some dynamic data so that the name isn’t always the same. In our example, we’ll pull in the client’s name from Airtable.

Naming the new document with dynamic data in Zapier

Next, you can identify the folder where the new document will be created. Once again, we’d recommend selecting “custom” and pasting in the ID.

Drive folder IDs begin after /folders/.Copy this ID from the URL bar in Google Drive. 

copying a Google drive folder's ID from the URL bar

Then, paste the ID into the field. 

Pasting the folder ID into Zapier

You can set “sharing preferences” to whatever you’d like. Under “unused fields preference”, you can choose whether to keep or remove variables that aren’t assigned a value. 

Then, you should see all of the variables that Zapier found in your Google doc. They’ll have the same name that they do in Google, except you won’t see the curly brackets.

Variables from the Google doc retrieved by Zapier

Now you can map appropriate data to each variable. Try using the search bar to quickly find the data you’re looking for. 

Mapping data to each Google Docs variable in Zapier

Note that each variable will only appear once here, even if it appears multiple times in your template doc. 

If any of your variables are missing, check your template doc to make sure you followed the right syntax: two sets of curly brackets, no spaces, no hyphens, and no special characters except underscores.

Or, to keep things easy, just use {{camelCase}}.

Testing your automation

Once you’ve mapped every field, give the step a test.

Testing the "Create Document" step

Clicking “test” will immediately generate a new document with all of the variables filled out.

After you get a successful test in Zapier, check out the doc it produced just to make sure everything worked.

Search within the test results for the “alternate link”. This is the term Zapier uses for the doc’s main URL in Drive.

Finding the doc's URL in Zapier by searching for "alternate link"

When you open the link, you should see a copy of your template doc with every variable filled in. 

The created doc with all variables filled in

Creating Google Docs variables in Make

In Make, you’ll follow a very similar process. 

Add a trigger that collects data, like our Airtable trigger pictured below that we’ve already set up.

An Airtable trigger in Make

Then, add an action, search for Google docs, and select “Create a document from a template”.

Choosing the "Create a Document from a Template" step in make

To make things easy, we’d recommend setting this first choice of “Create a document from a template” to “by dropdown”.

Choosing "by dropdown"

Then, once you identify the doc you want to reference as a template, you’ll see all of your variables listed out as fields. 

All Google docs variables retrieved by Make

You can fill them out with dynamic data just like we did in Zapier.

Mapping data to variables in Make

Use automation providers to do more with your data

In either automation provider, you can also add additional actions to do more with this data.

You could add a Slack step to send a message alerting your team of this new proposal, sharing the alternate link, and asking for their review.

You could also use this data to create Slack channels, Google Drive folders, and more.

With thousands of apps supported, the possibilities are endless.

With inline Google Docs variables, you’re limited to just making and editing variables within the document itself.

On the flipside, using an app like Zapier or Make will take more time to set up, and it won’t let you update variables in a doc you’ve already made.

Ultimately, the choice is yours; both methods have their pros and cons.

Whether you use Google’s native variable features or an automation provider to fill in your variables, they’re both great ways to generate templated documents quickly and consistently.

Save time while creating documents with variables

Don’t waste your time entering the same data over and over again in Google Docs. Try using the new variables feature today to instantly create documents from a template and update them whenever you want. 

And if you’re on an individual Google account and don’t have access to variables yet, you can always create them with Zapier or Make instead. 

If you’d like to learn more about workflow automation, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

April 29, 2024
The Ultimate Guide to Zapier Interfaces

Zapier is well known as one of the largest automation providers available, with support for over 7,000 apps and counting. 

But recently, Zapier has been expanding the scope of their software beyond automation. Over the last year, they’ve been adding new ways to organize your data and share your automations. 

In this post, we’re going to explore one of Zapier’s major new features that ties everything together: Zapier interfaces.

We’ll give you an overview of what Zapier Interfaces are and what you can use them for. 

Then, we’ll walk you through the process of creating an interface from scratch, with pages that contain link cards, an AI chatbot, and a contact form that launches an automation. 

What are Zapier interfaces?

First, let’s go over the basics.

A Zapier interface is a simple web page built with an intuitive visual editor.

Pages built in a Zapier interface can include custom text, media, and links, as well as forms and kanban boards connected to your Zapier tables.

A Zapier interface with link cards

You can also use interfaces to launch your Zaps and even create a custom AI chatbot.

A Zapier chatbot in a Zapier interface

Interface pricing

All Zapier plans include two interface projects for free. To unlock more projects and additional features like custom domains, password protection for your published pages, and conditional logic for your forms, you’ll need to pay an additional monthly fee.

Zapier interface pricing plans

You can learn more about interface pricing on Zapier’s official pricing page here. 

Interfaces use cases and limitations

The best use case for Zapier interfaces is to create a portal for your team or clients to access an automation and its related data.

A Zapier interface for submitting company expenses

However, Zapier interfaces only support other Zapier products.

If you’re using a variety of software to build your automations, like Airtable, Make, Power Automate or Google Sheets, then you should consider delivering your automated workflows with XRay workflow.

XRay Workflow is an app developed by our team at XRay.Tech. It’s designed to let us organize resources from around the web onto convenient, shareable boards.

An XRay workflow board

In each board, we can link or embed Zaps, but we can also add Airtable forms, automations from other providers, documents from Notion and Google, or really any web-based resource that we want.

An Airtable form embedded in an XRay Workflow board

How to create your first Zapier Interface from scratch

Now, let’s start building an interface. 

We’re going to show you how to create an interface step by step and add components like links, forms, and an AI chatbot to your interface pages.

NOTE:  before you begin building, you should be aware that all Zapier interfaces are publicly accessible by default.

You’ll need to upgrade to a premium plan to restrict access to your interface. Make sure that you’re not adding sensitive information to your interface, since anyone on the web could potentially access it.

Creating a new interface

To get started, open up Zapier and click on the “interfaces” option in the left hand menu.

The interfaces option on the Zapier dashboard

If you haven’t created any interfaces yet, you’ll see a long gallery of templates that you can use to quickly get started.

For now, just click on “Start Blank”

Creating a blank interface

Here, Zapier will offer up a couple more generic templates: a form, and a customer portal. There’s also a link to the full template library.

Options for building a new interface from a template or from scratch

However, we’re going to show you how to build an interface from scratch.

That way, you’ll know how it all works, and you’ll have an easier time customizing a template later on.

Click on “Start from scratch” to make a new interface.

On the main interface builder page, you’ll see three sections: Pages, Tables, and Zaps.

The main menu for a new Zapier interface

Your interface can include several different pages, which will all be listed here. To start, you’ll just see the default first page for your interface. The various components that you add to your pages will often reference specific Zapier tables and Zaps, and those will be listed here, too.

Adding content to an interface page

Let’s start customizing our interface by checking out this initial page, which doesn’t have any content at all yet.

When we click on it, we’re immediately prompted to add a component to the page. 

Zapier interface components

You’ve got several choices here, like Form, Kanban, and Chatbot. But we’ll start very simple. Just select “Text” to give this empty page a header. Click “Add” to add any of these elements to your current page.

Adding a component to a Zapier interface

Once your page has at least one component, you’ll see a preview of your page in the middle of the screen.

The preview window of a Zapier interface

When you select a component, you can edit its content, styling, and settings in the panel on the right.

The editing panel in a Zapier interface

Customizing a text component

Try changing the text block to say:

“My First Zapier Interface”

Customizing context in a Zapier interface text component

And give it a brief description:

“Below, you can find some helpful links and other resources to check out.”

Adding a description to a Zapier interface component

Note that this text box uses markdown for styling, and Zapier provides some basic markdown formatting tips right below it. 

The Markdown guide in the text component

With markdown, you could turn this header into a subheader by just adding another pound sign (or hashtag, or octothorpe - whatever term you prefer 😉).

Styling text in a Zapier interface with markdown

But in our example, we’ll leave it as a full size header for now.

You’ll also see a few more options to change the width, alignment, and text alignment of the component.

We’ll change the width to “medium”, but we’re fine with the default center alignment. With all of these settings configured, this component is ready to go.

Changing the width of a component

Note that If you’d like to open up your published interface at any time, just click on this link in the top right.

The published URL for a Zapier interface

Adding components to a page

Let’s start fleshing out this page a bit more by adding an area for link cards.

To add a new component to a page, just click on the Plus button on the bottom of the page.

Adding a component to a Zapier interface

Then, you can scroll through the menu of components or search for one that you want.

The component menu

Adding link cards to an interface page

We’ll search for “link”, and click on ‘link cards’ to add the component to our page.

Searching within the component menu

It starts off with one card, but you can add more with the “Add link” button.

The "Add Link" button in a link card component

You can use link cards to link to external URLs or to other pages in your Zapier interface.

We’ll add a couple more pages to this interface as we continue this tutorial, and we’ll make sure to link to them from here. But for now, we’ll select the first card, and edit it to point to our company’s website, Try editing the card in your interface to link to any site you want. 

Note that you can also add a title, description, and emoji for each link.

Customizing a link card

You can also choose to have links open in a new tab, which we’ll enable so that users won’t lose the interface just by clicking on a link.

Enabling a link to open in a new tab

Once your card is all set, click on “Done”.

Adding an AI chatbot to your Zapier interface

Links are a pretty useful feature, but not very exciting or unique. With our next feature, let’s add something that will make our interface stand out a bit. 

Let's add a page with an AI chatbot.

You could add a chatbot component to the same page you’ve already been working on, but for our example, we want to keep the home page as a simple directory for the whole interface.

To add a new page, click on the blue plus sign in the page menu. 

Adding a new page to a Zapier interface

Give your page a name. We’ll call ours “Chatbot”. Then, click “Create page”.

Naming a new page

You’ll see a list of components to start with. To add a chatbot to the page, just scroll down a bit and select “Chatbot”.

Adding a chatbot component

If you’ve already created a chatbot in Zapier, you’ll be able to select it from the menu on the right. If not, you can just create a new one now. 

Clicking on “Create a new chatbot” will open up Zapier’s Chatbot feature in a new browser tab.

Creating a new chatbot

From there, you can click on “Create Blank Chatbot”.

Creating a blank Zapier chatbot

Finally, give your chatbot a name and click “Create”. We’ll call ours “Workflow Automation Helper”.

Naming a new chatbot

Customizing a Zapier chatbot

There are a lot of options in the chatbot builder, but they’ll all be pretty familiar if you’ve messed around with any popular AI chatbots recently.

To begin customizing your chatbot, you can update the greeting text that’s displayed whenever a user opens it up. 

We’ll give our workflow automation assistant an appropriate message:

How can I help you with workflow automation today?

customizing a Zapier chatbot's greeting text

Note that you can also choose to use an AI-generated greeting, although we’d typically recommend using a static greeting for consistency. 

Additionally, you can customize the user input placeholder, which defaults to “Ask me anything”. 

For the model, you’ll have to stick with GPT-3.5 unless you upgrade to a premium plan, which will unlock models like GPT-4. 

Zapier chatbot setup options

The creativity slider will let you adjust how “predictable” or “random” your chatbot is on a scale of 0 to 1. It defaults to 0.7, which allows for a pretty high degree of creativity. 

Finally, you can enable an optional disclosure message to ensure that users understand they’re conversing with an AI. 

Modifying your chatbot’s directive and knowledge base under “Instructions”

Under  the “Instructions” tab, you can add a custom directive for your chatbot’s identity. On a premium plan, you can also upload files as “knowledge sources”.

Zapier chatbot instructions settings

Zapier provides a rough template for the directive which you can easily customize.

The Zapier chatbot default directive

In our example, we’ll just paste in our customized directive that we prepared earlier, with some details that are relevant to XRay and workflow automation. For your chatbot, try to update the template with details relevant to your project. 

XRay's customized directive for a Zapier chatbot

Adding automated actions to your chatbot

Under the “Actions” tab, you can configure actions that are available to the user while interacting with your chatbot.

The "Actions" tab in a Zapier chatbot

For instance, you can add a button that launches a Zap, making it easy to send the AI’s output to another app.

A Zap button in the "Actions" tab

You could also add a button that lets the user easily copy the text of the response.

The "copy response" option in the "actions" tab

On premium plans, you can also add a form to your chatbot that will allow the user to submit data in each field. 

For our example, we’ll just add a button to copy the user’s response.

Configuring the "Copy response" action

Style and conversation history

The “Style” tab will let you change your chatbot’s appearance, but is only available to premium plans. 

The "Style" tab for a Zapier chatbot

The “Conversation History” tab will let you view past conversations. To begin, there won’t be anything to view here, since the bot hasn’t been published and shared yet. 

The "conversations" tab

Linking your Zapier chatbot to a Zapier interface

Once you’re finished setting up your chatbot, save your changes and return to your interface. 

Now, you can just attach the “Workflow Automation Helper” to a Chatbot component in your interface. Just select the component you want to use, then choose your chatbot from the list. 

Connecting a chatbot to a Zapier interface

When you attach a chatbot to an interface component, you won’t be able to edit any of its technical settings directly from the interface builder. Instead, you’ll have to return to the chatbot portal and adjust your configuration from there. 

In the interfaces builder, all you can do is change the height, width, and alignment of the chatbot component.

Display settings for a chatbot component

Testing your Zapier chatbot

Once you’ve set your chatbot display options, give it a test to see how it works in action. 

Click on your interface page’s URL in the top right to open up the page with your chatbot. 

Clicking on the interface's live URL

Then, ask it a question. In our example, we’ll begin with a simple query: what are the benefits of workflow automation?

Testing the chatbot with a simple request

Immediately, it starts drafting a numbered list of all the ways that workflow automation can help people save time and create more consistent results. Once the answer is complete, we can see the “copy” button we set up earlier.

The chatbot's answer about workflow automation

To finish our test, we’ll try a more specific question next: How can I automate Hubspot with Zapier?

Testing the chatbot with a question about automating Hubspot with Zapier

After a moment, it gives us a fairly generic but pretty decent summary of how to automate Hubspot – or any app, really – with Zapier.

The chatbot's answer about automating hubspot

This isn’t half bad for an AI chatbot we set up in a few minutes, but if you want to tweak your chatbot’s output, you can always go back to the settings to adjust the directive and fine-tune its answers.

The chatbot itself might not stack up to the functionality offered by Chatbase, Botpress, or other dedicated chatbot providers, but it’s hard to beat the ease of setup here.

If you’re using lots of Zapier products already, like interfaces, then Zapier’s chatbot could also be a good choice.

Updating the link cards component

Now that your chatbot page is finished, return to your interface builder so you can add its link to your link cards page. 

Choose your first page, select the link cards component, and add a new link.

Adding a link to a "link cards" component

Under “link to”, select “page”, since this card will link to an internal page within the interface. 

Linking to an internal page in a Zapier interface

Then, choose your “Chatbot” page.

Choosing a page to link to

Finish by adding an appropriate title, description, and emoji, then click “Done”.

Saving a new link card

With this new link card you can easily navigate to the chatbot page from the home page of your interface.

However, the link card page’s name – “page” – isn’t exactly descriptive.

Click on the gear icon to open up page options and give your page a unique name, such as “Interface home”.

Renaming an interface page

Adding a form to your Zapier interface

Let’s wrap up this interface overview by adding one more page with a form where users can submit contact requests.

Add a new page to your interface, and title it something like “Contact Us”. 

Adding a 'Contact Us' page to the interface

Add a component to the page, and select ‘Form’. 

Adding a "form" component to the new page

A form in a Zapier interface has to connect to a Zapier table.

Like with any simple spreadsheet app, Zapier tables are pretty straightforward to create, so we won’t go into detail on how to make a Zapier table.

Just know that if you want to set up a table quickly, you can always import a CSV to get all your records uploaded at once.

In our example, we’ll choose this “Interface contact requests” table that we’ve already prepared for the interface.

Connecting the form to a table

Once you choose your corresponding table, Zapier should create a form component with a question that matches each field in the table.

However, while preparing this guide, we frequently ran into an error where the form component wasn’t configured correctly after picking a table.

A common error when adding a new form component

If you see this error, try refreshing the page in your browser. Then, you should see your form builder rendered correctly. 

A form with a question for each field in the table

Customizing a form in your Zapier interface

You can customize your form by reordering the questions, changing the button text, adjusting the alignment, and even adding a Captcha for verification.

If you select any fields within the form, you can also edit the label, placeholder text, help text, and other similar settings. On premium plans, you can add conditional logic to your form, too.

Field customization settings

Under the Data tab, you can change which table the form is connected to.

The "data" tab in a Form component

Under “Actions”, you can configure actions that occur after a user submits the form.

The 'Actions' tab in a form component

By default, the form will display a message confirming that the user’s answers were submitted. However, you can also add actions to open up a new page, or run a Zap.

In our example, we’ll add a Zap to send a Slack notification about each new form submission.

To add a Zap to your form, click “Add action” under the “Actions tab”, and choose “Run Zap” as your action. Then, click “Create Zap” to build a new automation. 

Creating a Zap connected to a form component

In our finished Zap, a brief Slack message is sent whenever we receive a new form submission. 

A Zap that sends Slack messages for new Zapier form submissions

Once you’ve configured any actions you want to include, your form should be all set. 

Adding a link for your form and creating a test submission

To wrap things up, just add a link to the form on the interface home page so you can easily navigate to it. 

Adding a new link card for the "contact us" page

Finally, we’d recommend giving your form (and any associated actions) a quick test. 

Open the published form page and submit a request.

Submitting a test form

Right after you submit your form, any associated actions should run. In our example, we can see a new notification in Slack detailing the request.

An automated Slack alert generated for our form submission

Several choices for sharing no-code resources

With Zapier interfaces, you can easily share forms with your customers or team members, and launch Zaps whenever there’s a new submission.

Of course, you could also accomplish something similar using other tools with forms like Airtable, Smartsuite, or Webflow.

If your tech stack encompasses several automation providers and other platforms, XRay Workflow will also be a great way to organize your forms, tables, and other related resources into convenient boards.

But if you’re using Zapier tables, chatbots, and other Zapier products already, then Zapier interfaces are a convenient way to connect them all together.

To learn more about building and sharing no-code systems, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

April 22, 2024
How to Delay Your Zaps Longer than 30 Days

If you’ve ever tried to add a long pause to one of your Zaps, you’ve probably run into the frustrating 30-day limit in Zapier’s “delay” action. 

Fortunately, there’s a very easy way to get around this limit and delay your automated actions for as long as you’d like. 

All you have to do is split your automation into two Zaps and use an Airtable base to send data between them. 

It’s very a simple process, and we’ve even prepared an Airtable template you can copy to quickly get started. 

Workflow overview

First, we’ll quickly explain what the finished workflow looks like. Then, we'll break it down for you step by step.

Delaying a Zap for more than 30 days involves three main steps:

1. A Zap that sends data to Airtable

To kick off the workflow, you’ll have a Zap that triggers under whatever conditions you want. It can also perform any actions that you want to run right away. 

A Zap that ends with a "Create Record in Airtable" step

To finish off the Zap, add a “Create Record” step in Airtable and store some key data in a table based on our template. You’ll need to include some date/time data to calculate your desired delay, as well as any other information you want to use when your automation resumes. 

2. An Airtable base that calculates the delay

With the data sent over by your first Zap, your customized Airtable base can easily calculate any delay that you want. 

An Airtable formula for adding time to a date

Our template includes a preconfigured formula field you can use to get started. It defaults to a 60-day delay, but can be easily adjusted to your own parameters. 

An Airtable view that only displays records with the correct date

When a record’s calculated date matches the current date, the record will enter the “Launch 2nd Zap” view. For example, with our 60-day delay, a record with an original date of 04/19/24 would enter the “Launch 2nd Zap” view on 06/18/24. 

3. A Zap triggered by an Airtable view

Your workflow will conclude with a second Zap that runs whenever a new record enters your specified view. Then, you can add any automated actions that you want to perform after the delay. 

A Zap that runs when a record is added to a specific view in Airtable

Detailed Walkthrough

Next, let’s take a look at setting up this workflow in more detail. We’ll demonstrate the process with this example workflow:

• The first Zap will run when we add a new label to an email in Gmail

• After we add the label, we want to send an automated email to the original sender 60 days later

Setting up the Airtable base

Even though your finished workflow will start with Zapier, the easiest way to construct the automations will be to start with the Airtable base. 

If you’ve never used Airtable before, you can check out XRay’s beginner’s guide to learn the basics. However, it’s a very intuitive spreadsheet and database app, and you’ll likely be able to follow along even if you’re new to the app. 

Note that you can use a free Airtable plan for all of the techniques demonstrated in this tutorial. 

To begin setting up your Airtable base, copy our template to your workspace. 

XRay's Airtable template for adding a delay to Zaps

The template consists of one table with a couple custom views and several useful fields. Let’s take a closer look at them now. 

Primary field: Name

First, the primary field is set to “Name”. This field creates a title or label for each record in the base. We’ve set it up as a formula that combines the contents of the next two fields.

The primary field formula in XRay's template

Using a formula for your primary field makes it easy to keep all of your records’ names consistent, and lets you easily update them en masse whenever you want. 

You can leave this field as-is or customize it to give your records any label you want. 

Placeholder fields: Data 1, Data 2

Next, we’ve included a couple of placeholders for any data that you want to include. These are just single-line text fields called “Data 1” and “Data 2”. 

Placeholder fields in XRay's Airtable template

Any data that you want to collect from your first Zap and send to your second Zap will need to be stored in Airtable with fields like these. 

For our example, we’ll edit these into fields for “Email Address” and “Full Name”.

An updated placeholder field in XRay's Airtable template

To accommodate your Zap’s data, you can edit these placeholders, add more fields, or delete the ones you don’t need.

Date fields: Calculating your delay

Now let’s look at the fields that will let us calculate a delay for any length of time that we want. 

Starting date

First, there’s this simple “Date” field. You’ll need to include a Date field for any dates that are involved in the final calculation. 

A date field in XRay's Airtable template

For our example, we just need one date field to indicate when the email was originally received. You may need additional date fields for your use case.

Record created

Note that we’ve also included a “Record Created” field. This is a unique field that displays the date the Airtable record was created. 

A "Record Created" field in XRay's Airtable template

This field is populated automatically, and is not editable. 

Configuration options for the Record Created field

In some cases, you may want to use this date in your formula instead of referring to a date sent from Zapier.

Calculated date

This field is the most important one in the template. In this “Calculated Date” field, you can calculate the date when your second Zap will run. 

The "Calculated Date" formula field in XRay's Airtable template

For our example, we’ve written a formula that adds 60 days to the original “Date” field. However, you can easily edit this formula to add any amount of time that you want. 

The function in the Calculated Date field

Just replace ‘day’ with something like ‘week’ or ‘year’, and replace ‘60’ with the interval you want to use. You can explore Airtable’s help docs for more information about using this formula. 

When you’re done editing your formula, click “Save” to commit your changes. 

“Launch 2nd Zap” view

When a record’s “calculated date” is equal to today’s date, then that record will enter the view called “Launch 2nd Zap”. 

The "Launch 2nd Zap" view in XRay's Airtable template

That’s because the view’s filter is set to “Calculated Date is today”. 

The filter for the "Launch 2nd Zap" view in XRay's Airtable template

Calculated Date with IF

You may have noticed that any record without a “Date” entry has this big obnoxious “#ERROR” text in the “Calculated date” field. 

An error message in Airtable shown when a formula is missing a pa

Since there’s no date to add 60 days to, the formula doesn’t work, and just displays this error text. 

If that bugs you and you’d like to replace this error text with a less obtrusive message, you can use the second version of our formula instead. You’ll find that version in the field called “Calculated Date with IF”.

This formula is a bit more complicated.

The "Calculated Date with IF" formula, which includes an alternative error message

You can see that we still have the same “DateAdd” formula at the heart of it, but there’s also a DateTimeFormat expression, as well as an “IF” statement that checks whether or not there’s a date to work with. 

Ultimately, if you’re new to Airtable, you’ll probably prefer the simpler version. But we’ve added both to the template so you can pick for yourself. Then, you can just hide the field that you don’t want to use. 

Lightning bolts: emoji codes

Note that we’ve marked both formula fields with a lightning bolt emoji. Using emoji labels like this will make things much easier when you start working with this Airtable base in Zapier. 

These formula fields won’t accept direct input, but Zapier will still give you the option of entering data into the “Calculated Date” fields. 

The emoji, which we’ll see in Zapier too, lets us know that these fields are populated by a formula and should be left alone. 

Form view: Add a record

The “Add a record” form view is a simple way to add complete records to your base. Adding records one field at a time can lead to issues with automations, since they may run when a field is still missing data.

The form view in XRay's Airtable template

The view itself will let you configure the form, but not enter data. To submit a record, just click on “open form” to access the published survey. 

Launch Now

Finally, the last field in this template table is a checkbox field called “Launch now”. 

The "launch now" checkbox in XRay's Airtable template

This field is optional, but it's a good example of why we like to use Airtable to skirt around Zapier’s delay limit, instead of something like Google Calendar. 

If you change your mind and want to launch the second Zap immediately instead of waiting 60 days, you can just check this box. 

Checking a record in XRay's Airtable template

The second condition on the “Launch 2nd Zap” view’s filter will also allow any records that have been manually checked off. 

Filter conditions for the "Launch 2nd Zap" view in XRay's Airtable template

With Airtable you can easily set up multiple filter conditions for a record to enter a specific view. 

That covers basic setup, but you should feel free to customize all of these fields to fit your specific use case. 

In general, just remember that any data you want to send to your second Zap needs to be saved or calculated here in Airtable first. 

Once your base is set up to your liking, it’s time to build the Zaps for this automated workflow. 

Building the first Zap

Now that our Airtable base is all set, let’s build the first Zap in this workflow. 

The first Zap can trigger under whatever conditions you’d like. In our example, this Zap will run whenever we add a custom label to an email in Gmail. 

Testing the trigger for the first Zap in the workflow

Once your trigger is configured, give it a test to load in some test data. 

Test data retrieved by the trigger

Next, you can add any other actions that you want your Zap to perform before the pause. 

Sending data to Airtable

Once you’ve added all of the additional actions that you want, finish the Zap with an Airtable step.  

Select “Create record” as the action. 

Adding a "Create Record" Airtable step to a Zap

Sign in to your Airtable account to authorize Zapier to act on your behalf. Then, choose the base and table that the new record should be created in. 

This will be the template base that you copied earlier and configured to your liking.

Choosing the correct Base and Table in the Airtable step

Once you’ve selected the right table, you can map data retrieved from earlier steps to your Airtable fields. 

Mapping data from Zapier to Airtable fields

In our example, we’ll fill in data for the sender’s name, their email address, and the date the email was received.

Mapping more data to Airtable fields

Note that we can see those lightning emojis for the formula fields, so we know not to map anything to them. 

Testing the Airtable step

Once you’ve mapped all the data you need to each appropriate Airtable field, give the step a test. 

Testing the "Create a Record in Airtable" step

After a few moments, you should see a success message in Zapier.

Test results for the "Create a Record" step

Just make sure to check Airtable as well to confirm that the data all looks correct. You’ll especially want to make sure that the calculated date is what you expected. 

The record created in Airtable by testing the Zap

Ours is 60 days after the original date, just like we wanted. This first Zap has been successfully set up to send data to Airtable.

Building the second Zap

Now let’s build the second Zap, which will run after your specified delay.

To begin, configure the Zap’s trigger. Choose Airtable as the app, and select “New Record” as the event. 

Adding a "New Record in Airtable" trigger to the second Zap

Sign in to the same Airtable account as before, and choose the correct table and base. 

Choosing the correct base, table, and view for the second Zap's trigger

You’ll also want to limit this trigger to only watch a specific view. Select the “Launch 2nd Zap” view (or whatever you’ve renamed it to). 

Options for testing the second Zap’s trigger

Next, you need to test this trigger. But to do that, you need to have a record in the “Launch 2nd Zap view”. 

Ultimately, there’s no perfect way to test a months-long delay in a couple minutes, but you have a couple good options. 

First, you can just check a record manually to add it to the view. This will confirm that the second Zap runs the way you want, and uses real data created by your apps. 

On the other hand, it doesn’t technically confirm that the formula works. 

Your second option is to create a record with its original date set in the past. For our example, that would mean making a record with its original date set to 60 days ago. 

That will confirm that the formula works, but you may need to create fake test data if you don’t have data created at exactly the right time. 

Just to be safe, we’d recommend testing this Zap with both methods. 

Testing the second Zap’s trigger

To test it both ways, begin by checking the box on one of your test records. That will instantly make it appear in the “Launch 2nd Zap” view. 

Checking off a record to test the second Zap's trigger

Next, use the form view to add a new record to the table. For our example, we’ll set the date to be 60 days in the past. Set your record’s date appropriately based on your desired delay. 

Adding a record to the Airtable base with a form

Once you’ve filled out every field, submit the form to add the record to Airtable. 

With both test records ready, switch back over to Zapier, and test the second Zap’s trigger again. 

Testing the Airtable trigger in the second Zap

The test pulls in both records: the record you just checked off, and the record you submitted with a form.

Test records retrieved by the Airtable trigger

Now, you can finish this Zap by adding any additional actions that you want the automation to perform after the delay. 

For our example, we just need to add a Gmail step that sends an automated message. 

An optional "Send Email in Gmail" step added to the second Zap

Once you’ve added and tested all the actions you want, your second Zap will be all set. Just make sure both of your Zaps are published and turned on before you start using them. 

A published and activated Zap

Now, your first Zap will trigger as usual, then send data to Airtable. Then, the second Zap will run after your desired delay, using the data you stored in the Airtable base. 

Go beyond Zapier’s limitations with Airtable

Like any platform, Zapier has its share of technical limitations. But with a simple database in Airtable, you can easily get around their 30-day limit in the delay step, and pause your automated workflows for as long as you want. 

If you’d like to learn more about building automated workflows in Zapier in Airtable, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

April 15, 2024
Launch automations with the “Call API” Button in Softr

Softr is a great platform for turning your Airtable data into a publicly accessible web app. 

With one of their latest additions, Softr has opened the doors to a whole new level of automation functionality. 

Thanks to the new Call API button in Softr, you can send webhooks with the click of a button, instantly launching automations in Zapier, Make, or even Airtable itself. 

In this post, we’re going to show you how it all works. We’ll start by demonstrating how to add a button to your Softr app that sends a webhook with custom parameters whenever it’s clicked.

We’ll also show you how to create webhook triggers in Zapier, Make, and Airtable, and give you an example of an automation you could build with a webhook trigger. 

What Softr’s “Call API” button does

The new Call API button in Softr allows you to send data to a specified webhook URL with the click of a button.

a list in Softr with a "Call API" button

The button is currently available in a few select block types, like kanban, tables, and lists like the gallery pictured below.  

A list element in Softr being used as a gallery

When you click a Call API button, a webhook is immediately sent to your specified URL, such as a webhook trigger in Zapier, Make or Airtable. 

How to add a Call API button to your Softr app

To add a Call API button to your Softr app, you’ll first need an element that supports a Call API button.

Softr is currently working to add support to more block types, but at time of publishing, you can add a Call API button to tables, kanbans, calendars, item details, and lists. 

Once you’ve added your block, select it, and choose “Actions”. 

The 'actions' menu in a Softr list block

Add an item button to your block, and select “Call API” as the type. 

Item button options in Softr

There will be a few key settings to configure once you’ve added your Call API button. 

Call API button configuration options


The API URL is where your API call will be sent to. Most popular web apps have public APIs that you can send requests to, including automation providers like Zapier and Make. 

The API URL is required.


The Method is the type of API call your button will perform. 

• POST will create data, or activate a webhook trigger

• PUT and PATCH are used to update existing data

• DELETE will delete existing data

If you want to launch an automation with your Softr call API button, then you should use POST as the method. 


A header is typically used for information like authentication data. If you’re not sure whether or not you need a header, check your app’s API docs for more info. 

The header is optional. 

URL Parameters and Body

Both of these fields allow you to append data to your API Call as key-value pairs. In a key-value pair, the “key” is the label for the data (e.g., “Name”) while the “value” is the data itself (e.g., “John Smith”). 

These are optional fields, but you’ll need to include at least one of them if you want to send data along with your API call. 

Once your call API button is fully configured, be sure to publish your Softr app to commit your changes. 

Getting a Webhook URL from Zapier

To get a webhook URL from Zapier that will run a Zap when activated, start by creating a new automation. 

Choose “Webhooks by Zapier” as the app. 

Choosing "Webhooks by Zapier" as the trigger app for a Zap

Note that Webhooks are a premium app in Zapier, and will require a paid plan to access. 

Then, choose “Catch hook” as the event. 

Event options

You can leave the “Pick off a child key” field blank, and proceed to the “Test” section.

The "pick off a child key" option in a Zapier Webhooks trigger

Instantly, Zapier will generate a URL that you can copy to your clipboard and paste into your call API button. 

Copying an API URL from a Zapier Webhook trigger

Getting a Webhook URL from Make (Integromat)

To create a webhook trigger in Make, start by creating a new scenario. Choose Webhooks as the app for your trigger. 

Creating a webhook trigger in Make (Integromat)

Then, select “Custom webhook”. 

Webhook trigger options in Make

Add a new webhook.

Adding a new hook in Make

Give your new webhook a name, then click save. 

Saving a new hook in Make

Copy your webhook’s URL to your clipboard, so you can paste it into your Softr call API button. 

Copying a webhook's address in Make

Getting a Webhook URL from Airtable 

To create a webhook-triggered automation in Airtable, start by selecting the “Automation” tab and creating a new automation. 

For the trigger, choose “When webhook received”. 

Creating a webhook trigger in Airtable

Airtable will immediately generate a URL for your webhooks. Copy it and paste it into your Softr call API button. 

Copying a webhook URL in Airtable

Example: Launching an automation with the Call API button

Passing data in an API call can be a great way to launch an automation. For example, we’ve built an automation that refreshes our gallery with a new AI image whenever we click the button. 

You can check out this blog’s associated YouTube video for a full demonstration of the gallery and its related automation. 

Our list block pictured below contains a gallery of philosophy quotes paired with AI-generated images. 

A list block in Softr

All of this data comes from an Airtable base. 

An Airtable base connected to a Softr list

We’ll add a “Call API” button that triggers a Zapier automation and passes an Airtable Record ID. 

A Softr list with a Call API button (Labeled 'Regenerate Image')

That Zap will search in the Airtable base for the matching record, and send a prompt to DALL-E 3 to generate a new image for the quote. 

An example automation launched by a Call API button

Finally, it will update the record with the latest image. 

A Softr list with an item updated by the Call API button

Configuring the Call API button to launch an automation and send data

Here’s how we configured the Call API button for our gallery. 

The method is set to POST since we want to trigger a webhook, and we’ve pasted in a URL we got from Zapier. 

Example settings for a Call API button

Both the header and URL parameters are disabled. 

The body is enabled, and we’ve added a single key-value pair to pass each list item’s Record ID to Zapier whenever we click on its button. 

Our Zap will use the Record ID to look up the matching record in Airtable and retrieve the rest of the information it needs. 

An Airtable search step in a Zap

We’ve also customized the success message, telling users to refresh the page after about 30 seconds to see the new image. The page won’t automatically load in the new image, so this refresh will be required to see it. 

A customized success message for a Call API button

We’ve updated the button label to say “Regenerate Image”. 

updating the label of a Call API button in Softr

Additionally, we included a “refresh page” topbar button that just opens up this same “Quotes” page again in the same tab - effectively refreshing the page. 

A topbar button in a list block that refreshes the page when clicked

The Call API button in action

With our button and automation configured, we can test out the entire process. In the screenshot below, we’ll click on “Regenerate Image” under an Aristotle quote. 

Clicking on the "Regenerate Image" to launch a Zap

Then, after refreshing the page, we can see the new AI-generated image for this quote. 

A Softr list with an updated image after clicking "Regenerate image"

We successfully used the button to trigger a Zapier automation and pass some data to it. 

Launch low-code automations from Softr

With buttons that can call an API in Softr, you can easily launch low-code automations from your Softr web apps with a single click. 

Just create a webhook trigger in the app of your choice, configure your button in Softr, and set up any automation you want in Zapier, Make, or Airtable. 

To learn more about automating your work and building low-code systems with apps like Softr and Airtable, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

April 8, 2024
Pause and Resume Automations with the 'Continue Zap' Button

Adding human oversight to your Zaps ensures that your automated workflows run with fewer errors. 

Now, with the ‘Continue Zap’ button in Zapier tables, you can add a crucial oversight to any Zap with a simple manual approval step. 

In this post, we’re going to show you how it works step by step. 

We’ll begin by adding a “Continue Zap” button to a Zapier Table. Then, we’ll demonstrate how you can build an automation that will pause itself until you approve it with the click of a button. 

What you’ll need before you create a “Continue Zap” button

Before you can create a “Continue Zap” button and automation, you’re going to need to prepare a couple of items in Zapier. 

A Zapier table for your button

First, you’ll need a Zapier table. This table is where you’ll add, configure, and use the “Continue Zap” button. Naturally, it’s best if this table also includes the data that you want to automate. 

In this tutorial and demonstration, we’ll be using the “Team Directory” table pictured below.

a Zapier table

A form to easily add records to the table

You’ll also probably want to set up a Zapier interface with a form that connects to that table. 

A Zapier interface with a form

This isn’t strictly necessary, but it’s the easiest way to add a complete record to a Zapier table and will make testing the automation much more convenient. 

A preview of the finished automation

Below, you can see a picture of the full automation that we’re going to build. 

A full automation using a 'Continue Zap' button

Whenever a new record is added to the table, our Zap will send an alert in Slack prompting us to confirm that the details of the new record are correct. 

A Slack message sent by a Zapier automation

Then, it will pause itself until we click on either “Confirm” or “Reject”. 

"Confirm" and "reject" buttons in a 'Continue Zap' field

Based on our answer, the automation will go down one of two paths, and will send an appropriate message in Slack confirming our choice. 

A Slack message sent by a Zapier automation

Alternative: build two Zaps instead of one

Bear in mind that you could always build a similar approval flow by just creating multiple Zaps. 

The first Zap could alert you to the new record, while the second Zap would trigger once you make a selection. 

However, it’s never a bad thing to have multiple options for designing and building your automations, which is why we want to show you how this new feature works. 

Once your table and interface are ready to go, you can follow along with the rest of this tutorial. 

Adding a “Continue Zap” button to a Zapier Table

To start, add a new field to your table. This is the field that will contain your button. 

adding a new field to a Zapier table

Give the field an appropriate name, like “Approve Details”. Then set the field type to “button”. 

button field settings

You’ll see several customization options for the field, like icon and alignment. You can set these to whatever you’d like, or leave them to their defaults. 

The most important setting is “Type of Button”, which you’ll need to set as “Continue Zap”. The default choice would launch a Zap instead, which can also be useful. However, it won’t work for pausing and continuing a Zap. 

Setting the button type to 'Continue Zap'

Next, you can provide labels for up to two buttons that will be included in this field. These labels should reflect the choices that you want to incorporate into the Zap, and should indicate what actions will follow after they’re clicked. 

adding the button to the table

In our case, “Confirm” and “Reject” will be suitable labels. 

Note that if you don’t include a secondary button label, then there won’t be a second button in the field.

However, we’d recommend including a second button. That way, you can make sure that you’ll always press one button or the other, and your automation will reach a definitive conclusion rather than pausing indefinitely. 

Finally, click “Create” to add your button field to the table. 

Initially, the button will just have a warning that says “Set up button”. That’s OK. Just click on the button to continue setting it up. 

The "set up button" warning in a Zapier table

When you click on the button, it should open up to the “Zaps” tab, which prompts you to create a new Zap to associate with this button. 

creating a Zap connected to a 'Continue Zap' button

Click on “Create” to start building the automation. 

Editing your automation with a “Continue Zap” step

After clicking “Create”, Zapier will create a default automation for you.

Zapier notes that the “continue Zap” button is an ‘Experimental’ feature, so the setup of this default automation may change.

The default automation created for a 'Continue Zap' button with two choices

However, in our tests, the automatically created Zaps have always looked like this so far:

• The trigger is set to “New Record in Zapier Tables”. 

• The first action is “Continue Zap button clicked in Zapier tables”. 

Then, two paths follow:

• One path for clicking on the primary button (“Confirm” in our example)

• One path for clicking the secondary button (“Reject”)

The rules for each path are configured, but they don’t contain any actions yet. 

You can edit this default Zap to your liking, but it’s important to understand that this Zap will work a bit differently from most automations that you build. 

How the “Continue Zap Button Clicked” action works

The “Continue Zap Button Clicked” action kind of works like a second trigger. 

Any action you put after the real trigger will run as normal whenever you add a new record to the table, but the automation will pause itself at this “Continue Zap” step and wait for your input. 

Once it receives that input, it will continue running down the appropriate path. 

As such, if there are any actions you want to perform right away for every record regardless of what button is clicked, place them before the “Continue Zap” step. 

Every other action can be placed into an appropriate path. 

Apart from that one unique consideration, you can edit and configure this Zap like any other. 

Customizing the default Zap

To begin customizing the Zap, test the trigger to load in some data to work with. 

Testing the Zap's trigger

Then, add any actions you want to run right after the trigger. In our example, we’ll add a Slack step to alert our team about the new record and ask them to check its details. 

To make things easy, we’ll include a link to the table where they can view and edit records. 

Configuring a Slack action before the Zap pauses

Again, this Slack step is going to be sent for every record that triggers this automation, since it is placed before the automation pauses itself. 

Test any actions you’ve added and continue. 

Test the “Continue Zap Button clicked” step

Next, select the “Continue Zap Button Clicked” step. You don’t need to add any data or change any settings here. Just click “continue”, then test the step. 

Testing the 'Continue Zap' step

Configure the path for your primary button

Next, you can configure the actions that will run in your first path. This is the path that will run when the primary button is clicked.

Begin by confirming and testing the rule, which should be set to only continue if the primary button (“Confirm” in our example) was clicked.

Testing the condition for Path A - "Confirm"

Add any action that you want to run in this path. In our example, we’ll add an action to send another message in Slack alerting the team that the record's details were confirmed. 

Adding an automated Slack message to Path A

Test any steps you add to confirm that they work correctly.

Configure the path for your secondary button

Follow the same steps to test the rule for your second path and add any actions you want. 

In our example, we’ll add a Slack message that says the record’s details are inaccurate and need to be updated. 

Adding an automated Slack message to Path B

Publish the Zap

Once your Zap is configured the way you want and every step has been successfully tested, publish it. 

Publishing the Zap

You’ll need to publish your Zap to ensure that it connects with your table. 

After publishing the Zap, return to your table.

Test the Zap with the “Send to Zap” button

For every existing record, the button should now say “Send to Zap” instead of “Set up button” 

This is because those records were added before the Zap existed, and so the Zap couldn’t process them. This actually gives you a convenient way to test out the flow. 

Selecting "Send to Zap" for existing records in the table

Just click on “Send to Zap” for any of the existing records, and your automation should instantly run all of the steps before the “Continue Zap” pause. 

In our case, we instantly get the first Slack message prompting us to approve or deny the record’s details, along with the convenient link. 

The first Slack message sent before the automation pauses itself

Note that neither message from the subsequent paths has been sent yet, so our automation paused itself correctly. 

To continue testing the Zap, click on one of the buttons for the record in the Zapier table. For our example, we’ll click “Confirm”. 

Clicking the primary button in the 'Continue Zap' field

Instantly, we get a new message in Slack, reiterating that the details have been confirmed.

The second Slack message sent after the Zap resumes

Everything looks good. The Zap ran for the new record, paused to let us make our choice, and continued along the right path after we made our selection. 

Running a live test

Before considering an automation complete, we’d always recommend running a live test.

Conducting a live test ensures that your automation runs exactly as expected in real-world conditions, which can always be a little different than tests. 

To do a live test, just make sure that the automation is turned on, and submit a new record to your Zapier table through your form interface. 

Since we already tested the primary “Confirm” button, we’ll test the secondary “Reject” button this time. 

We’ll submit a record with a deliberate mistake (“Francine Johmson”). 

Submitting a record to a table through a Zapier form

Immediately, we get the same Slack message telling us about the new record and prompting us to check it. 

The first Slack message sent before the automation pauses itself

Since there’s a typo in the name, we’ll click “Reject”. 

Clicking the secondary button

And now the appropriate message pops up in Slack, saying that the record details aren’t correct and need to be updated. 

A second Slack message confirming our choice to reject

Customize the automation to perform any action

As we’ve designed them, there’s obviously not much difference between these two paths as, but this tutorial is really just about demonstrating the underlying structure, not a full workflow. 

With this basic setup, we could add all sorts of actions to the “confirm” path, like creating onboarding tasks in Asana, Sending an email, or whatever else we want. 

But once you’ve tested your automation and confirmed that it runs, pauses, and runs again as expected, you’re all set.

Reducing errors with a simple manual approval step

Manual approval takes just a few seconds, but it can drastically reduce errors and unintended automation runs. With the new “Continue Zap” button, no-code builders have another easy way to add a human checkpoint to their automations.

For more no-code automation tips and tutorials every week, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Software Comparison
April 1, 2024
Airtable vs. SmartSuite: an In-Depth Comparison

Airtable is a great tool for organizing your team’s data and creating custom interfaces, automations, and more. 

However, Airtable isn’t the only database app in the space. Founded just a couple years ago, SmartSuite offers very similar features at a more attractive price point. 

But is it worth making the switch?

In this post, we’re going to give you an in-depth comparison of Airtable and SmartSuite so you can determine which one is right for you. 

We’ll take a look at everything that each app offers in several key categories, including user interface, custom views and fields, automation options, dashboards and interfaces, third-party integrations, technical performance, and pricing. 

There’s a lot to cover, so let’s get started!

The basics of Airtable and SmartSuite

First, for anyone who might not be familiar, let’s quickly cover what Airtable and SmartSuite are. 

On the surface, Airtable and SmartSuite are essentially spreadsheet and database apps. But unlike Microsoft Excel or Google Sheets, these apps are really for building custom internal systems.

Instead of using an off-the-shelf app for something, you can make your own custom version in these apps. For instance, you could use Airtable or SmartSuite to build a project management system that acts as an alternative to Asana,, or Trello. 

A task management system in Airtable
Task management in Airtable

Similarly, you could use these apps to put together your own CRM as an alternative to Hubspot or Pipedrive.

A CRM in SmartSuite
A CRM in SmartSuite

By connecting Airtable or SmartSuite to Softr, which we’ll cover more later, you could even build a web app that serves as a convenient portal for your clients to sign in and view their data. 

A web app built with Softr and Airtable

Essentially, Airtable and SmartSuite are both versatile apps designed to give you freedom to build what you want using a familiar layout of tables and fields.

Ideal user profiles for Airtable and SmartSuite

Both of the apps have broadly similar functions and use cases, but they ultimately serve two different user types. We'll cover the similarities and differences in detail in this post, but we’ll start with a brief summary of the main distinction between the two apps.

Airtable: a reliable app for Enterprise teams

Airtable, which is backed by venture capital funds and has been available for about 10 years, has the edge for enterprise teams. 

It’s got the performance, the stability, and the advanced security and permission features that you need for enterprise solutions.

SmartSuite: an affordable alternative for smaller teams

SmartSuite, a bootstrapped startup founded in 2021, offers similar features at a much lower price, and is likely the better pick for smaller teams. 

Its design is top-notch, and it's got a lot of convenient features that Airtable is missing. However, its lack of fine-tuned permission controls and less sophisticated automation tools make it less-than-ideal for enterprise teams.

That’s the comparison in a nutshell, but there’s a lot of nuance that gets lost in a brief summary. Let’s jump into the detailed comparison to take a closer look at each app.

User Interface and User Experience

As two similar applications, Airtable and SmartSuite offer up nearly identical user interfaces and experiences. 

A simple database in Airtable

Both apps use a simple, no-code UI to let you create databases and tables, add a wide range of fields, and organize your data into customized, filtered views. 

A simple table in SmartSuite

Both make it easy to view your data at a glance and find the menu items you need. However, as the newer app on the block, SmartSuite has a bit more aesthetic flair. Elements tend to be a little larger with some extra white space, making it a little easier to parse information.

Winner: SmartSuite (just barely)

Ultimately, it’s difficult to separate the two in terms of UX and UI. However, we’d give SmartSuite a slight edge due to its extra visual polish. 

However, both apps deliver a great experience with a clean UI.  

Available Field Types

While spreadsheet apps like Excel and Google Sheets only offer some basic formatting options for text and numbers, Airtable and SmartSuite provide a wide array of field types to accommodate and display different data. 

Both apps include widely-used choices like text and select fields, date and time, formula fields, linked records and more. 

However, there are some key differences between the two apps here. 

SmartSuite: more field types, built-in validation, and superior linked records

By our count, SmartSuite currently boasts 42 unique field types compared to Airtable’s 28. 

SmartSuite’s unique fields include options like IP address, voting, a hex code color picker, and even a signature field. 

field types in SmartSuite

Additionally, most text and number fields in SmartSuite include automatic validation, so you can ensure that the data entered matches the intended format, whether that’s an email address, a phone number, or an IP address. 

Field validation in SmartSuite

To add similar validation to Airtable would require a complex solution involving automation and multiple fields. Frankly, it wouldn’t be worth the effort in most cases. 

Additionally while both apps include the ability to link records, Airtable limits you to only linking records within the same base. 

On the other hand, SmartSuite lets you link to records in any solution.

Linked records in SmartSuite

No matter what database you’re working in, you can reference records in any other database. 

Airtable: unique fields for “Last modified” and Barcodes

However, Airtable does have a few field types that SmartSuite doesn’t. 

Retail or manufacturing businesses will be happy to see Airtable’s “Barcode” field type, and anyone can benefit from the “Last Modified” field that displays a timestamp for the last time each record was edited. 

"last modified" field in Airtable

You’d need to create a formula field in SmartSuite to create a ‘Last modified’ field, which is easy enough, but there currently isn’t any way to add such a field without writing a quick function. 

Winner: SmartSuite

When it comes to field types, SmartSuite beats Airtable, particularly if you want easy validation for specific data formats or more versatile linked records.

But Airtable’s definitely not very far behind in providing a diverse array of field types and robust formula functionality.

Filtering and organizing your data with views

Next, let’s look at the views provided by both apps. In both Airtable and SmartSuite, views are a way to display data from a table. A view rearranges data based on your chosen settings, but doesn’t alter or delete the original data.

For some views, you might just apply a filter to a traditional grid layout, so you only see records that match certain conditions. 

a filtered view in Airtable

For other views, you might want to use a totally different layout, like a Kanban board for tasks, a gallery for images, or a timeline to track projects.

A kanban view in Airtable

Both apps offer a similar selection of views, but there are few key differences. 

Similar choices for custom views

SmartSuite and Airtable each include Grid, Kanban, Timeline, Calendar, Gantt, Form, and Gallery views. 

Airtable has one unique option: a list view, which is essentially a simplified grid. 

A list view in Airtable

SmartSuite on the other hand offers a Map view, which can display addresses and location data as pins on a map. Map views like this are a top feature request common among Airtable users.

A map view in SmartSuite

You’ll also see options for Charts and Dashboards in SmartSuite, which allow you to compile reports out of your data. 

a dashboard view in SmartSuite

While Airtable doesn’t include similar options in their “views” menu, they do include similar functionality in their “interfaces” feature, which we’ll cover more later.

An interface in Airtable

Launching automations with specific views

Although the choices for view types are virtually identical in both apps, there’s a related function which helps Airtable to stand out in this regard. 

In no-code automations, it’s easy to build a workflow that runs whenever a record enters a specific view in Airtable. No options like this are readily available for SmartSuite.

Winner: Airtable

Ultimately, Airtable and SmartSuite are nearly neck-and-neck when it comes to custom views, although each one has a couple of unique options that might sway you one way or the other. 

However, Airtable’s views are much better integrated with automation, which makes their views a more useful feature overall. 

Automating your work with Airtable and SmartSuite

Organizing your team’s data in one source of truth like an Airtable or SmartSuite database is a great way to get started with automation. 

Both apps have support for simple native automations and can also connect easily to automation providers like Zapier and Make.

But which app will be better for automating tasks with your data?

Native automations in Airtable and SmartSuite

With the automation functionality inside of Airtable or SmartSuite, you can launch an automation based on several triggers. These include options like “whenever a record is created or updated,” “when a record matches conditions”, “when a form is submitted”, or “at a scheduled time”.

Automation triggers in SmartSuite

However, Airtable has a few extra triggers that SmartSuite is lacking. These are “When a record enters a view,” “When a button is clicked,” and “When a webhook is received.” However, SmartSuite notes that webhook triggers are coming soon.

automation triggers in Airtable

Once an automation is triggered in either app, it can run some actions within your database or in external apps. Both have pretty small lists of supported apps, such as Gmail, Jira, Outlook Email, and Twilio. 

While neither Airtable nor SmartSuite is likely to be your main automation provider, Airtable’s native automation easily beats SmartSuite. 

In Airtable automations, you can add conditional logic and even write JavaScript for custom actions - neither of which are available in SmartSuite.

custom scripts and conditional logic in Airtable

Additionally, the ability to trigger automations when a record enters a view is extremely useful. It’s a very simple way to set up an automation, and missing it is a big disadvantage for SmartSuite automation. 

Third-party automation in Zapier or Make

The “New record in view” trigger is also one of the main factors that separates Airtable and SmartSuite when it comes to third-party automations. 

As you can see with a quick search in XRay.Tools, our free automation search engine, popular automation providers like Zapier and Make support Airtable and SmartSuite. 

Airtable and SmartSuite listings in XRay.Tools

However, you can’t trigger an automation to run when a record enters a view in SmartSuite, even if you use Zapier or Make.

Zapier triggers for SmartSuite and Airtable

If you’re automating with SmartSuite in an app like Zapier, you’d have to trigger the automation for any new or updated data in your database and apply filters in the next step of the automation to narrow down the records that would be processed. 

Essentially, you’d have to recreate the filters and conditions that you specified in the original SmartSuite view, instead of just pointing Zapier to the existing filtered view.

Winner: Airtable

If you’re looking for a platform to support automated workflows, Airtable is likely to be the better pick. It offers a wider range of triggers and actions in its native automation tools, and includes an essential option to limit its triggers to a specific view in Zapier and Make. 

Integrations with other apps

Next, let’s take a look at the third-party integrations available for both apps. 

Integrations in apps like Airtable and SmartSuite allow you to import data from other software, extend the capabilities of your custom systems, share data in a convenient portal for customers, and more. 

Extensive extensions in Airtable

In general, you’ll find far more integrations for Airtable than for SmartSuite, which perhaps is not surprising given that Airtable has been around for much longer. 

For instance, in Airtable, you can directly import data from software like Google Calendar, Salesforce, Github, and ZenDesk, among others. 

Import options in Airtable

On the other hand, in SmartSuite, you can only import data from a standalone file, like a CSV. 

Airtable also includes “extensions”, which are plugins built by both Airtable themselves and third-party developers. Adding an extension to your database will allow it to connect directly with other apps and perform additional actions. 

Extension marketplace in Airtable

For instance, with the Data Fetcher extension in Airtable, you can connect your Airtable base to any app’s API and make a request through a no-code interface. 

The Data Fetcher extension for Airtable

Even if Airtable doesn’t have any native integrations for an app you want to import data from, you can just use the Data Fetcher extension to get it. 

Note that Data Fetcher, like many Airtable extensions, is a separate, optional app with its own paid plan. 

Embed videos, conference calls and more with SmartSuite integrations

SmartSuite doesn’t include any plugins that are comparable to extensions, and doesn’t currently allow you to import data directly from another app when you’re creating a new solution. 

The main integrations they reference are related to automation through their native tools or third party providers like Zapier and Make. 

Video and social media integrations for SmartSuite

They also mention several apps that allow you to embed data directly into SmartSuite dashboards. With these integrations, you can insert YouTube videos, Zoom calls and more into your customized dashboards. 

Turn your database into a web app with Softr

One specific integration that we’d like to highlight for both apps is the ability to connect to Softr. 

With a Softr frontend and backend data stored in an app like Airtable or SmartSuite, you can create a portal for your clients or your audience. 

Use Softr to build web apps with your data in SmartSuite, Airtable, and other apps

Softr enables easy user sign-up and login, among many other useful features, which you can learn more about in our Softr beginner’s guide

Winner: Airtable

All in all, Airtable has the clear advantage when it comes to third-party integrations. Its easy import options and marketplace of extensions give you far more choices for connecting your Airtable data with other apps. 

However, both apps can be used in conjunction with Softr, which is definitely something you should check out if you want to make client portals or other simple web apps. 

Transform data into custom interfaces and dashboards

When you’re building systems with either Airtable or SmartSuite, you’ll often want to avoid third-party integrations entirely and instead build exclusively with the app’s native tools. 

That’s where Airtable’s Interfaces and SmartSuite’s dashboards come into play.

With these features, you can assemble customized pages that contain visualizations and summaries based on your data. 

A CRM dashboard in SmartSuite

You can add charts and graphs, filtered grid views, key stats, and more. 

An interface with a timeline view in Airtable

Interfaces and dashboards are great for putting together reports, or building simple layouts for specific workflows.

Access additional views and granular permission controls in Airtable interfaces

For most enterprise use cases, Airtable’s interfaces are superior to SmartSuite’s dashboards. 

While Airtable has no choices for embedding videos and conferencing calls like SmartSuite, it offers more choices for displaying and arranging internal data. For instance, Kanban and Timeline views can be added to an Interface, but not to a SmartSuite dashboard.

An Airtable interface with a kanban view

Airtable’s interfaces also include more granular control over editing permissions. For each element in your interface, you can set “Edit” and “create” permissions separately. 

editing permission for Airtable interface elements

In SmartSuite, it’s all or nothing. There’s no distinction between creating or updating data. 

Embed rich media and combine several databases in SmartSuite dashboards

Though they lack some useful view types and permission controls, SmartSuite’s dashboards are still a great feature. 

As we noted earlier, SmartSuite dashboards allow you to embed a wide variety of external media, like YouTube videos and Zoom calls. 

Embedding a YouTube video into a SmartSuite dashboard

Additionally, SmartSuite dashboards provide the ability to combine data from several solutions (or databases) into a single layout. 

This can only be accomplished in Airtable if you add synced tables to your database first, which is definitely not as convenient – and requires a Team plan or higher.

Winner: Airtable

Both Airtable and SmartSuite give you some great choices for building internal interfaces and dashboards. 

Overall, however, we’d consider Airtable to be the better tool for building an interface for your team, particularly if you need to be precise with your editing permissions.

Technical performance and limitations

Before wrapping up this comparison with a pricing breakdown, let’s take a look at the technical performance and limitations of both tools.

General stability and record limits

Overall, Airtable is a more stable app with better performance. SmartSuite runs well most of the time, but might not have the responsiveness or uptime that you’d be looking for in an enterprise context.

If you plan to build an app around your Airtable or SmartSuite databases, then Airtable will be better equipped to support large teams making lots of requests. There’s also a sizable gap between record limits for both apps.

While SmartSuite tops out at 200,000 records per solution on their Enterprise plan, Airtable offers more than double that figure. On Airtable’s Enterprise plan, users can create up to 500,000 records per base, and you’ll see similar disparities at every pricing level.

Guaranteed uptime with Airtable Enterprise

Additionally, as a more mature app, Airtable’s uptime and general performance is excellent. On enterprise plans, Airtable guarantees 99.9% uptime each month, and will provide service credits to impacted accounts if they don’t meet that commitment.

Airtable's Enterprise service level agreement (SLA)

Winner: Airtable

We’re sure SmartSuite will continue to improve over the next few years, but if you’re looking for the best possible performance right now, Airtable will be your pick.

Pricing plans

Finally, let’s take a look at how both of these apps will impact your bottom line and go over their pricing plans. We’ll give you a quick overview, but for more detail, you can check out Airtable’s pricing plans and SmartSuite’s pricing directly. 

Pay less with SmartSuite; get more with Airtable

SmartSuite's pricing overview
SmartSuite Pricing

SmartSuite is considerably cheaper than Airtable, with most plans coming in at just over half the cost of the comparable Airtable package. 

Airtable's pricing overview
Airtable Pricing

However, Airtable’s higher prices do come with additional features and perks.

With Airtable’s plans, you’ll get more cloud storage and higher record limits at every tier. The Enterprise plan also offers some extra security features and white-glove service that isn’t available in SmartSuite, unless you work with an expert directly.

If you’d like help managing your databases and workflows, our team at XRay can work with both tools.

Check for monthly vs. annual billing

Just note that when you’re looking at these pricing pages, the most prominent prices are calculated based on the assumption that you’ll be signing up for an annual plan. 

Annual vs. monthly pricing

If you’re paying month-to-month, your price will be a bit higher. Those figures are posted here, too, but they’re a lot smaller and easier to miss.

Comparing each app’s free version

If you’re not looking to pay anything, and just want to pick between the two free plans, we’d say SmartSuite wins out in every category except cloud storage. 

You’ll get the vast majority of SmartSuite’s field types, views, and other basic features unlocked at no charge, while Airtable keeps many of their features behind a paywall.

But the 100MB of cloud storage, compared to Airtable’s 1GB, will pretty much limit you to uploading text files only. 

Winner: SmartSuite

Ultimately, if you’re looking for a budget-friendly option, SmartSuite is going to be the better choice, as long as you can live without the extra features and capacity Airtable offers.

Making an informed choice for your team’s database software

Airtable and SmartSuite are both excellent apps that empower you to organize your data and create robust internal systems for your teams. 

While Airtable is generally the technically superior app and a much better fit for enterprise users, SmartSuite’s unique features and lower prices make it a good choice for many solo builders and small businesses.

Try both apps for free to see how they work for yourself. 

If you’d like to see more software comparisons and automation tutorials, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

March 25, 2024
How to reformat dates in Power Automate

Are your date and time stamps in Power Automate not coming out the way you’d like? 

Whether you need to reformat a date-time value in Power Automate, or change the time zone to match your region, you can do it all with a single automated step – no code and no scripting required.

In this quick tutorial, we're going to show you how to use the “Convert Time Zone” action in Power Automate to reformat and convert dates and times however you’d like. 

Open a Power Automate flow with a date/time you want to reformat

To get started, open up any cloud flow in PowerAutomate that has a date/time value you want to format. 

In our example, we’ll open up this automation that sends a Slack channel message for newly flagged emails in Outlook. 

A Power Automate flow with a date-time value to convert

As you can see in the Slack screenshot below, this “Message sent” time doesn’t look great in its initial format. It’s probably fine for robots, but it’s got a long timestamp that isn’t really easy for human beings to read. 

A date-time value in Slack in its original format created by Power Automate

This is the date and time that we’ll adjust to a more easily readable layout. 

Add a “Convert time zone” action to your flow

In Power Automate, add a step to your flow.

You can add this step anywhere after the step that finds or creates the date/time value you want to reformat, and before the step where you send the formatted time somewhere else. 

The “Message sent” timestamp comes from the trigger in our automation, so we’ll add this step right after it. 

Adding an action after the step that creates or finds the relevant date-time value

In the “choose an operation” window, search for “Date”, and select the built-in “Date Time” that appears. 

Searching for Date Time actions

Then, select the “Convert time zone” action. 

The Convert Time Zone action in the list of Date Time actions

This action includes an option to reformat the time that you’re converting, and it doesn’t require you to convert the time zone if you don’t want to. 

However, many apps process all timestamps in Universal Coordinated Time or “UTC” instead of your local time zone, so being able to convert the time zone will often be quite convenient as well. 

Configure the ‘Convert time zone’ step to reformat your date/time value

Once you’ve added “Convert time zone” to your flow, you’ll just have four fields to fill out.

Base time 

First, for “Base time”, you need to enter the time that you want to convert and/or reformat. 

You can enter a date and time manually, but in most cases, you’ll probably want to use a date time value retrieved automatically from a previous step. 

Click on ‘Add dynamic content’ to open up the “Dynamic content” window if it doesn’t open up automatically when you select the field. 

Then, click on the date-time value you want to use. For our example, that will be the “Received Time” variable from the trigger. 

Inserting the time to reformat and convert in the Base Time field

Source time zone

Next, in the ‘Source time zone’ field, you need to specify the original time zone of your timestamp. This will usually be either your local time zone, or UTC. Just use the dropdown menu to pick the correct option. 

Selecting the source time zone with a dropdown menu

In our example, the timestamp is in UTC. 

Destination time zone

Then, choose the time zone you want to convert the timestamp to in the “Destination time zone” field. 

If you don’t want to change the time zone, then just set this to the same time zone that you chose as the Source Time Zone. 

Once again, you can use the dropdown to find your choice. 

Choosing the destination time zone from a dropdown menu

For our example, we’ll use our local US Eastern time. 

Format string

In the “Format string” field, you can specify a new format for your date and time. 

The dropdown will give you several common layouts, but you can also enter a custom format manually. 

Finding 'Enter custom value' at the bottom of the dropdown menu of formats

In Microsoft’s help docs, you can find detailed lists of every standard format, as well as every option for building a custom format

In our example, we’ll use the following format: MM/dd/yy hh:mm tt

Inserting a custom format string

This will display the date with 2 digits each for the month, day, and year, and then show the time with an AM or PM as appropriate. 

Note that you don’t need to enclose your format string in quotes; you can just enter it directly. 

Update your automation to use the new converted date/time value

Once your “Convert Time Zone” step is all set, you just need to make sure that any subsequent steps now use the reformatted and converted timestamp instead of the original one. 

In our example, we just need to edit the Slack message step.

Deleting the original date-time value from subsequent automated actions

I’ll delete the original “Received time” variable and replace it with the “Converted Time” variable.

Replacing the original date-time value with the converted value

Test your finished automation

Once your automation is updated, save it and give it a test. If this is the first time testing your flow, you’ll probably need to test it manually. Otherwise, you can use data from a previous test to trigger the automation. 

In our example, we’ll give the flow a manual test. 

Testing a flow manually

Then we’ll flag an email in our Outlook inbox to trigger the automation. 

Flagging an email in Outlook to test the flow

In Power Automate, it says everything ran successfully. 

A successful test in Power Automate

Let’s see what the output looks like in Slack. 

A Slack message with a date-time value converted by Power Automate

In the Slack message above, you can see that date has been reformatted into the layout we specified, and converted to our time zone. 

Once you’ve run a successful test, your automation is all set. 

Use a simple no-code step to reformat and convert dates and times

Power Automate makes it easy to reformat your dates and times. Their naming just makes it a little tricky to find the right automated action, but once you’ve found the “Convert time zone” option, you’ll be ready to go. 

If you’d like to learn more about using automation providers like Power Automate, Zapier, and Make, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

March 18, 2024
Build Automations in Seconds with Make's AI Assistant

No-code automation is all about saving time.

But what if we told you that with Make’s new AI Assistant, you can save time while you’re building a time-saving automation?

Just send a prompt to the assistant, and it will build the automation for you – or at the very least, it will generate a great starting point. 

In this post, we’re going to quickly show you how the AI Assistant in Make works.

We’ll demonstrate a few prompts to show you how it can build a scenario, edit its own work, and give you tips from Make’s help docs.

Make’s AI Assistant: a constantly evolving beta feature

Make, formerly known as Integromat, launched the AI assistant in February as a beta feature. It’s now available to every Make user, even if you’re just using a free account. 

As a beta feature, the AI Assistant is being updated constantly. For instance, Make just recently added an “Ask about Make Documentation” option while we were preparing this post. 

the AI assistant in Make with a newly added "Ask about Make documentation" feature

With updates happening so fast, you should expect that much of what we demonstrate in this post will look a bit different over the next few months. However, most of the fundamental options and features will likely remain consistent. 

How to launch Make’s AI Assistant

You can access the Make AI Assistant by creating a new scenario. 

The Assistant is in the bottom right hand corner of the screen. Just look for the “AI Assistant” button. 

The Make AI assistant in the bottom right corner of the scenario builder

Click on the button to open AI Assistant. Once you open it up, you’ll be greeted with two options: 

Generate/edit scenario, which will automatically build a scenario based on your prompt

Ask Make Documentation, which gives answers to general questions about using Make

The Make AI assistant with "Create or Edit a Scenario" selected

Let’s start with “Generate/edit scenario”. 

Automatically building a Make automation with the AI Assistant

To start building an automated scenario with Make’s AI assistant, just enter a prompt describing what you want to build.

Tips for crafting your prompt

In your prompt, it’s best to use simple, direct language, and to focus on the apps and events you want to include in the scenario. 

The AI assistant can’t configure settings within each module, so providing extra detail about each field and option won’t be necessary. 

For example, you might want to enter a simple prompt like this:

“Build a scenario that runs whenever a new record enters an Airtable view. Send an alert about the new record in Slack and Gmail.”

Sending a simple prompt to the Make AI Assistant

Note that this prompt doesn’t mention any specific details like Slack channel or email subject line, since these details would just be ignored anyway. 

Reviewing the AI’s output

Once you enter your prompt, Make’s AI Assistant will “think” for a bit, then build a scenario that attempts to replicate what you described. 

A simple scenario built by the Make AI Assistant

In the image above, you can see that the AI assistant successfully added all the correct actions to our scenario based on our prompt.  

An un-configured module created by the Make AI Assistant

Each module has the right app and action, but as expected, no settings are configured within each module. 

If you’re satisfied with the AI’s output as a good starting point, you can begin configuring each step yourself. Just note that once you start configuring a module, you can no longer use the AI assistant to update your scenario.

Using AI prompts to refine your scenario with conditional logic and more

If you’re not happy with the AI’s initial output, or if you just want to add more steps, then you can send another prompt to the AI to adjust the scenario’s modules. 

For example, we’ll send another prompt to add some conditional logic to this scenario. Here’s the prompt we’ll use: 

“Update the scenario to include conditional logic after the trigger. In one path, send a Slack notification and an email through Gmail. In the other, just send an email through Gmail.”

Sending a prompt with conditional logic to the Make AI Assistant

Note that the prompt doesn’t mention filters for each path, since once again, the AI won’t be able to add those filters.

After we enter the prompt, the AI offers up a modified version of the same scenario. 

A scenario with a router built by the Make AI Assistant

This version includes a router with two paths. One path has modules to send messages in Slack and Gmail, while the other has a step for Gmail only, just like we asked. 

This is an excellent scenario to get started with. Notably, being able to implement routers for conditional logic puts Make’s AI assistant ahead of Zapier’s similar feature, which can’t use paths (based on our experiments so far). 

Limits of Make’s AI Assistant

Note that the AI Assistant won’t always work well with every prompt. As we’ve noted, the AI can’t configure specific settings within each module. 

Additionally, with more complicated prompts, the AI assistant is more likely to make mistakes. 

For instance, while our team was experimenting with a similar prompt regarding conditional logic earlier, it added in a JSON step for no particular reason in one of the paths.

A scenario built by the Make AI Assistant with an inaccurate JSON step

The scenario was correct otherwise, so it still was a useful jumping-off point. Even if the assistant’s output isn’t perfect, it’s still quite helpful more often than not. 

Get answers to your Make questions with the AI assistant

In addition to building scenarios, the AI assistant can also help you with any general questions you have about using the platform. 

It will try to answer your question based on the information in Make’s documentation, and will provide you with what is hopefully a relevant link.

Here’s how it works. 

Asking questions about Make’s modules

You can ask the AI assistant any question you have about how Make works. For instance, you might want to ask about one of Make’s functions, like the ‘Repeater’ module. 

In our example below, we’ve asked a simple question: what is a repeater module for?

Asking the Make AI Assistant about the "repeater" module

After just a few moments, we get a brief but thorough explanation of the module, along with a link to the relevant help docs. 

The Make AI Assistant's answer about the "repeater" module

Alternatively, you might want to ask about whether or not Make supports a certain application (although you could always get that answer from XRay.Tools, too). 

In the example below, we’ve asked: Does Make support X (Twitter)?

Asking the Make AI Assistant about Make's support for X (or Twitter)

And again, after a few moments, we get a helpful answer (Make does support Twitter) with a couple links to the relevant info.

The Make AI Assistant's answer about Twitter support

Although it seems the AI prefers the old name for the social media platform. 😉

Use the AI Assistant to augment your skills in Make

So whether you want to start instantly building a scenario or just want to explore what’s possible in Make, the AI assistant’s got you covered. 

Just note that the AI assistant will be most helpful if you’re already familiar with the basics of Make. You can check out our beginner’s guide here to get familiar with creating automated scenarios in Make.

Building automations and more with Make’s AI assistant

With Make’s new AI assistant, getting an automation started is faster than ever before. Just chat with the AI to figure out what you want to build, then send a prompt to get the basics of your scenario ready. 

If you’d like to see more automation tips, tutorials, and updates, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

News and Updates
March 11, 2024
5 New Ways to Do More with Your Automations in Zapier

Zapier is the most popular no-code automation provider available, but in the last several months, they’ve been expanding their features to go beyond software automation. 

With Zapier’s latest tools, you can build databases for your Zaps, custom web pages, AI chatbots, and more.

In this post, we’ll show five new ways that you can use Zapier to save time and enhance your workflows beyond simple automation. 

Create databases for your automations with Zapier tables

With Zapier tables, you can create simple tables for your Zaps to reference. These tables essentially can be used like any spreadsheet or database app, like Excel, Google Sheets, or Airtable, but they have very limited features in comparison.

a Zapier table

However, Zapier’s Tables integrate neatly with your Zaps, giving you the ability to launch a Zap with the press of a button in a spreadsheet row. 

If you’d like to learn more about how Zapier tables work, you can check out our post here for an overview of Zapier tables. As a beta feature that’s being constantly improved, the UI has already been updated since our post was published, but the functionality remains largely the same. 

Tables also connect with Zapier interfaces, the next feature we’re going to explore. 


With interfaces, you can create simple, custom web pages with a drag-and-drop builder.

Your interfaces can include links to your Zaps, forms connected to Zapier Tables, buttons to launch automations, and more. 

a zapier interface

Interfaces can be a useful way to package and deliver an automation to a client or for your team, but they offer much less flexibility than web pages built in apps like Webflow, SquareSpace, Wix, Softr, or Wordpress. 

AI Chatbots

One of the most appealing features of Zapier interfaces is the ability to add a custom AI chatbot. 

These Chatbots now have their own menu item in Zapier’s dashboard as well, and are an easy way to set up a shareable chatbot to interact with clients and leads. 

a Zapier chatbot

Zapier provides a convenient template that you can use to give your chatbot a custom directive, and on premium plans, you can upload text files with information for your Ccatbot to reference. 

This feature is still in beta, and will likely not be replacing products Chatbase or Botpress in the near future, but it’s a remarkably easy way to get a chatbot up and running. 

You can check out this XRay Tutorial for a look at an earlier version of Zapier chatbots. Many of the specific settings and UI options have changed since then, but it will still help you get a sense of how Zapier chatbots work. 

Zapier Canvas

Zapier Canvas offers a unique way to create basic flowcharts. 

While dedicated apps like Lucidchart are generally much better for creating diagrams, Canvas gives you the ability to add your existing Zaps to each flowchart. 

A flowchart in Zapier Canvas

Then, you’ll see every step of the Zap in the diagram, making it a convenient way to document your Zaps in the context of larger workflows. 

If you’d like to see how Zapier Canvas compares to apps like Miro and Lucidchart, check out our rundown of the 5 best flowcharting apps for planning your automations

Build Zaps faster than ever with a visual editor and an AI assistant

These last two features are more directly connected to building automations in Zapier. 

With Zapier’s new visual editor, you can edit your automations by simply dragging and dropping steps into place. 

Moving a step in Zapier with the visual editor

While this doesn’t change much for the process of building a Zap initially, it makes it much easier to update an automation after it’s already been built. Now, you can re-order the steps in your Zaps with a few quick clicks. 

moving a step in Zapier with the visual editor

And if you try to rearrange your steps in a way that will break your automations, Zapier will provide a helpful warning. 

Building Zaps with AI

When you create a new Zap, you’ll now see a panel at the top of the screen that invites you to create your automation by sending a quick prompt to an AI assistant. 

sending a prompt to Zapier's AI assistant

Building Zaps with AI currently produces some mixed results. It’s quite effective at assembling short, linear Zaps without any branching. 

A Zap built by Zapier's AI

However, it will usually fail to include any conditional logic that you might mention in your prompt, and can’t configure steps beyond choosing the app and action. 

Even with its limitations, the AI Zap builder is still a useful time saver for Zapier builders. You can see it in action in this XRay tutorial about connecting Zapier to Make with webhooks

Explore Zapier’s latest and greatest features to get the most out of your Zaps

The world of SaaS tools never stands still, and no-code automation has to continually evolve to keep up. 

With Zapier’s latest features, the automation provider is becoming a more versatile platform for creating automated workflows, AI assistants, databases and more. 

If you haven’t used Zapier in the last year, or if you’ve just been focused on building automations, take a moment to check out their newest features. You may just find a new way to save some time. 

If you’d like to see more Zapier news and tutorials, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

March 11, 2024
Zapier Beginner's Guide: Updated for 2024

With automation providers like Zapier, anyone can start automating their tedious tasks without needing to write a single line of code. 

All it takes is a few minutes of learning the basics, and you’ll have more time every day for the work that matters. 

In this post, we’re going to show you everything you need to know to get started with Zapier and begin automating your work. 

We’ll quickly explain what Zapier is, and how it works. Then, we’ll guide you through the process of building your first Zap step by step so you can learn the basics firsthand. 

What is Zapier?

First, let’s quickly address an important question that many beginners will likely have:

What is Zapier, and what does it do?

Zapier is an app that automates actions in the software you already use. By connecting your existing web apps together, it allows you to automate the work you’re currently doing manually, or build entirely new automated systems and even prototype your new ideas.

For instance, you could build an automation – or a “Zap” – that runs whenever a Zoom event ends. Then, the automation could download a list of every attendee and find or create matching leads in Hubspot for your team to follow up with. 

marketing automation examples in Zapier

You could also set up a Zap that watches Reddit for comments matching your specified terms, and add the information to a Google Sheet or Airtable base so you can quickly answer.

Social media automation examples in Zapier

You can even use Zapier to automatically send prompts to AI, making it easy to add AI-generated content to any app in your workflows. 

Zapier's ChatGPT integration page

These examples are just scratching the surface. With thousands of apps supported, the possibilities are basically endless.

Zapier also includes several other features that go beyond automation, which you can explore in another post on the XRay blog. But first and foremost, Zapier is an automation provider, so that’s what we’ll focus on in this beginner’s guide.

Building your first Zap to automate your work

Now, let’s take a look at building your first Zap. Here’s the automation that we’ll be building today:

Whenever a file is added to a specified folder in Google Drive, send an alert in Slack containing a link to the file. 

This tutorial's example automation: send a Slack message for new files in a Google Drive folder

This is a very simple automation, and its practical uses are, we admit, quite limited. However, it’s a great starting point to learn how Zapier works. It creates a playground where you can easily edit the automation, then run a test and instantly see the output in Slack. 

These kinds of simple automations are great for trying new ideas and seeing how the data connects, and that’s what we really want you to get from this beginner’s guide.

Note that you could also use similar alternatives for these apps if you’d like. For instance, you could swap out Google Drive for Microsoft OneDrive, or Dropbox in the first part of the automation. The same general principles will apply, but some specific settings and terms used will be different.

Once you’ve got your free accounts set up in Zapier, Slack, and Google Drive, or the other apps of your choice, we can get started.

Create a new folder and a new Zap

Before you create your first Zap, it’s always a good idea to stay organized, so make a folder for your Zap first. 

Select “Zaps”, click on the “Create” button, and add a new folder. 

creating a new folder in Zapier

Give your folder a name like “Beginner’s Guide”.

naming a folder in Zapier

Then, select your new folder, and click “Create a new Zap” to make a new automation within your folder. 

creating a new Zap

Building a Zap manually

The text box at the top of the automation builder will allow you to create a Zap by sending a prompt to AI, but we’d recommend skipping this if you’re a beginner. 

The AI Zap builder

The AI output is usually pretty good, particularly when it comes to building short 2-step Zaps, and it can be a great timesaver once you’re more experienced. However, the AI often gives you an incomplete or slightly incorrect automation.

Once you know how to build a Zap manually, fixing these issues will be easy. But when you’re just getting started, it might be more confusing than it is helpful to start off with an AI’s half-finished work. 

So, instead of typing anything into this window, we’d recommend starting by filling out your Trigger manually.

Adding a trigger to your Zap

The trigger is what starts your automation. Whenever this condition is fulfilled, your Zap will run. 

That’s the basic setup of every automated workflow: 1 trigger that kicks it all off, and one or more automated actions that follow. 

Selecting the trigger element to add a trigger to a Zap

Click on “Trigger” to start setting up your trigger.

Choosing an app for a Zap trigger

In the window that pops up, you’ll need to pick the app that you want to use to start the automation. 

You’ll see a small list of apps in the panel, but you can search the full library of about 7,000 integrations by just entering your app’s name up in the search bar. 

You can also set your automation to run based on a schedule, or to launch on demand with webhooks

If you’re running a software company, and you’d like to add your app to Zapier, just reach out to us to explore your options for building a custom integration. This will allow your users to automate your app with Zapier completely on their own.

For now, just pick “Google Drive” as your trigger app. 

Choosing Google Drive as a trigger app in zapier

Then, you’ll see this panel open up on the right where you can configure your trigger. 

Zapier's automation builder UI

In Zapier’s visual editor, you can add and reorder steps in the flowchart-like area to the left, then edit each step in the panel on the right.

Choose an event for your trigger

Next, you’ll need to specify the “Event” in your trigger. 

This is the specific condition that will prompt the automation to run. You’ll often see several options, so just pick the one that’s the best match for what you want to automate. 

Choosing an event for a trigger in Zapier

In our case, that will be “New File in Folder”, since we want this automation to run whenever a file is added to a specific folder.

Once you’ve chosen your event, click “Continue” to move on to the “Account” section. Then, you’ll be prompted to sign in to your trigger app - in this case, Google Drive. 

Signing in to Google Drive to authorize Zapier

Sign in to your trigger app and authorize Zapier 

Click on ‘Sign in’, and grant Zapier the permissions it needs. You’ll always need to sign into your apps and authorize them the first time you connect them to Zapier.

Authorizing Zapier to automate Google Drive

In order for Zapier to work, it needs to be able to act automatically on your behalf through your accounts. If you’d like to learn more about Zapier’s security practices, you can check out our article exploring the topic in depth. 

Once you’ve signed in with Google Drive, click on continue. 

A trigger in Zapier with an authorized account

Configure your trigger

Under this “trigger” section, you can specify the data that your trigger should watch.

Configuration options for a Google Drive trigger in Zapier

For Google Drive, that means specifying the Drive and Folder to monitor. Zapier will typically provide help text under each field to give you more context.

For “Drive”, they explain that if this field is left empty, it will default to just using your personal Drive - the one listed as “My Drive” in Google Drive. So in our example, we’ll just leave it blank to use that. 

In “Folder”, you’ll need to specify the folder that Zapier should watch. If you don’t have a folder to use, open up Google Drive in a new tab and make one now.

Creating a new folder in Google Drive

Back in Zapier, you can navigate through your folders and select one based on its name. 

Searching for a Google Drive folder in Zapier by name

Identify folders and other objects by their programmatic IDs

However, whenever possible, we’d recommend avoiding identifying items by their name in automations. When you can, it’s best to use an ID, since IDs remain constant, while file and folder names could change.

Most objects in web apps, such as folders in Google Drive, have some kind of ID associated with them. In many cases, it’s also very easy to find this ID by simply looking at the URL bar. 

Go back to Drive, and open the folder you want to use.

Copying a Google Drive folder's ID from the URL bar

If you look at the URL bar for your folder, you’ll see this string of characters after ‘Folders’. That’s your folder’s ID. Copy it to your clipboard. 

Then, go back to Zapier, select the “Folder” field, and choose “Custom”. 

Selecting a custom input to identify a folder in Zapier

Now, you can paste your folder’s ID into the field.

Pasting a Google Drive folder's ID into Zapier

For this tutorial, it’s fine to either use the ID or select the folder from the list. But we’d recommend trying to use the ID first. Techniques like this that create more stable, maintainable automations are a key step to becoming a Zapier expert.

Testing your Zap’s trigger

Once you’ve specified the folder you want to use with either method, it’s time to run a test. 

But before you test a trigger in Zapier, you need to have test data to work with. If you don’t have test data to use, you won’t be able to test your trigger, and it will be very difficult or even impossible to build your automation.

For this automation, that means we’ll need to have a file already in the folder, since the trigger is set to watch for new files in the folder. In other words, if there is no file in this folder, the test will fail.

In our example, we’ll add a file now in Google Drive called “Test Proposal”. 

Creating a file in Google Drive to use as test data

A google doc

Once your test data is all set, go back to Zapier, and test your trigger by clicking on the “Test Trigger” button. 

Testing a trigger in Zapier

After a couple of seconds, Zapier should give you a list of up to three files found in your folder. 

Test data returned in Zapier

Understanding Zapier’s test data

Zapier triggers will always return a lot of data. For files in Google Drive, this will include things like the file’s URL, its contents, its created time, and a lot more. 

Note that different apps will return different data in the trigger. If you’re using alternate apps as you follow along, expect to see data unique to the app you’re using.

Each piece of data – or “variable” – is broken down into labels and values. The labels are in the blue rectangles on the left, while the values for the specific selected record are to the right. 

Every Google Drive file pulled into Zapier will have all the same variables with all the same labels, but the values for those variables can be different each time the automation runs.

The "Title" variable retrieved from Google Drive with a value of 'Test Proposal'

For instance, every file will have a Title, but that exact title will depend on the doc in question. This is called dynamic data, and it’s a key part of how Zapier works. 

But we’ll touch more on that later. For now, continue with this test record and add an automated action to our Zap.

Add an automated action to your Zap

Clicking “Continue” will add a step to your Zap, but you can also click on the plus sign to add an action to your Zap. 

Adding an action to a Zap

Next, you’ll need to pick an app and an event in the same way you did for the trigger. 

Choosing an app for an automated action in Zapier

Search for the app that you want to automate. In our case, that’s Slack. 

Then, choose the “Event” you want the automation to perform. For our example, “Send Channel Message” is a good match. 

Choosing an event for an automated Slack action in Zapier

Click “Continue” to add the action to your Zap. 

Authorize Zapier in your app to automate it

Once again, you’ll need to sign in to the relevant app and authorize Zapier. We’ll sign in to Slack, and allow Zapier the access it needs. 

Authorizing Zapier in Slack

Click “Continue” again, and begin configuring your automated action. 

Configuring your automated action

The available fields and settings for an automated action will vary depending on the app, but you can use Zapier’s help text to figure out what you need to provide.

The required fields in a Zapier action, marked with an asterisk

Also note that the required fields will be marked with an asterisk, so you can always start by filling out those. For this Slack message, you’ll need to identify the channel you want to use, and compose the message to send. 

To specify a Slack channel, you can once again either pick one from the list, or use the channel’s ID.

To find a Slack channel’s ID, open up the channel in Slack. Then, click on its name at the top of the channel window. At the bottom of the panel that pops up, you can view the ID and copy it to your clipboard. 

Copying a Slack channel's ID

Then, go back to Zapier, click “Custom” and paste the ID here.

Identifying a Slack channel by its ID in Zapier

But again, choosing from the list is fine, too. Just make sure to use a channel that you don’t mind sending test messages to. 

Now, you can compose the message.

Using dynamic data in your automated actions

In text fields like a Slack message field, you can provide both static text, and dynamic data retrieved from the trigger (or other earlier steps). 

We’ll start with some static text. Just type a simple message like this: 

A new file has been added to the “Proposals” folder. 

Then include some labels for the dynamic data we’d like to provide. 

File title: 

File link: 

Download PDF:

Composing a Slack message in Zapier with static text

To include dynamic data in your Zaps, just use the “insert data” panel. 

The data will be organized by the step it came from. In this Zap, the only previous step is the trigger, so that’s the only step you can see right now. 

In longer Zaps, like the one pictured below, it’s easier to see how the data is broken up by different steps.

The "insert data" panel in a multi-step Zap

To find a specific variable, you can enter a keyword in the search bar. We want the file’s title, so we’ll search for “title”.

Searching for data from a previous step in Zapier

In the results, we can see a variable called title, with the value of “Test Proposal”. Click on it to insert it into your message. 

Now, the message will include the title of whatever file triggered the automation to run in the first place.

If that’s “Test Proposal”, it will say ‘Test Proposal’. If the file that triggered the Zap is called “Contract for FakeCo”, it will say “Contract for FakeCo” here. 

Note that while you’re building in Zapier, you can see both the variable name (highlighted in yellow below) and the variable value (green).

Labels and values for a variable in Zapier

However, when the message is sent in Slack, you’ll just see the value. That’s why we added a label for “File Title” ourselves as static text.

Adding additional dynamic data

Now, follow the same process to add dynamic data for “file link”. Just note that the main URL for a Google Drive file is called the “Alternate Link”, so that’s what you should search for and insert into your message.

Inserting the "Alternate link" variable into a Slack message

Finally, add a link where users can download this doc as a PDF. That variable is called “PDF URL”. 

Inserting the Google Drive PDF URL into a Slack Message in Zapier

Now the message is all set.

Configuring optional settings in your automated action

Those are the only required fields, but it’s always a good idea to review the optional settings as well. Send this message as a bot, and give it a unique name. In our example, we’ll call ours “New File Freddy”. 

Then, give your bot an icon using Slack’s syntax for emoji. For instance, we’ll use the :file_folder: emoji for ours. 

Optional Slack settings in Zapier

By default, “include a link to this Zap” should be set to “Yes”. Whenever sending automated messages, it’s always convenient to know where that message is coming from, so keep this option enabled. 

Finally we’d recommend setting “Auto-expand links” to “no”, so the message won’t show previews for all these links we’re adding. That would take up a lot of space, and we’d rather keep Freddy here nice and trim.

The "Auto-expand links" Slack setting in Zapier

You can leave the remaining settings to their defaults.

Once your action is fully configured, click on “Continue” to give it a test. 

Testing your automated action

Click on “Test Step” to test your automated action. 

Testing an automated action

The step will immediately run using the data that you selected in the trigger. 

Test data returned from a Slack action in Zapier

Zapier should give you a success message with a summary of the data that was sent to Slack. But it’s always best to check your apps to see what everything looks like in the wild.

Open up Slack, and check for the message sent by Zapier. In our example, we can see the message right there in the Tutorials channel. 

A Slack message sent by a Zapier test

It provides the file name, a file URL, and a PDF download URL. Clicking on the Google Drive link opens up the doc in Drive, while clicking on the PDF link starts downloading it right away. 

Everything looks good!

Running a live test for your full automation

But before we wrap up this tutorial, we’d recommend running a live test to see the full automation work in real-world conditions. 

Click on “publish”, and your Zap will be turned on. 

Publishing a Zap to turn it on

To run a live test, just perform your trigger condition while the Zap is on. In this case, that means we just need to add a file to the Google Drive folder.

Adding a file to a Google Drive folder to test a Zap

On Zapier’s free plan, you’ll need to wait fifteen minutes for your Zaps to run. 

So take a quick break, and check back in 15 minutes. 

After a little wait, you should see a Slack message with links to your newly added file.

A Slack message sent automatically by Zapier

Managing your automations and apps in Zapier

Now that you’ve built your first Zap, let’s quickly go over your main resources for viewing, maintaining, and managing your automations in Zapier. 

View all of your Zaps

If you click on “Zaps”, you’ll see a list of every Zap you’ve made sorted into user-created folders. We’d strongly recommend using these folders to keep your Zaps neatly organized. In any folder, you can see your Zaps. 

The "Zaps" menu in Zapier

Click on the arrow on the right of any Zap’s name to access additional options, like duplicating the Zap or turning it into a template. 

Options for managing Zaps

Review automated activity and troubleshoot errors in “Zap History”

Under “Zap History”, you can see a summary of every Zap’s activity on your account. You can filter the entries by date range, specific Zaps, the apps involved, and more to easily find what you’re looking for. 

Zap history main page

You can also use the search bar to search within both the titles of your Zaps and the data that the Zap processed.

Searching in Zap history

Once you’ve pulled up the history you’re looking for, you can click any of these entries to see more information. 

Reviewing detailed Zap history

Zap History is the best place to start troubleshooting when a Zap is encountering errors or just not working as expected.

Manage connections in “Apps”

If you click on “Apps”, you’ll see every app connected to your Zapier account. These will be the apps that you’re using Zapier to automate, like Google Drive, Slack, LinkedIn, Hubspot, etc. 

The main "Apps" page in Zapier

You can click on any individual app to see the specific accounts that are connected to Zapier.

Details for a connection or app in Zapier

Note that you can add several accounts for the same app to Zapier.

From there, you can test each connection, reconnect it if the credentials have expired, or rename the connection to help distinguish different accounts. 

Options for managing connections in Zapier

Under the “Zaps” tab, you’ll see a list of any Zaps that use this app across all of your accounts. 

Viewing the Zaps using a specific connection

When you’ve only got a Zap or two in your library, these organizational features might not seem very important. But once you start building a larger automated infrastructure, you’ll need to refer back to these options frequently.

Zapier’s Pricing

Now let’s take a look at Zapier’s pricing structure. 

Zapier recently overhauled their pricing, so this is worth a glance even if you’ve used Zapier in the past. 

Note that you can get a 33% discount on the price of any plan if you pay for an annual subscription. The prices we mention apply to monthly subscriptions. 

Zapier pricing overview

Free plan: a limited option for exploring Zapier

While Zapier does include a free plan, it’s not really going to give you much practical functionality.  With two-step Zaps only and just 100 tasks a month, you won’t be able to do much with it except try Zapier out. 

Starter plan: basic functionality for $30/mo

For $30/mo, the starter plan unlocks Zapier’s basic features, but limits you to 750 tasks a month, 15-minute wait times to run Zaps, and only 3 premium apps total. 

You can check out Zapier’s site for a full list of premium apps, but know that it includes some popular software like Shopify, Salesforce, and PayPal. 

The starter plan can be great for an individual builder who’s just getting started, but if you’re looking to extensively automate your work, you’ll probably need to consider the Professional plan.

Pro plan: build advanced automated workflows for under $75/mo

At just under $75/mo, the pro plan unlocks unlimited premium apps, conditional logic in your Zaps, and 2,000 tasks each month. Your Zaps will also run every 2 minutes

For a solo builder, this will be everything you’ll need to build any automation you want. But for good collaboration features, you’ll need to check out the Team plan, or the Company plan.

Team and company plans: automate your organization starting at $100/mo

The team and company plans, which start at just over $100/mo, offer shared workspaces, shared app connections, a 1-minute wait time to run Zaps, and several other advanced features.

How “Tasks” Work in Zapier

Since it’s an important part of every Zapier plan, we want to take a moment to explain what “tasks” are in Zapier and how they impact your pricing. 

You can read this page from Zapier’s help docs for more detail, but here’s the gist of it: 

Most successful automated actions count as one task. Zapier’s formatter steps and paths don’t count as tasks, and neither do triggers. 

So finding a file in Google Drive to launch a Zap does not consume a task, but sending a message in Slack does consume a task.

You can add more tasks to any of your paid plans for an additional monthly charge. Just open up Zapier’s pricing page and select the amount of tasks you want to see how it affects the price.

Note that while tasks are tracked and limited in every Zapier plan, there is no charge for the data being sent. Other automation providers often limit the amount of data you can process, making Zapier a good choice for automating tasks involving large files and data sets. 

What plan do you need to automate your work with Zapier?

Ultimately, if you’re just getting started with Zapier, you can use the free plan to follow along with this tutorial. Then, if you’d like to explore Zapier further, you can try out the starter plan. But there’s really no need to jump to the Pro Plan until you’re already using several Zaps to automate your daily work.

Alternatives to Zapier

With its unmatched and growing library of about 7,000 integrations, its easy-to-use visual editor, and its versatile extra features, Zapier is a popular choice for no-code builders. 

However, it’s not the only no-code automation provider available, and its high price tag won’t fit everyone’s budget. 

If you’re looking for an alternative to Zapier, you’ll want to consider these options.

Make: advanced no-code and low-code automation at a budget-friendly price

Make, formerly known as Integromat, has fewer integrations than Zapier, but still boasts support for over 1,500 popular web apps. 

An automation in Make

It likely won’t be as intuitive as Zapier for pure no-coders, but Make is arguably easier to use for users with some technical background. There’s a little less abstraction, and you’ll get more direct control over your workflows in Make. 

However, you won’t find as many extras like Canvas, Interfaces, or Tables. However, Make has recently added a new AI builder similar to Zapier’s. 

You can learn more about Make in our Make beginner’s guide

Power Automate: workflow automation by Microsoft

If you’re a Microsoft Office power user, or if your organization is already fully onboard with Microsoft apps, then you’ll probably want to check out Power Automate

An automation in Power Automate

Built by Microsoft, Power Automate includes lots of features for integrating neatly with their other software. 

You can check out our Power Automate beginner’s guide to learn more and get started. 

Discover what you can automate in your everyday software with XRay.Tools

If you’d like to explore which automation providers support the apps you use every day, just go to XRay.Tools and search for your software. 

We’ve indexed Zapier, Make, Power Automate, Workato, Bardeen, and N8N so you can compare top automation providers in one place, triggers to triggers, and actions to actions. 

Automate your organization’s workflows with an XRay Membership

While software like Zapier, Make, and Power Automate is easily accessible to any no-code builder, creating workflows that support your entire team or organization can be a difficult task for anyone. 

If you’d like to automate your company’s work at scale, a Chief Workflow Officer Membership from XRay will be the better strategic choice. With a CWO membership, we design and build automations with your team’s input, so you can just focus on getting your work done faster than ever. 

For approximately the cost of a senior employee’s salary each year, you can amplify the output of your entire team. 

You can learn more about XRay’s Membership options or schedule a free discovery call on our services page

Get hourly support for your automations with LowCodeEngineers

If you’re looking for short-term help with automation instead, you should check out LowCodeEngineers.

LowCodeEngineers is XRay’s solution for quickly connecting small businesses and freelancers to vetted automation experts.

Through this platform you can schedule remote calls for low-code support billed on a convenient hourly basis. 

Automate your daily work with Zapier today

With its easy-to-use interface and massive library of integrations, Zapier makes it simple for anyone to start automating the apps they use every day. Build on what you learned in this beginner’s guide and try creating your own automated workflows. 

If you’d like to see more automation tutorials and beginner’s guides, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

March 4, 2024
How to Pass Data between Zapier and Make with Webhooks

When you’re building no-code automations, you often need to use multiple providers to support a single workflow. 

But even as your automations move from Zapier to Make and back again, you need to make sure that your data stays consistent. 

That’s why in this post, we’re going to show you how to easily send data between Zapier and Make automations using webhooks or an intermediary database. 

We’ll begin by demonstrating how to send data from a Zapier automation to a scenario in Make, formerly known as Integromat. Then, we’ll show you the same thing in reverse - we’ll send data from a Make scenario to a Zap. 

Finally, we’ll quickly demonstrate how you can use an app like Airtable as an intermediary database to move data between different automation providers. 

To follow along, just open up Zapier and Make, and pick any apps that you want to test out. In our examples, we’ll use Airtable and Slack, but you can choose any software you’d like. 

Sending data from Zapier to Make with a Webhooks step

We’ll start with a brief overview of how to send data from Zapier to Make with webhooks. Then, we’ll explain each step in detail. 

1. Open or create a Zap with at least a trigger step. 

2. Add a “Webhooks by Zapier” step. Choose “POST” as the event. 

3. Create a new Make scenario, and choose “Webhooks” as the trigger.

4. Add a new webhook, and copy it to your clipboard. 

5. Paste the webhook URL into your Zapier “Webhooks” step. 

6. Configure the data you want to send to Make as key-value pairs. 

7. Test the automations by running your Make scenario, then testing your Zapier step. 

8. Review the data in Make, and add automated steps that use data from the webhooks trigger. 

Open or create a Zap and add a Webhooks step

To begin, open an existing Zap or create a new one. 

Your Zap needs to at least have a trigger with some test data loaded in. However, your trigger can be in any app that you’d like to use. 

In our example, we’ve retrieved a record from Airtable using a “New Record in View” trigger. 

a trigger in Zapier with test data

Once your trigger is all set, add a new step to your Zap, and choose “Webhooks by Zapier” as the app. 

adding a "webhooks by Zapier" step to a Zap

Note: “Webhooks by Zapier” is a premium app, meaning that you won’t have access to it on Zapier’s free plan. If you’re using the starter plan, you’ll be limited to 3 premium apps. 

After adding the Webhooks step, choose an event.

choosing a POST method for a Webhooks by Zapier step

The options you see here represent methods that you find in an API call. “GET” is used to search for data; “POST” is used to create data; and “PUT” is used to create or update data. 

Choose POST to send data from Zapier to Make.

Get a URL for your webhook

After choosing your event, you can configure your webhook step. 

Webhooks steps require a URL

The first field you need to fill in is the URL. This is the URL you’ll send data to with your webhook. 

To generate and copy this URL, switch over to Make.

In Make, create a new scenario. For the trigger, search for the “Webhooks” app. 

Adding a Webhooks step to Make

Then, choose “Custom Webhook”. 

choosing a "Custom Webhook" trigger in Make

In your webhooks trigger, you can either choose an existing hook to use for your automation or create a new one.

add a new webhook in Make

Click on “Add” to create a new webhook. Give it a unique, descriptive name and save it. 

Naming and saving your webhook

Your new webhook will instantly begin listening for incoming data, but you’ll need to configure your Zapier webhook step before you can send data over. 

Click on the button to copy the URL to your clipboard, then return to Zapier. 

copying the webhook URL to your clipboard

Configure your webhook step in Zapier

Back in Zapier, paste the URL you copied into the URL field. 

Paste the webhook URL into the Zapier Webhooks step

The “Payload Type” will default to “form”, which is what we’d recommend using. You can also use JSON and other formats, but “form” is easiest to work with in Zapier and Make. 

choosing "form" as the payload type in Zapier

Add data as key-value pairs to your webhook step

Under the “Data” section, you can create key-value pairs for each piece of data you want to send over to Make. Initially, Zapier only gives you one blank key-value pair, but you can add more by clicking on the plus button. 

Key-value pairs in the Zapier webhook

The first field in the pair is the “key”, which is essentially the label for the data you want to send. For instance, this might be “Name”. 

The second field is the “value”, which is the actual data you want to send. For example, this would be the company name itself, like “Erin’s Flowers”. 

Add key-value pairs to your webhook

When Make receives this webhook from Zapier, it will process the data with the labels you provide here, so be sure to give them brief, descriptive labels. 

You can add as many key-value pairs as you’d like here by just clicking on the plus button. In our example, we’ll also add data for “Project Manager” and “Status”. 

A Zapier webhook step with several key-value pairs

Note that Zapier will handle URL encoding for you, meaning that you don’t need to worry about punctuation and special characters, like the apostrophe in “Erin’s Flowers”. 

Once you’ve added all the key-value pairs you want, your webhook is all set. You can leave all of the other settings to their defaults. 

Next, it’s time to test what you’ve built and send some data from Zapier to Make. 

Testing your connection between Zapier and Make

Testing the webhook that bridges your two automations will require switching back and forth between Make and Zapier, so you may want to open them up side-by-side on your desktop. 

Open up the Make scenario you created earlier. 

To make sure that it’s listening for incoming data, run the scenario by clicking on “Run once”. 

Testing a webhook trigger in scenario

Then, switch back to Zapier and test your Webhooks step.

Testing a webhooks step in Zapier to send a request

Make should instantly receive data from the test. Click on the number over your Make trigger to review the “bundle” it retrieved. 

reviewing data received by the webhook in Make

You should see all the information from your key-value pairs, with the labels and data that you configured in Zapier. 

You can now use this data just like you would use variables retrieved from any app in Make. 

For example, we’ll add a Slack step to the scenario that sends a message to our Tutorials channel with an alert about a new lead. We’ll just include the lead’s company name in the message. 

Using data from the webhooks trigger in subsequent Make steps

After adding any steps you’d like to include in your scenario, make sure to give the whole workflow a test. 

Click on “Run once” in Make, then “Retest step” in Zapier. 

Then, open up any relevant apps to confirm that your data was sent correctly. When we open up Slack, we can see the message we sent. 

Testing the scenario to confirm that the webhook sent data correctly

Sending data from Zapier to Make with a single lookup ID

As an alternative to creating a separate key-value pair for each data point, you could use a webhook to send a unique ID for the record in question. 

Then, your second automation can use the ID to look up the relevant record and retrieve all of its data at once. 

This method will require an additional search step in your automation, and will be slower than an instant webhook-based automation. It also requires you to use an app like Airtable that associates each record or object with a unique ID that can be retrieved by Zapier. While most apps do use IDs like this, they won’t always be very easy to find with Zapier. 

Conversely, it’s easier to maintain and update automations built with this technique, since there’s only a single piece of data being sent. Additionally, it can be a bit more secure to avoid sending each data point individually to a webhook. 

Updating your automations to use a lookup ID

Note: we’re going to demonstrate a lookup with Airtable. This process will work with many other apps, but the exact variables and their names will be different. 

Using a lookup ID instead of several key-value pairs is a simple change. 

Open Zapier, and edit your Webhooks step. 

Editing a Webhooks Action in Zapier

Remove all of your key-value pairs except for one. In this pair, enter “Record ID” as the key, and enter the record ID retrieved by Zapier in the value field. 

Removing all key-value pairs from the Zapier webhooks step and replacing them with one pair for Record ID

Test the automation once again using the same approach as before. Click “Run once” to ensure that the Make scenario’s webhook is listening for requests, then test your Zapier automation. 

Testing to send the Record ID from Zapier to Make

After running the test, check Make to review the data your webhook trigger received. You should see a single piece of data – the Record ID sent by Zapier. 

reviewing the data received by Make from Zapier

Adding a lookup step to Make

Add a new step to your Make automation to find the record or object by its ID after the trigger (and before the Slack step). Add a step and choose the app you want to perform a lookup in. 

We’ll choose Airtable as our app and select “Get a Record” as the event. If you’re using a different app, you’ll still likely use a “Get” or “Find” event. 

Adding an Airtable "Get a Record" step to Make

Configure the step to search for the record or object in the correct location. For Airtable, that means we need to identify the base and table, and use the ID retrieved in the Webhooks trigger. 

Searching for an Airtable record by its ID in Make

Test the step to load in some data. You’ll have to copy and paste the record or object ID manually for the test. 

Manually entering a record ID to retrieve test data for the "Get a Record" module

If you examine the lookup step’s data, you should see all of the information from the record that was retrieved. 

Finally, update any subsequent modules to use data from the lookup step rather than using data from the trigger, which is no longer present. 

Configuring a "Send channel Message in Slack" module in make with data retrieved in the webhook trigger

Test the entire workflow again to confirm that it all works. Run the Make scenario, then test the Zap. 

Check that all of the steps after your lookup worked correctly. In our example, a Slack message was sent successfully, so our automation is all set. 

The test message sent in Slack

Sending data from Make to Zapier

Now let’s cover how the same process works in reverse, and explore sending data from Make to Zapier with Webhooks. It’s ultimately pretty similar to sending data in the other way, so we won’t go into quite as much detail. 

1. Open or create a Make scenario with at least a trigger step. 

2. Add an “HTTP” step, and choose “POST” as the event. 

3. Create a new Make scenario, and choose “Make a request” as the event.

4. Create a new Zap with a “Webhooks by Zapier” trigger. Set the event to “Catch a Hook”.

5. Copy the provided URL and paste it into your Make HTTP request. 

6. Set your HTTP request method to “POST”, and choose “multipart/form-data” as the body type. 

7. Configure the data you want to send to Zapier as key-value pairs. 

8. Test the automations by running your Make scenario, then testing your Zapier webhooks trigger. 

9. Review the data in Zapier, and add automated steps that use data from the webhooks trigger. 

Add an HTTP step to a Make scenario

Begin with a scenario in Make. Your scenario should have a trigger that you’ve already tested and loaded data into. 

A "Watch Records" Airtable trigger in Make

Add a new module to the Make scenario, and choose “HTTP” as the app (NOT webhooks). 

Adding an HTTP module to Make to send a request to a webhook

Select “Make a request” as the event. 

Choosing "Make a Request" as the event in an HTTP module

To configure the request, you’ll need a URL to send the request to, which you can generate in Zapier

Create a webhook trigger in Zapier

In Zapier, create a new Zap. Choose “Webhooks by Zapier” as your trigger, and select “Catch hook” as the event. 

Creating a webhook trigger in Zapier

Click “Continue”. In the test window, a URL will be generated for this webhook. Copy it to your clipboard. 

Configure your HTTP request in Make

Go back to your Make scenario, and paste the URL into the URL field. 

In the “Method” dropdown, select “POST”, and set the body type to “multipart/form-data”. 

Choosing "Form data" as the body type

For each piece of data you want to send from Make to Zapier, you’ll need to add an item under the “Fields” section. 

Adding items to the HTTP request in Make to make key-value pairs

For each item, set the type to “Text”. Then, provide a label for the data in the “Key” field, and the data itself in the “Value” field. Like Zapier, Make will handle URL encoding for punctuation. 

Adding key-value pairs to the HTTP request

Once you’ve finished adding all the data you want to send as key-value pairs, click “OK” to save and close the module. 

Then, test the scenario to send a request to your Zapier webhook. 

testing the Make scenario to send an HTTP request to the Zapier webhook

Finish your test in Zapier

Go back to Zapier, and test your webhook trigger. 

Testing the webhooks trigger in Zapier to see incoming requests

You should see the test data that you sent from Make. 

[test data]

You can now add steps to your Zap that use the data retrieved in the webhook trigger. 

Using a Record ID instead of several key-value pairs

Just like with Zapier, you can use a single key-value pair containing a record ID instead of sending each individual piece of data. Just be sure to include an additional lookup step in your Zap as well. 

Note that should also add a Record ID field to Airtable, because it will make it much easier to search for a matching record by its ID in Zapier.

You can use the RECORD_ID() formula to display the ID of each record. 

Adding a "Record ID" formula to Airtable for an easy lookup in Zapier

Operational databases: an alternative to webhooks 

In addition to using webhooks, there are some other ways to run sequential automations in Zapier and Make. 

For instance, you could also create an operational database. This is a database that stores and manages data for all your automations.

With an Operational Database, you could use Zapier to start a workflow, and drop some data off in Airtable. 

Sending data to an operational database (ODb)

Then, Airtable would trigger a Make automation to run that uses the same data. 

Retrieving data from an operational database (ODb)

That way, the Make automation can reference the data created or updated by Zapier without needing to involve webhooks at all. 

Adding data retrieved from an operational database to another automated action

And of course, you could switch the order of the providers if you want - it would work the exact same way if you started with Make and picked things up with Zapier. 

Just like with webhooks, there are some pros and cons to this method. It’s going to be a bit slower than using instantaneous webhooks, and it could be a bit easier for your team to accidentally break the automation by editing your Airtable views. 

But on the other hand, it gives you more visibility into the process, allowing you to see the data every step of the way. You could also add a human checkpoint here, where a person would review and approve the data before allowing the automation to continue to the next step. 

Use Guardian to manage errors in all your automation providers in one spot

When dealing with multiple automation providers, you should try out Guardian by XRay. 

Guardian aggregates error emails from multiple accounts into one place making it easy to detect and manage automation errors across your accounts and your clients’ accounts. 

Guardian by XRay.Tech

Just go to to get started. 

This is a must-have if you’re managing automations in several providers with multiple clients. 

Easily send data from one automation provider to another

With webhooks or operational databases, it’s easy to send data from one automation provider to another. You can set up a simple automated step to directly send all the data you want, send over a record ID for a quick search, or deposit data into an operational database and retrieve it with the next automation. 

No matter which approach you choose, you can seamlessly build a single workflow that spans multiple automation providers. To learn more about building automated workflows, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

February 26, 2024
Send an Automatic PDF Export of Your Google Docs with Zapier

When you’re working with Google Docs, it’s often better to send your clients and collaborators a PDF export rather than sharing a direct link to the doc. 

With Zapier, you can easily incorporate PDF exports into your automated workflows just by adding a step and picking the right variable. In this tutorial, we’ll show you how it works and go over some of your key options. 

What you may not realize is that you can use Zapier to automatically send a PDF of any Google doc by just picking the right variable. 

Exporting a link vs. exporting a file

Before we begin, it’s important to note that you have a key choice when sharing a Google Docs PDF via Zapier. 

A “Find a File” step using either Google Docs or Google Drive will be your most versatile choice. When you use a “Find” step, Zapier will return both a PDF export link, and the PDF itself. 

Note: the “New File” trigger in Google Drive and the “New Document” trigger in Google docs will provide you with the same data, as well. 

If you use a “Create a Document” step with the Google Docs Zapier integration, then you’ll be limited to an export link

When you send your PDF to another app with Zapier, some apps will require a link; others will require the file itself. 

We’ll show you how both variables work. 

Sharing a Google Docs PDF file with Zapier

When you use a Google Drive step to find a Google Doc, you can easily retrieve the PDF file, or a download link for the PDF. 

This is the most flexible option that will accommodate most use cases, so we’ll start here. 

1. Add your trigger or search step to retrieve a Google Doc

You can use either a “New File” trigger or a “Find a File” search step in Google Drive’s Zapier integration to retrieve the file. You can also use similar steps in the Google Docs integration, but we’ll demonstrate how it looks with Drive. 

a Google Drive "New file" trigger in Zapier

2. Test the trigger or search step and review the returned data. 

You should see a “File PDF” variable that will let you send a PDF export of your Google Doc. 

The 'File PDF' variable retrieved from the new file in Google Drive

There will also be a “PDF URL” or “Export Links Application PDF” variable that will let you share a link where users can download the PDF. 

The "PDF URL" variable retrieved from Google Drive

The distinction between sending the file vs. sending the download link may seem subtle, but some apps will only accept a link, while others will only accept a file. 

3. Add an automated action to send your PDF to another app

You can now send your PDF link or file to nearly any app that’s supported by Zapier, such as GMail or Slack. 

For instance, if you’re sending the PDF in an email, you can insert the download link into the body of your email.

The "PDF URL" variable inserted into an email body

You can also add either the file or the link to the email as an attachment.

the "File PDF" variable attached to an email

When a user clicks on the download link the email, the file will immediately begin downloading. 

Instantly downloading a PDF from the provided link

Note: the link appears as an attachment as well in Gmail since Gmail will scan the email for links and include them in the “attachments” section. Clicking on the link in the body or the attachments section will produce the same results. 

When they select the attached file, they’ll be able to view the PDF in their browser and download it if they wish. 

The PDF attachment being viewed in the user's browser

Bonus tip: Embedding a link in text

If you’d like to embed your download link into your message text:

1. Change the email body type to HTML. 

Changing the email body type to HTML

2. Use an HTML link tag to embed your link into some text, using this format:

<a href=”url”>Text to embed link in</a>

Hyperlinking text with HTML

Make sure to include other appropriate tags, like line breaks (<br>). 

When the email is sent, the recipient will see the hyperlinked text instead of the full URL in the email body. 

Hyperlinked text in an email

You can learn more about HTML tags on W3Schools.

Exporting a Google Docs PDF download link with Zapier

If you’re using a “Google Docs: Create a Document” step in Zapier, you can only retrieve a PDF download link from the newly created document. You won’t be able to access a variable for the PDF itself. 

However, this may still be a preferable option in some use cases, since it won’t require an additional step just to find the doc.

1. Add a “Create a Document” step with Google Docs.

Configuring a Google Docs "Create Document" step in Zapier

2. Test the step and review the test data. 

The "Export Links Application Pdf" variable retrieved from Google Docs

With the “Create a Document” step, you’ll only have an “Export Links Application PDF variable”, which is a download link for the PDF. 

3. Add a step to send the PDF download link to another app

You can send the PDF link in any app you’d like. If you send it a field that supports HTML, you can embed the link into text using an HTML link tag. 

Inserting the "Export Links Application PDF" variable into an email

Automatically send your Google Docs PDFs anywhere

With Zapier, it’s easy to automatically get a PDF for a Google Doc and send it to anyone. Just pick the right variable from the list, and you’ll be good to go. 

If you’d like to see more automation tips, tutorials, and beginner’s guides, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

February 19, 2024
Power Automate Beginner's Guide: 2024

Is your to-do list getting a little too long? Are you tired of wasting your time with dull, repetitive tasks? Thankfully, there’s a simple solution to these common problems. With no-code automation, anyone can start removing tedious work from their daily schedules.

In this post, we’re going to show you everything you need to know to get started with an automation provider that’s perfect for anyone already using Microsoft apps at work: Microsoft’s Power Automate.

We’ll introduce you to Power Automate, explain what it does, and show you how it works. We’ll walk you through the process of building your first automation, or “flow” in Power Automate step by step. 

In our example flow, we’ll connect OneDrive to Slack for simple alerts, so you can see how the platform works firsthand. 

Finally, we’ll go over some pricing info and briefly explore what distinguishes Power Automate from other automation providers, like Zapier and Make. 

What is Power Automate, and what is no-code automation?

First, let’s cover the basics of Power Automate. 

Power Automate is a no-code automation provider developed by Microsoft. Power Automate supports Microsoft’s popular suite of business software, as well as hundreds of other cloud-based apps. 

Tip: You can see a complete, indexed list of every app that Power Automate supports on XRay.Tools. You can also see which apps have integrations in other automation providers like Zapier, Make, and N8N. 

Every automated flow in Power Automate runs whenever its specific triggering event occurs. There are a few different trigger types you can use:

• App triggers: These triggers will launch an automation whenever a specific event occurs in a designated app. Example: Create a message in Microsoft Teams whenever there’s a new file created in a specific OneDrive folder.

an app trigger in Power Automate

• Scheduled triggers: Launch at automation at a scheduled time. Example: Send a summary of all your tasks in Planner to your email inbox every day at 8:56 AM. 

a scheduled trigger in Power Automate

• Button triggers: Launch an automation by clicking a button. Example: Schedule a meeting in Outlook for the next available half hour at the press of a button. 

a button trigger in power automate

RPA in Power Automate

In addition to automating web apps, Power Automate also supports robotic process automation, or RPA.

desktop automation (RPA) in Power Automate

With RPA, you can automate work in your desktop applications. This can be a very useful feature, but since we’re primarily focused on web-based automation on this blog, it’s not something we’ll be covering in this video. 

Let us know in the blog feedback survey if you’d like to see a video exploring Power Automate’s RPA features. 

But for now, let’s dive into building your first automated cloud flow in Power Automate.

Build your first flow in Power Automate

Here’s the automation we’re going to show you how to build: 

Whenever a new file is created in a specific OneDrive folder, send an automated alert to a specific channel in Slack. 

Our example flow: send a message in Slack when a file is added to a OneDrive folder

Note that this automation would also work with Microsoft Teams, but your Teams account will need to be part of a company or school’s workspace; individual accounts won’t work. 

Accounts and software: what you’ll need for this automation

To build this automation, you’ll just need free accounts in:

Power Automate



We’d recommend using the same Microsoft account for Power Automate and OneDrive. 

1. Create a new cloud flow in Power Automate

To begin building, open up Power Automate, and create a new flow.

To start creating a new flow, you can click "Create" either in the middle of the home screen or on the left-hand sidebar. 

2 ways to create flows in Power Automate

Different flow types in Power Automate

Then, you'll see several options to choose from:

“Instant cloud flow” lets you start an automation in your web apps by pressing a button or sending data to a webhook. 

“Scheduled cloud flow” allows you to set up an automation to run at specific times, and is also designed for web apps.

“Desktop flow” is for automating tasks on desktop applications. 

And finally, “Process mining” helps you pull and analyze data from your Microsoft apps.

different flow types in Power Automate

However, for our purposes today, we’re going to use the first option: “Automated cloud flow”.

This option triggers automated actions in any web app when a certain event happens in another web app. 

Click "Automated cloud flow" to create your new flow. 

Name your new flow

Naming a flow in Power Automate

Next, you need to name your flow. Make sure the name is brief but descriptive. For instance, we’ll title our example “Slack Alerts for New OneDrive Files”

As you start building more automations, you’ll want to make sure you can easily keep track of each flow and what it does. 

After entering a name, you can pick the app and event that start the flow. 

2. Add a trigger to your flow 

Look up the app you're using – in this case, OneDrive – and find a trigger that fits what you need. For this automation, select "When a file is created (properties only)".

Choosing a trigger in Power Automate

If you're not sure which trigger is best, you can do a quick Google search for more info, or just try using a trigger and see what data it gives you. 

After choosing your trigger, click "Create." 

Creating a new flow in Power Automate

Then, you'll need to authorize Power Automate to use your information by signing into your trigger app, like OneDrive, and giving Power Automate permission to access it.

Authorizing Power Automate to use an app like OneDrive

Configure your flow’s trigger

Now, you need to configure your trigger. 

Configuration typically requires specifying the exact folder, document, or other location that the trigger needs to monitor. 

For this OneDrive trigger, you only need to specify a folder. 

Basic options for a OneDrive trigger in Power Automate

Click on the folder icon to open up your OneDrive directory, and then pick the folder you want. 

Note that you can open a folder and look for subfolders by clicking on the arrow next to each folder’s name. 

Selecting a folder for Power Automate to watch in OneDrive

In our example, we’ll choose the "Client Proposals - Tutorial" folder. 

A OneDrive trigger with a folder selected in Power Automate

Identifying a folder is the only necessary setting for this trigger, but it’s always a good idea to explore the advanced options for any trigger before continuing.

Advanced options for the "When a File is Created (Properties Only)" OneDrive trigger in Power Automate

Under "Show advanced options”, you’ll find two additional settings: "Include subfolders" and "Number of files to return." 

Enabling the "Subfolders" option will ensure that the automation also runs when a file is added to a subfolder of your designated folder. 

The "Number" setting allows you to choose the maximum number of files to return. 

For our example, we can leave these settings to their defaults. However, these could both be very useful if you’re working with a lot of files and subfolders.

With the trigger all set, click "New step" to add an automated action to your flow. 

3. Add an automated action to your flow

Just like with your trigger, you can begin adding an automated action by searching for the app you want to use. In our example, we want to send a Slack message, so we’ll search for "Slack." 

Adding a Slack message to a flow in Power Automate

Then, pick an appropriate action from the resulting list. Since we want to send a message, "Post message" is the best match. 

Tip: Automation providers like Power Automate rely on APIs to connect to other apps. Understanding API basics and methods like POST and GET will make it much easier to automate your work!

Next, you need to sign in to authorize the app, since Power Automate requires authorization in every app it connects to. Just like with OneDrive in the trigger, you need to sign in to Slack and grant access to Power Automate. 

Authorizing Power Automate to access Slack

It's important to note that you may need to complete the authorization process twice, as Power Automate may time out while waiting for you to sign in. 

Power Automate showing an error after the first attempt to sign in to Slack

If this happens, just try again, and your connection should be successfully authorized. 

Configure your automated action

Once you're signed in, you'll see some options for configuring your automated action. Initially, only a couple of options are shown for Slack: channel name and message text, both of which are required. 

Basic options for an automated Slack message in Power Automate

To pick a channel name, click to pull up a list of all the channels in your Slack workspace. 

Picking a channel from a list in the "Post Message" module

You can also scroll down to the bottom and select “enter custom value,” which will allow you to identify a channel by its ID.

At XRay, we typically recommend using IDs to identify channels, folders, documents, or any data in automations because IDs remain constant while file names can change, which may break automations. 

However, for this tutorial, either method will work; you can pick from the list or enter the ID.

A "Post message" module with the channel chosen

Tip: to find a Slack channel’s ID, open the channel in Slack. Click on the channel’s name, and scroll down to the bottom of the window that pops up. You’ll see the channel ID there. 

Next, you can compose your message in the “Message text” section. 

Entering static text into Power Automate: composing your Slack message

In any text field in Power Automate, you can either enter text directly or retrieve “dynamic content” from an earlier step in the automation. 

A "message text" field with optional dynamic data

Dynamic content refers to data that has been retrieved, created, or updated by the automation. We’ll show you how this works as we put together this Slack message. 

We’ll start with some static text for our alert: 

“A new file has been added to the Proposals folder!

File name:”

Entering static text into a Slack message in Power Automate

This is all static text, which means it will be exactly the same every time the automation runs.

But now, we'll add some dynamic content to actually retrieve the name of the file that triggered the automation.

Working with dynamic content in your Power Automate flows

To add dynamic content, click "Add dynamic content" beneath a text field if the window isn't already open. 

Then, select the content you want to insert. We’ll choose "Display Name" to get the name of the file. 

Combining dynamic content with static text in a Slack module in Power Automate

If the file that triggered this automation is called "Document A", then the “Display name” variable will say "Document A" here in place of “Display name” when the automation runs. 

If the file is called "Document B", it will say "Document B", etc. 

Dynamic content is referred to as "dynamic" because it changes to reflect the data that triggered the automation, or the data that the automation creates or finds while running. 

You can use dynamic content to retrieve data like the name of a file, the time it was created, its contents, and other useful information. 

However, sometimes, you’ll need to combine dynamic data with custom static text to produce the value you want. 

Combining static text and dynamic content

For example, let’s say we want to add a link where we can open the document directly. We’ll go ahead and add a static label: "File link". 

A Slack module with no search results for "URL"

Then, we'll search within "dynamic content" for "link" or "url", but there aren't any results. However, there is a piece of dynamic content for “ID”.  

The "ID" option in the "Dynamic Content" window of the Power Automate slack module

If you open a document in OneDrive, you’ll see that the URL includes an ID. 

The standard URL format for a Word file in OneDrive

So even though there isn’t a specific item for “link”, we can append the ID to some static text to build the URL we need.

We’ll copy the first part of the URL—everything before the ID—and paste it into our message as static text. 

The beginning of a OneDrive URL added to the Slack module

Then, at the end of that, we'll insert dynamic content for the file ID with no spaces between the static text and dynamic content. 

Completing the OneDrive URL with a dynamic ID

This approach will create a complete OneDrive URL where our team can open and edit the file. 

Automation providers like Power Automate won’t always include the exact data points you were looking for, but you can often use what they provide to build what you need. 

Combining dynamic data with static values is a common pattern you’ll repeat as you continue to build more no-code and low-code automations. 

Note: This method will work to create a functional URL for a Word Document in OneDrive, but may not work for other file types. 

4.Configure advanced options for your automated action

With both the channel name and message text fields filled out, the only two required fields for the Slack message are complete. 

However, just like with the trigger, it's a good idea to check the advanced options for your actions to see additional useful settings before you continue. 

To access the advanced options for any automated action, click "show advanced options."

Advanced options for sending Slack messages with Power Automate

For Slack messages, “advanced options” reveals several more settings. While we won't go into detail about all of them, there are a few worth highlighting. 

For instance, there’s "Bot Name." This lets you give your bot a unique name in Slack, instead of it just being identified as Power Automate.

This is useful for giving context for different automations that are sending alerts or messages. 

For this automation, we’ll give our bot the name "OneDrive Bot."

Naming the Slack bot

“Slack markup parsing” is enabled by default, which means you can use markdown in your message, and Slack will format it accordingly. 

To demonstrate how this works, we'll add asterisks around the display name to make it bold. 

Adding markdown to the Slack message and setting "Unfurl" options to "No"

A couple other settings to consider are "Unfurl links" and "Unfurl media," which we'll set to "no" to avoid having the message take up too much space.

Additionally, you can customize the appearance of your bot message with "Icon URL" or "Icon Emoji." We'll add a :file_folder: emoji to give our message a unique look. 

Adding an icon emoji to the Slack message

5. Test your automated flow

Once your message and settings are all set, you can click “Save” to save your choices.

After saving, a green banner will appear at the top of the screen recommending that you test this flow.

To test your automation, click on 'Test' in the top right corner. 

Begin testing an automation in Power Automate

You’ll have the option to choose between testing "manually" or "automatically." 

Based on our experience, manual tests tend to be more reliable, and you’ll often be required to conduct a manual test before the option for an automatic test will be available. 

As such, you’ll likely want (or need) to run a manual test first. 

After selecting “manually”, click "Test." 

Testing manually

To perform a manual test, you’ll need to fulfill the trigger condition that launches your flow. In this case, that means actually adding a file to your designated OneDrive folder. 

Creating a file in OneDrive to trigger the manual test

To confirm that the automation ran as expected, check Slack for a new message. 

The successful test has produced an automated Slack message

In our test, pictured above, the automation ran successfully. The file name is bolded, and there’s a link to open and edit it. Clicking on the link confirms that the correct URL has been created using static text and dynamic content. 

The link in the Slack message leads to the correct document

Since this is a manual test, you’ll have to add a new file to the OneDrive folder designated in your automation.

Running a live test

The manual test confirms that the automation is set up correctly, but it’s always a good idea to run a live test as well. 

With a live test, you’ll see how the automation will perform as it’s really used going forward, which can be a little different from your manual tests. 

To conduct a live test, just fulfill the trigger condition again. You don’t need to click on “test” or any other menu option first. 

Adding a file to OneDrive to trigger a live test

However, after adding another file to your OneDrive folder, you won’t see a new Slack message immediately. On the free plan, Power Automate takes up to 15 minutes between each run. 

Grab a sandwich or work on something else for a bit, and check back later. 

The live test produces another Slack message

After 15 minutes, you should see a new message in Slack that links to your latest file in OneDrive. 

With your automation fully tested, save your work and click on the arrow in the top left to exit the flow builder. 

6. Add an action to instantly alert you to errors

Finally, there’s one more action to add to the automation before it’s complete. 

While it’s not strictly necessary, we’d recommend including a step in the automation that will immediately alert you if your flow encounters an error. 

By default, Power Automate will send error warnings to the email attached to your account. However, these warnings don’t get sent very often. It appears that Power Automate only sends out one email each week for your errors, and all of your errors will be consolidated within a single email. 

For important automations and steps, you’ll want to know immediately if they aren’t running correctly. 

Save and exit before adding an error notification step

It’s critical to make sure that you have saved the flow and exited it at least once by clicking on the arrow in the top left of the flow builder. 

How to save and exit a new flow to update its URL

Otherwise, the flow’s URL will be a unique URL designed to create a new flow, rather than a URL that points to your specific automation. 

To build an effective error notification, you’ll need to reference the automation’s URL, so make sure to save and exit your flow if you haven’t done so already. 

Adding an error notification step

To set up an error alert for any step in an automated flow, begin by editing the flow from your “flows” menu. 

Add a step after the action you want to receive alerts about. In our example, we’ll add the step after the Slack message. 

adding a new step to the flow

Search for “Notifications” as the action. 

Adding an email notification to the flow

Then, choose whether you want Mobile or email notifications. For this example, we’ll use Email. This will send a message to the email address that’s associated with your Power Automate account. 

Next, you can configure the conditions the notification will be sent for. 

Click on the three dots menu, and select “configure run after”.

Where to find "configure run after" in a Power Automate notification step

Then, choose when the notification will be sent. You can choose to send it when the selected step has: Succeeded, Failed, been Skipped, or Timed out.

In our example, we’ll select “failed” and “timed out”. 

Configuring when the notification will be sent

Click “Done” to commit your choices. 

Next, you’ll need to compose the subject and body of the message that gets sent. 

For the subject in our example, we’ll write ‘Your “Slack Alerts for New OneDrive Files” flow has encountered an error.’

Then, in the body, we’d recommend including a brief message and a link to the automation so you can easily open it and investigate the error.  

Configuring the notification text with a link to the flow

You can use HTML link tags like this to reference the flow’s URL: 

<a href=”url”>link text</a>

With your message configured, you can save your flow again. 

You’ll now receive instant alerts when your Slack step doesn’t run correctly, instead of needing to wait for Power Automate’s default emails. 

With your error notification set up, you’ve built your first flow in Power Automate and are all set to start using it to automate your work. 

Manage errors in several automation providers with Guardian by XRay

If you’re currently a Zapier or Make power user, and want to add Power Automate to your stack, you should check out Guardian by XRay. 

The Guardian website's homepage

Guardian will aggregate all of the error alerts you receive from all of your automation providers in one place so you don’t lose track of any bugs. 

It also gives you a convenient portal where you and your team can collaborate to discuss errors and fix them.

Just go to to get started.

Other features in Power Automate

Next, we’d like to briefly cover a few of the other interface items and features that can be helpful as you’re using Power Automate. 

My flows

Click here to see a list of every flow you’ve built. Hover over any of them to see more options, like editing the flow or turning it off. 

Manage and turn off flows from the "My flows" menu

Cloud flow activity

Click on “more” in the left hand sidebar to reveal this option. 

View your cloud flow activity in Power Automate

If you select “Cloud flow activity”, you’ll be able to view all of your web-based automation activity in one spot. This can be a great way to see what your automations are doing at a glance. 


“Connections” can also be found in the “More” sub-menu. 

Under “Connections”, you can view and manage all of the apps that you’ve connected to Power Automate. 

View all of your connections in Power Automate

If Power Automate is having issues accessing any of your connections, you’ll be able to see that here. You can also share and delete connections here, or update your connections to use different credentials. 


If you click on Templates, you’ll see an extensive library of automation templates created by Microsoft’s team and regular Power Automate users. 

Use templates to start quickly building automations in Power Automate

These templates can be a good source of inspiration and are an easy way to start building a new flow. 


Clicking on “Learn” will open up a new tab with lots of documentation and training material for Power Automate. 

Learn more about Power Automate with Microsoft's extensive documentation

With these docs, you can learn how to create new flows and discover every technical detail of the platform. 

Approvals, Process Mining, and AI Hub

These three options – Approvals, Process Mining, and AI hub – are all advanced features that require a premium account to access. 

Similarly, “Desktop flow activity” requires a professional or educational workspace, and won’t be available on a personal account. 

Finally, “Power Platform” will take you to software for business intelligence, app development, and app connectivity.

Access advanced features like Power Platform with premium plans

These can all be valuable tools for enterprise teams, but they’re very much beyond the scope of what you’ll be doing as a beginner in Power Automate. 

Power Automate’s Pricing

There are a few different pricing plans available for Power Automate which can suit various budgets and use cases. 

To learn more about Power Automate’s pricing, you can take a look at this page on their website. 

To see a complete list of “Premium Connectors” (i.e., the apps that are supported by Power Automate), view the documentation page here. 

Power Automate Free Plan

Cost: Free

Features: Build basic cloud flows. Limited to “Standard connectors” only. 

Note: By creating an account  with Power Automate, you will automatically start with this free plan. 

Power Automate Premium

Cost: $15/user/month

Features: Premium Connectors, Desktop automation (RPA), Process Mining, AI builder

Power Automate Process

Cost: $150 per bot per month

Features: Run an unattended desktop flow with unlimited users

Power Automate pricing overview

Both paid plans also offer add-ons for hosted RPA, AI builder, and process mining.

For enterprise users, we’d recommend reaching out directly to Microsoft to learn more and discuss your needs.

What sets Power automate apart

Power Automate is not your only option for building no-code automations. 

There are many different providers available, with Zapier being the industry leader and Make being another good alternative. 

Let’s take a quick look at how Power Automate stacks up to the competition. 

Advantages of Power Automate

Power Automate has several advantages, especially for users who are already invested in Microsoft's ecosystem. 

It’s better suited for Microsoft's own applications and is more specifically tailored to enterprise use cases. 

In comparison, Zapier and Make are more naturally suited to small businesses. Without a team like XRay building and managing your automations for you, it can be difficult to use these providers in an enterprise environment. 

Power Automate also offers desktop automation and process mining capabilities in addition to cloud flows.

These features aren’t available at all in Zapier or Make, which are focused entirely on automating cloud software.

Disadvantages of Power Automate

However, Power Automate also has its cons.  It has fewer integrations than the competition and is not as easy to use. 

Zapier and Make feature intuitive drag-and-drop interfaces for building your automations, and Zapier keeps adding additional tools to make it easier than ever to create automated workflows.

For instance, you can start building Zaps or even create custom automated actions by just writing out a quick AI prompt. In contrast, Power Automate’s builder interface is limited to more basic functionality. 

Choosing the right automation provider

Ultimately, if your team is already heavily invested in the Microsoft ecosystem, Power Automate will be a natural choice due to its features tailored for Microsoft applications. 

Just be sure to enter all of your apps into XRay.Tools before you start building to see if Power Automate supports them all. If not, you can also try out Zapier or Make

Automate your team’s work with no code required

Automating your company’s work doesn’t require any code or custom software. With automation providers like Power Automate, you can eliminate tedious chores from your to-do list in a matter of minutes. 

Try it out today and start creating more time for yourself and your team. 

If you’d like to learn more about designing and building no-code automated workflows, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
February 12, 2024
5 Great Flowcharting Apps for Designing Automations and More

Whether you’re planning an automation or just trying to document a process at work, flowcharts are an indispensable tool for workflow design. 

In this post, we’re going to share 5 flowcharting apps (and 1 bonus utility) that you can use to start mapping your workflows right now. 

These apps range from free tools for casual presentations to robust, enterprise-grade software and solutions, so there’s something here for every use case. 

1. Lucidchart: Enterprise-ready technical diagrams

Lucidchart is a powerful flowcharting app that’s great for knowledge workers in any industry. Through its easy-to-use web app, you can access an extensive library of chart elements, including common standards BPMN. 

In addition to creating detailed technical diagrams with a diverse array of shapes and elements, Lucidchart also enables you to leave notes and comments for your team. 

A collaborative diagram in Lucidchart

Lucidchart also features several integrations with popular software from Google, Microsoft, and Atalassian, making it easy to quickly create charts out of the data you have in other apps.

The main drawbacks of Lucidchart are that its free plan is limited to only 3 documents, and it comes with a relatively high learning curve. It won’t be the most intuitive choice for users without significant experience in creating flowcharts. 

Lucidchart pricing overview

Free plan limited to 3 documents, 60 shapes per doc

$8/mo for individual plan; $9/user/mo for team plan; contact sales for enterprise pricing

Lucidchart pros and cons


• Great for creating detailed, technical flowcharts

• Extensive library of shapes, with standards like BPMN

• Integrates with popular enterprise software


• Limited in free plan

• Relatively high learning curve

Start using Lucidchart here

View more details about Lucidchart’s pricing

2. Miro: a Lucidchart Alternative Focused on Collaboration

Miro offers similar features to Lucidchart, but places a greater focus on collaboration. In addition to flowchart features, Miro provides tools for brainstorming, whiteboarding and more. 

On paid plans, Miro includes useful interactive features like timers, voting, and video chat. 

Collaborative concept map in Miro

Like Lucidchart, Miro also includes an extensive list of integrations with popular software, allowing you to connect with Zoom, Slack, Google Drive, and hundreds of other apps. 

If you’re looking for a tool primarily to build flowcharts, then Miro’s free and starter plans may fall short. You’ll have to spring for the business plan to unlock shape libraries like BPMN. 

However, if you’re looking for a tool that enables remote workshops and planning sessions, then Miro will be a great choice. 

Miro pricing overview

Free plan limited to 3 boards

$8/mo for Starter plan; $16/user/mo for business; 

Miro pros and cons


• Great collaboration features

• Flowchart features comparable to Lucidchart on business plan

• Many integrations with popular apps


Limited flowchart options on Free and Starter plans

Start using Miro here

View more details about Miro’s pricing here

3. or Free, No-frills Flowcharts offers a robust tool for building flowcharts with common standards like BPMN, but unlike Miro or Lucidchart, this app is completely free to use. 

However, don’t expect to find the same sort of integrations or collaboration features that you’d find in other software. gives you an excellent flowchart builder, but that’s pretty much it. 

A BPMN diagram in

All of your docs can either be saved locally or in cloud storage apps like Google Drive or OneDrive, but there are no features for managing teams or access for each doc. 

If you'd like to integrate with Atlassian software like Confluence or Jira, you’ll need to use the enterprise version of the app called There’s no detailed pricing structure disclosed, but gives a few examples, noting that a plan for up to 20 users would cost $20/mo. & pricing overview is free to use

Contact for enterprise pricing & pros and cons


• Free plan allows for unlimited flowcharts, access to BPMN and more

• Uses your own cloud storage for easy file access


No integrations except on enterprise ( plan

Create free flowcharts at

Learn more about here

4. Zapier Canvas: Connect to Your Zaps in Your Workflow Designs

Canvas is a flowchart feature built directly into Zapier. In addition to a few simple shapes for basic flowcharts, Canvas also allows you to reference any of your Zaps, Tables, and Interfaces. 

When you reference a Zap, you’ll also be able to show every step of that Zap in your flowchart. Every reference will also include a link to open and edit the associated asset. 

A flowchart with inline Zaps, tables, and interfaces in Zapier Canvas

While it won’t have much utility for anyone who isn’t already using Zapier, Canvas has a lot of potential for Zapier power users who want to plan or document their automated workflows. 

Canvas is currently in beta, and is free with any Zapier plan. Just like Zapier Tables, we expect that Canvas will eventually come at an additional cost once the beta period is over. 

Zapier pricing overview

Free plan available

Starter: $20/mo; Professional: $50/mo; Team: $70/mo; contact sales for Enterprise pricing

Zapier Canvas pros and cons


• Plan and document workflows right alongside your Zapier automations

• Reference Zaps directly in diagrams


Little utility if you don’t use Zapier already

Start using Zapier here

Learn more about Zapier’s pricing here

Part 5 - Canva

While the other apps in this list so far have focused on technical use cases, Canva brings more aesthetic flair to the table. 

Canva is a multi-purpose, user-friendly digital design app. You can use it to design assets like slideshows, social media ads, company one-pagers, and simple flowcharts. It even includes a library of stock photos and graphics that you can use to quickly flesh out your designs. 

A simple flowchart in Canva

As a jack-of-all-trades design app, Canva offers a little bit of everything, but lacks depth in each specific area. You won’t be able to access premade BPMN libraries in Canva, and instead will have to rely on basic shapes for your flowcharts. 

Canva is best for small teams looking for a general design app, and typically won’t be a good fit for highly technical or enterprise use cases. 

Canva pricing overview

Free plan available

Canva Pro: $120/yr; Canva Team: $160/user/yr; contact sales for Enterprise pricing

Canva pros and cons


• Generous free plan with 5GB of cloud storage, library of stock photos

• Intuitive design app suits many use cases

• Affordable for small teams


Not ideal for technical diagrams

Start using Canva here

Learn more about Canva’s pricing here

Bonus: Use AI and Mermaid.js to generate simple flowcharts

Finally, let’s take a look at creating flowcharts with AI via Mermaid.js. 

Mermaid.js allows users to create charts and diagrams using simple markdown syntax. You can learn more about the syntax here to create your charts manually, but you can also use an AI chatbot like ChatGPT to draft the markdown for you. 

AI generated markdown becomes a diagram in Notion via Mermaid.js

Then, you just need to copy the text into an app that supports Mermaid diagrams, like Notion or VS Code. In Notion, just type “/mermaid” to bring up a Mermaid code block where you can render a diagram. 

If you’d like help designing a workflow, check out the Workflow Designer’s Assistant, XRay’s custom GPT designed to help anyone optimize and automate their work. Note that this assistant will require ChatGPT Plus to use. 

Mermaid pricing overview

Mermaid diagrams can be created for free using tools like ChatGPT, Notion, and VS Code



VS Code

Design, plan, and document your work with these flowcharting tools

Flowcharts can help you organize your thoughts, plan an automation, or add a little visual flair to a presentation at work. There are a lot of tools out there for the job, and between the six we mentioned in this post, there’s something for every budget and use case. 

If you’d like to learn more about streamlining your everyday work, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

No results found.
There are no results with this criteria. Try changing your search.

Not sure where to start with automation?

Hop on a 15-minute call with an XRay automation consultant to discuss your options and learn more about how we can help your team to get more done.

Schedule a 15-Minute Call

🎙Interview me about my Workflow

Workflows take many different shapes, sizes, and tools. Ever wonder how your workflows compare?

Get interviewed and find out!

Interview Me

🗓 Join us for Automation Hours

Monthly automation hours are a free way to get help with automations!

Any platform, any tool, any question is welcome. Just drop in and say hello!

Sign up
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.