The XRay.Tech Blog

XRay automated Journey's onboarding process for faster, more reliable results and a consistent source of truth.
Filters
View all
Category one
Category two
Category three
Category four
Search
Clear
Filter by category
Clear
Filter by tools
Clear
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Tag
Showing 0 of 100
Tutorial
November 4, 2024
Pipedream Beginner's Guide

Are you a software developer or a low-code builder looking for a fast and functional way to build automations?

While providers like Zapier and Make are great for connecting supported apps together with a simple visual interface, their options for adding your own custom code are pretty limited. 

If you’d like to use an automation provider that gives you the freedom to enhance your automations with custom code, sync your projects to Github, and easily write any API call you’d like, then you should explore Pipedream. 

In this comprehensive guide, we’re going to show you everything you need to know to get started. 

We’ll begin by explaining what Pipedream is, and showing how its unique features stack up to competitors like Zapier and Make. 

Then, we’ll show you how to build your first automated workflow in Pipedream. After we’ve built the basic, 2-step workflow, we’ll give it some enhancements with a formatting step, some custom code, and conditional logic. 

What is Pipedream?

Pipedream is an advanced automation provider that lets you build automated workflows by connecting web apps together.

When a triggering event occurs in one web app, the automation will start running, and will perform actions in one or more other web apps. 

For seasoned no-code builders, this probably sounds very similar to Zapier or Make. In many ways, the comparison is appropriate, as you can certainly use Pipedream as a no-code platform if you’d like. They have pre-built integrations for over 2,000 apps and counting, and you can automate your work with these integrations without needing to write any code at all. 

Advanced technical features

However, Pipedream includes many technical features that distinguish it from its competition. On their site, they promise “code-level control when you need it and no-code when you don’t”. 

In our experience using the app, that claim rings true. 

Pipedream gives you the speed and convenience of a no-code platform, with everything being deployed and hosted on Pipedream’s servers.

However, it also gives you the flexibility of adding custom code when you need it, and their options for custom code go far beyond providing a plain text editor to paste in a function or two. 

Extensive support for custom code and engineering best practices

The code editor in Pipedream features syntax highlighting and suggestions, so you can write JavaScript, Python, Golang or Bash with many of the same features you’d expect from your favorite IDE. 

On top of that, you can also sync your Pipedream projects to Github for robust version control. This is a really nice feature for keeping track of your changes. 

Additionally, if an app that you want to automate isn’t natively supported in Pipedream, you can always write custom API calls to perform the actions your workflows need. 

Features like environment variables make it easy to securely use API keys for authorization when you write your API requests.

Customizable timeout settings

Another unique and extremely useful feature in Pipedream is the ability to adjust the timeout window for each automation. 

By default, each workflow will wait up to thirty seconds to run each step, but you can raise that all the way to 12 and a half minutes on a premium plan. 

Your workflows will consume more credits if they use a longer timeout window, but this can be an indispensable feature if your automation relies on lengthy actions. 

For instance, you might need to wait a while for an AI to process a long prompt, and there’s simply no way to do that on Zapier or Make, which have hard timeout limits that you can’t adjust. 

An ideal platform for low-code engineers

If you’re a software developer or low-code engineer looking for a fast way to build an automation without compromising on functionality, Pipedream is a great pick. 

It’s the perfect tool for connecting your internal or legacy systems to modern, commercially available web apps. 

Pipedream is also an ideal choice for low-code builders who just want more control over their automations. 

Additionally, for anyone looking to build a HIPAA-compliant workflow automation, Pipedream is an option. They will sign a BAA, provided that you speak with their team and explain your use case. 

Building your first automated workflow in Pipedream

Now that we’ve covered the basics, we’re going to show you how to build your first automated workflow in Pipedream.

This process will be very straightforward to follow for everyone, regardless of your technical background. 

To begin, we’ll create a very simple automation. When a custom label is added to an email in Gmail, the contents of that email will be automatically sent to Slack as a channel message. 

Once we’ve built that initial automation, we’ll add some additional features, like conditional logic to automatically summarize long emails with OpenAI. 

However, we want to note that the focus of this tutorial is not on these specific apps. Instead, our goal is to show you how Pipedream works using this software as an example. Automating other apps will follow very similar principles. 

Follow along for free

You can follow along with us on a free Pipedream plan. You will need a paid plan to deploy the finished workflow, but you can still build and test it without starting a subscription. 

There’s also a free trial available if you’d like to explore Pipedream’s premium features. 

Create a new project and workflow

To begin, sign in to Pipedream, and create a new Project. Give your project any name you’d like. 

In Pipedream, every workflow needs to belong to a project, which can include multiple workflows, as well as file stores and variables. 

In the “Resources” tab, click “new” to create a new item, and select “Workflow” to make a new automation. Be sure to give your workflow a descriptive name.

For the sake of this tutorial, you can leave all of the other settings to their defaults and just click “Create Workflow” to get started. 

Add a trigger to your workflow: Watching for newly labeled emails in GMail

Every workflow in Pipedream needs to begin with a trigger. Click “Add trigger”, then choose an app where your trigger will occur. 

For our example, that will be Gmail. 

Then, choose the specific triggering event you want. That will be “New labeled email”, so the automation will run whenever a label is added to an email. If you’re not sure which event to choose when building your automations, just check the provided descriptions for more detail. 

Authorize the trigger app

Next, you’ll need to authorize the app used in your trigger. The authorization requirements will vary based on the app in question. 

For Gmail, you’ll just need to sign in with a simple OAuth portal. 

In other apps, like OpenAI for instance, you’ll need to provide an API key. 

Configure your trigger settings

Once you’ve authorized your trigger app, you can configure your trigger’s settings. 

Different triggers will have different settings, but they’ll typically let you set filters and limits on what data to watch for. 

For this “New labeled email” trigger, you can choose a specific label that Pipedream will watch for. The workflow will only run when that specific label is applied to an email. 

For our example, create a custom label in GMail named something like “Send to Slack (Pipedream)” label. 

Be sure to apply the label to at least one email in your inbox, as well. This will be used as test data soon. 

Return to Pipedream, and select the “Send to Slack”  label in your GMail trigger. You may need to refresh the data first by clicking “Load More” to see your newly created label. 

In Pipedream triggers, you can also change the “Timer” setting to choose how often your workflow will search for new data. Note that some shorter intervals will require a paid plan. 

Once you’ve configured your trigger, click “Save and continue”. 

Testing the trigger

With your trigger configured, you’ll need to load some test data into your workflow. 

You can either use real data retrieved from your trigger app, or automatically generate mock data with Pipedream. 

We’d generally recommend creating your own test data so that you can control exactly how it’s set up. To create test data for our example workflow, just apply the “Send to Slack” label to an email in your GMail inbox if you haven’t already. 

If Pipedream has found a relevant piece of data, you’ll see an alert about a new “Event”. 

Click on the dropdown to see more details about the event and select it as your test data. 

After a successful test, you can see all of the data that the trigger retrieved for use in your automation under the “Exports” tab

Clicking on the toggles will display additional information. For instance, under “decodedContent”, you can see the email’s body. 

And under “parsedHeaders”, you can find the email address and name of the sender, among other data.

Add an action to your workflow: Sending a message in Slack

With a properly configured trigger and test data in place, you can now add additional actions to send this data to any other app you’d like. 

For our example, we’ll take this email data and send it to Slack. 

Click “Continue”, and choose an app for your next action. Search for the app you want to use (in this case, Slack). 

Next, choose an action. 

Note that if you don’t see the action you want to perform in your chosen app, you can always choose to build a custom API request instead, or use AI to generate a custom action. 

But that won’t be necessary for this workflow, since you can just use the pre-built “Send Message” action. 

Authorize the app used in your automated action

After choosing an app and event, you’ll need to authorize the app just like you did for the trigger app. 

For Slack, that will just require signing in to your Slack account, and clicking “Allow” to grant the appropriate permissions.

 

Configure your action

Just like with triggers, the settings for any action in Pipedream will depend on the app and action in question. 

But typically, you’ll need to specify where you want to create or update data, and what the data is that you want to create or edit. 

If you’re not sure what the settings are for, or what your options are, you can just read the provided help text (highlighted in the image below). 

For Slack, you need to pick the channel type – direct message, group, private channel or public channel. In our example, we’ll be sending a channel message. You may prefer to send a direct message to make your automation a bit less “noisy”. 

Then, you need to specify a channel, or direct message recipient. For example, we’ll send our message to a dedicated “tutorials” channel. 

Using dynamic data retrieved from earlier steps

Finally, you need to compose your message in the “text” field. In most data fields in Pipedream, you can enter text directly, and you can provide dynamic data retrieved from previous steps in the workflow. Try using both dynamic data and directly entered text in your message. 

You can access dynamic data from the window that pops up. The data all be sorted under “Event”, and other headings specific to each app. 

For instance, you can find the sender’s email address from the GMail trigger under the “parsedHeaders” toggle. 

Just click on “Select path” to insert any variable into a field. 

By inserting the “from.email” path into your message, you’ll ensure that the Slack message displays an address retrieved from the email that triggered the message in the first place – not just a static email address. 

In our example, we’ll also include the send date and time, along with the email body - that’s the “decodedContent” variable. 

Optional settings

That takes care of all the required fields for this action, but there are also a few optional settings that are worth checking out. 

For instance, with these optional settings, you can configure the workflow to use a custom bot name and emoji. We’ll call ours “Email Assistant Émile”, and use the :email: emoji. 

Additionally, you can also choose whether or not to “unfurl” links. We usually set this to “FALSE” to make sure that links don’t take up too much space in messages.

Testing the automated action

Once your message is fully configured to your liking, click on “Test” to run your action. In this case, that will send a message in Slack. 

After a successful test, you’ll see details about the message sent in the “exports” tab. 

You can open up your Slack to see the message that was sent. 

Your first automated workflow in Pipedream is all set, and you can click on “Deploy” to start using it. 

Once it’s deployed, the automation will run on your chosen schedule to check for new emails with your custom label. 

Enhancing your workflow with formatting, custom code, and conditional logic

The automation that we’ve just built works fine, but it’s a very basic setup. 

There are a few things we can do to make it better, and these quick improvements will also introduce you to a few key features and concepts in Pipedream. 

In this section, we’ll explain how to add formatting, custom code, and conditional logic to your workflow. 

Formatting a date/time value

The formatting of the date and time in our example Slack message is a bit awkward and overly long. In a context like this where we’re optimizing for human readability, we don’t really need a timestamp that includes seconds and the timezone. 

Thankfully, Pipedream has built-in features for easy data formatting. 

Pause the deployed workflow so it doesn’t run while you’re making edits, and start editing it. 

After the trigger, add a new action, search “format” and choose the “formatting” app. 

This is a built-in utility created by Pipedream. It includes several options for converting to JSON, comparing dates, extracting URLs and much more. For this automation, choose “Date/Time format”. 

With this action, you can just enter the date/time value you want to format. Then, you can choose the format you want to use instead. If you’re not sure of the syntax to provide, just click on the link in the help text for more info. 

In our example, we’ll use the {long} preset, which will display the date like this:

October 6, 2024 2:38 PM

Give your formatter step a test to make sure the output matches your desired format. 

Finally, make sure to update the Slack message to use the reformatted date/time value instead of the original. 

Conditional logic and custom code

Next, while the Slack message looks good overall, this particular email is awfully long. 

Let’s update this automation so it will give us an OpenAI summary of any email that’s longer than 1,000 characters.

To begin, we’ll need a way to determine the length of each email. 

There are two ways you can do this - either with custom code, or with an expression built into the conditional logic. 

Finding the length of a text string with custom code

Even though it’s not the ideal way to do it, we’ll begin with custom code, since this will be a good opportunity to demonstrate how custom code works in Pipedream. 

After the formatting step, add another action, and choose “Run custom code”. 

The custom code step will default to JavaScript, but you can also choose Python, Golang, or Bash. 

If you have some experience with web development, this custom code module will seem pretty straightforward and familiar. 

If you’re not experienced with JavaScript, just know that the “run steps” line is importing all of the data from the previous steps in the automation so you can easily reference it in your code. 

Add one line to create a variable called “bodyLength”, and set it to be equal to the character length of the email body:

let bodyLength = steps.trigger.event.decodedContent.length

Then, add another line to return the value of that variable in this step’s output:

return bodyLength

You can refer to the screenshot below to see the full custom code that we’re adding. 

Note that helpful suggestions come up as you type in the custom code editor, making it easy to find what you’re looking for. 

Give this step a test, and you’ll see the returned character length. In our example, we can see that our email is definitely over 1,000 characters. 

Adding conditional logic to a workflow

Now let’s add conditional logic to evaluate that number. 

Add a new action, and under “control flow” choose “If/else”. 

First, you’ll need to specify the condition to evaluate. Use the condition pictured below to check if the bodyLength variable is greater than 1,000. 

When you test this condition, you’ll see whether or not the processed data would pass the filter. 

In our example, the body length is greater than 1,000, so the automation would continue along the first path on the left. 

If the number was not greater than 1,000, then it would continue along the second path on the right. 

Using an inline function to calculate the length of a string

You can also insert the same conditional logic without using a custom code step.

Instead, you can just enter the “decodedContent” path in the condition itself, then append the .length function before the curly brackets. 

Most simple actions can be performed in Pipedream without code, so you’ll likely only use custom code for more complex tasks, like array comparisons, or complicated loops.

However, we still wanted to give you a brief example of how it works to get a little practice with it. 

Now, let’s quickly finish up this workflow. 

Adding an OpenAI step to the workflow

In the first path for data that passes our condition – in other words, for long emails – we’ll add a ChatGPT step that sends a prompt asking to summarize the email. 

You can see the final configuration of this step in the screenshot below. 

Note that you’ll need to be set up with an OpenAI API billing plan to use a ChatGPT step like this. You can learn more about using ChatGPT and OpenAI with no-code automation in this tutorial. 

Give the ChatGPT step a test, and check the output. 

Copy and paste the Slack message action into this path, and update it to include ChatGPT’s summary instead of the original message. 

Finally, you can move the original Slack message into the second path for shorter emails. 

In its updated configuration, this automation will run every 10 minutes to check for emails with the “Send to Slack” label. 

If the email’s body is longer than 1,000 characters, it will get an AI summary from ChatGPT and send us the summary in Slack. 

If it’s a shorter email, then it will just send us a Slack message with the original email body. 

With these changes, this automated workflow is all set. 

You can click deploy to commit your changes, but since this workflow uses some conditional logic, you will need a paid plan to complete deployment. 

If you haven’t yet, it's time to kick off that free trial!

Pipedream pricing

While we’re on the subject of a premium Pipedream plan, let’s wrap up this beginner’s guide with a quick look at Pipedream’s pricing. 

Credits in Pipedream

First, we’ll explore how credits work, since they’re a key part of Pipedream’s pricing scheme. 

Your workflows’ data and bandwidth usage is measured in “credits”. 

When you create a new workflow, it will use a 30-second timeout window and will include 256 MB of memory. With these settings, your workflow will consume 1 credit when it runs, regardless of how many steps are in it. 

Longer timeout windows and more memory will require more credits. You can see how many will be used when you adjust the settings. 

This is quite a bit different from Zapier and Make, which charge you for a “task” or “operation” for most steps in your workflow.

Both models have their pros and cons. With Pipedream’s setup, you’re not punished for making long, complex automations. However, with Zapier’s approach, you can process an unlimited amount of data. The better choice will depend on your specific use cases and priorities. 

Pricing plans

Now that you understand how credits work, let’s take a look at the available pricing plans. You can also refer to Pipedream’s pricing page for more info. 

Free plan

The free plan will give you everything you need to try out Pipedream and build a few workflows. 

However, you’ll be limited to three active workflows, 3 connected accounts, and just 10 credits per day. 

Like with most automation providers, the free plan won’t be a suitable long-term choice for business-critical automations. 

Basic plan

For $45 per month, the basic plan will let you build 10 active workflows and will provide you with most of Pipedream’s core features, along with 2,000 credits each month.

Advanced plan

However, you’ll need the Advanced Plan at $75/mo to unlock “premium” apps like Jira, Shopify, Stripe, and Zendesk. 

You can find a full list of Premium apps here. 

The advanced plan also includes conditional logic like the if/else action we created in this tutorial, as well as unlimited active workflows. 

For both the basic and Advanced plans, you can get a considerable discount by paying on an annual basis instead of monthly. 

Business plan

The business plan enables syncing with Github, as well as a long list of advanced technical options. You’ll need to contact Pipedream’s sales team to get a quote for a business plan. 

Fees for credit overages

If you ever exceed your monthly allotment of credits, you’ll just need to pay an additional fee based on how many credits you use.

The more credits you need, the better your rate will be. 

So you don’t really need to worry about your automations stopping suddenly if they’re running a lot in a given month. However, if you want to stick to a specific budget, you can enforce a credit limit in your account’s billing settings. 

Pricing compared to Zapier

Pipedream’s pricing is essentially comparable to or better than Zapier. 

The basic plan is a bit more expensive than a similar Zapier option, but an Advanced Pipedream plan is $30 a month less than a Zapier team plan. 

Beyond their base pricing, Pipedream offers additional credits at a more affordable rate when compared to Zapier’s tasks. 

Adding 100,000 tasks to a Zapier team plan costs $600 a month, compared to $450 a month for the same number of credits in Pipedream. And that gap only gets wider as you purchase a higher volume of credits. 

It’s also worth remembering that a task in Zapier is just one automated step, while a credit in Pipedream can potentially represent an entire workflow, depending on your timeout and memory settings. 

So if you’re automating at a large scale and using millions of tasks or credits each month, Pipedream will be the more affordable choice. 

Build low-code automations with all the technical features you need

With Pipedream, building flexible low-code automations is fast and easy. And for more technical users adding custom code to extend the functionality of your workflows is just as simple. 

If you’re looking for implementation support to get your team started with Pipedream, just schedule a free discovery call right here on our website. We can help you to automate and streamline even the most complicated workflows. 

If you’d like to learn more about automating your work with software like Pipedream, check out the other tutorials on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
October 28, 2024
How to Create Loops in Zapier: A Complete Guide

Loops are one of the most powerful tools available to low-code builders. They allow you to process every item in a dataset individually—whether you're working with 5 items or 500—without adding redundant actions to your automation. In this guide, we'll walk through everything you need to know about creating and using loops in Zapier.

Prerequisites

Before we dive in, note that you'll need:

• A Zapier Pro plan or higher to publish Zaps with loops

• At least one trigger step in your Zap (loops can't be used as triggers)

• Optional: Any additional actions or search steps to collect data for your loop

Creating a loop from line items

Summary of steps

1. Add a new action to your Zap

2. Select "Looping by Zapier"

3. Choose "Create Loop from Line Items"

4. Add your value sets:

   • Select the fields you want to loop through

   • Give each value set a descriptive title

   • Add as many value sets as needed for your automation

5. Optional: Set a limit for iterations (maximum 500)

6. Test your loop to preview the structure

Adding a loop to your Zap

To add a loop to your Zap, add a new action, and select “Looping by Zapier”. 

Choose how you want to create the loop. You can choose to create a loop from line items, text, or numbers.

We’ll explain how text and number loops work later in this tutorial, but we’ll begin with a line item loop. 

Understanding Line Items

In Zapier (and JSON), line items are objects that contain arrays (lists) of other objects. You'll find line items in many common applications:


• Shopping cart items in Shopify orders

• Database records with multi-select fields

• Linked records in Airtable

Many datasets that you work with will be formatted with line items already, but you can also convert data into line items if needed. You can learn more about converting data into line items in Zapier’s help docs. 

Add value sets to your loop

Whatever you choose as your data source, you’ll need to provide at least one value set to loop through. A “value set” represents a field that your loop will process. 

Click on “Add value set” to add a new set to your loop. 

In our example, we’ll create value sets for the “Name”, “Task Count”, and “Slack ID” fields. All of these fields will be retrieved from the Airtable search step that precedes our loop. 

You can also set a limit for how many iterations your loop should run through. Each loop can run up to 500 times, but you can also set a lower limit if you’d like. 

Once you’ve added all the value sets that you want to loop through, and configured your other settings, click continue. Then, test your loop. 

In the test results, under “prevew_loop_values”, you’ll see the structure of your loop. 

Each iteration will include one instance of each value from your value sets. So in our example, each of our loop iterations includes a name, a task count, and a Slack ID, since those are the three value sets we created. 

Each iteration also includes an iteration number by default. 

The data that you see in the loop preview will be all of the data that your loop will retrieve and process as it runs, so make sure that you see the data you want to use in your loop before continuing. 

Once your step is all set up, it’s time to add actions to your loop.

Adding actions within your loop

Any action that you add after a loop step will be repeated once every time the loop iterates (unless the iteration stops at a filter first - we’ll cover filters in the next section). 

Every action before the loop will only run once, just like actions in any other Zap. In our example, the search step that we run after the trigger isn’t part of the loop, so it will only run once each time the automation runs. 

A rectangle starting at the loop step will give you an easy visual reminder of which actions are included in your loop. 

In our example, we’re going to use Slack to send a direct message to each person referenced in the loop. In the Slack message, we’ll include a personalized greeting for each user and a notice with the number of tasks that are currently assigned to them. 

When you’re using dynamic data from a loop, be careful about which variables you pick. The variables that start with “Preview Loop Values” will include data from several iterations. 

If you want to reference the data that belongs to a specific iteration, just use the variables that don’t start with “Preview Loop Values”. For instance, we’ve used the “Name” and “Task Count” variables in this Slack message. 

Testing a looped action

Once you’ve finished configuring your action, give it a test. 

When you test an action in a Zapier loop, it will only process test data for the first iteration in the loop. It’s not going to run test actions for every item. 

So even though our first step retrieved three records to loop through, testing the Slack step in the loop only sent one message, which is what we expected. 

Using a filter to add actions after your loop

Every action that you add after your loop step will be included in your loop. However, if you’d like certain actions to only run once after your loop, you can add a filter step. 

By configuring the filter so that only the final iteration passes, you can ensure that any actions added after the filter only run once, even though they’ll still technically be considered part of the loop. 

To add actions to your loop that only run once:

1. Add a "Filter by Zapier" action

2. Set the field to "Loop Iteration is Last", and set the condition to "(Boolean) Is True"

3. Add any actions that should run after the loop completes.

This setup ensures your post-loop actions only execute once, regardless of how many iterations your loop processes.

In our example, we’ll add another Slack action that sends a channel message. The message will include a list of everyone who received a direct message about their tasks. 

Running a live test of your loop

To see your full loop in action, publish the Zap and turn it on. 

Then, fulfill your Zap’s trigger condition. For our example, we just need to wait until the scheduled time in our trigger, which we’ve adjusted to occur in a few minutes. 

When your Zap runs, the loop will iterate for each item in your chosen data set. Every action in the loop will run once per iteration, except for any actions that you added after the filter. 

When our example automation runs, the Airtable search step retrieves three records in the “People” table. Each of the three people is sent a direct message. 

On the final iteration, the filter is cleared, and a single Slack channel message is sent summarizing the people who received messages. 

Alternative loop types: text loops and number loops

Text loops

A text loop is very similar to a line item loop. However, instead of iterating through several pieces of structured data, it will loop through pieces of text. 

For the loop to work correctly, your text will need to contain a “delimiter” between each item – like a comma, a semicolon, or even a space if you’d like (written as [:space:] )

It doesn’t matter what the delimiter is, as long as the delimiter is used consistently in the text. For instance, you can’t have some items separated by a comma and others separated by a semicolon. 

Each iteration of the loop will process a piece of text until it hits a delimiter. If you were to loop through the text “Apples, Pears, Bananas” using a comma as a delimiter, the loop will iterate three times: once for Apples, once for Pears, and once for Bananas. 

Number loops

When you create a loop from numbers, you won’t be iterating on data from previous steps in the Zap. Instead, you’ll be incrementing a number in a set pattern. 

You can set how many times the loop will run, as well as the loop interval number. So if you’d like, your loop iteration number can increase by 5 or 10 each time instead of just 1. 

For instance, in the loop pictured below, the iteration counter will start at zero and increase by 10 for every iteration until hitting the counter limit of 100. 

When it runs, the loop will just return its iteration number and repeat the steps you add to the loop. However, that iteration number is all the data the loop itself will process. 

Number loops are useful if you want to perform the exact same action multiple times in your Zap, or if you want to use the loop as part of a calculation. 

But you’ll probably be using a line item or text loop in most cases. 

Loops: Frequently Asked Questions

Q: Can you nest loops within loops?

A: No, Zapier doesn't support nested loops directly. Alternative solutions include:

• Using custom code steps

• Connecting separate Zaps using webhook triggers

• Refining your trigger to require only one dataset

Q: How does task usage work with loops?

A: The loop creation step doesn't consume a task. However, every action within the loop consumes tasks normally on every iteration. 

A: Can you use loops with paths?

Yes, but there are some limitations. You can only use one loop per Zap, so you can’t add loops to multiple paths in a single Zap. 

However, you can add paths to a loop as pictured below, which will still enable you to add quite a lot of conditional logic to your automations with loops. 

Efficiently processing datasets with loops

Loops are a convenient and efficient way to process structured data in your apps. 

With a single loop, you can easily run dynamic actions for hundreds of pieces of data in just one automation. 

If you’d like to learn more about automating your work with Zapier, 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
October 21, 2024
Zapier's New UI Updates: What's Changed?

Like any modern web app, Zapier is constantly updating their product to make sure they keep up with the changing demands of their user base. 

In this past year alone, we’ve seen multiple overhauls of Zapier’s visual layout. Even in the months since we posted our updated Beginner’s Guide in March of 2024, Zapier’s taken on a new coat of paint and rearranged some important items. 

In this quick blog post, we want to quickly show you the three most important changes that you should know about as a no-code builder.

We’re also going to explain why, in spite of these updates, you can still use our beginner’s guide and other tutorials from the same time period if you’re just picking up Zapier for the first time right now. 

Overall changes: an aesthetic overhaul

We’ll begin with a quick “before and after” of Zapier’s automation builder.

Below, you can see the old Zapier UI from March 2024.

The old Zapier UI circa March '24

And in the next screenshot below, you can see today’s Zapier (October 2024). 

Zapier's new UI (recorded in October '24)

In general, you can probably see the biggest changes here are just some surface-level aesthetic choices. There’s a new color scheme with purple accents and several other minor visual tweaks. 

However, these visual changes aren’t our main focus in this post.  

Instead, let’s examine the three most important functional changes. 

None of these updates amount to huge changes for Zapier users, but it’s definitely good to be aware of them if you’re just getting started and exploring tutorials from our blog – or looking at Zapier help docs that are about a year old. 

Connecting accounts in the “Setup” tab

Comparing the old UI to the new, there’s still a Zap canvas in the central part of the screen, with a simple summary of all your automated steps. 

When you click on any of those steps, a menu pops open on the right where you can configure it. 

Here’s where you’ll see the first key difference. 

For a long time, Zapier divided each step into 4 tabs – “App & Event”, “Account”, “Trigger”, and “Test”. 

The old Zapier UI organized each step into 4 tabs, with a separate tab for "Account"

(And of course, that “Trigger” tab would be replaced with “Action” if the step was an action.)

Now, there are just three tabs in the configuration menu: Setup, Configure, and Test. 

The new Zapier UI has three tabs, with "Account" being a field under "Setup"

With this layout, you can choose your event and sign into an account all in the same “Setup” tab. 

Despite this change, app authorization works the exact same way as before; it’s just in a slightly different place. 

Finding (and enabling) dynamic data

This next change is arguably the most important one. 

With the new updates, inserting dynamic data into your Zaps works a little differently than it used to. 

Previously, a window including all of the data retrieved by previous steps in your automation would automatically pop up whenever you selected an input field. 

The old dynamic data window in Zapier

Now, you’ll need to enter a quick command to access dynamic variables. 

You can either type forward slash (/) directly into the field, or you can click on the plus button. 

Typing forward slash (/) to bring up dynamic data in the new Zapier UI

Either one will pull up a list of your Zap’s available dynamic data. 

Configuring a field to accept dynamic data

If you don’t see the plus button in a field where you expected to use dynamic data, then it probably means that field is set to “static”. That means it’s configured to only accept inputs from a pre-set list of options. 

A "static" input field in the new Zapier UI

However, there’s an easy option to change “static” fields into “custom” fields that will accept variables.  

Just click on the three dots button next to the field, and choose “custom”. 

Changing a field from "Static" to "custom"

Once you’ve set the field to ‘custom’, you can use either forward slash (/) or click on the plus to enter dynamic data. 

Revealing hidden tooltips

Finally, let’s take a look at one more key change to the Zap builder UI: the location of tooltips. 

Previously, Zapier included useful help text under each field to let you know what data you needed to provide, or what each option in a list would do. 

Truncated help text in the old Zapier UI

This help text was often a little long and frequently needed to be truncated. In that case, you would have to click on “more” to see the full text.

Now, with the new Zapier UI, there’s no help text immediately visible. However, it’s not gone. 

Help text is not immediately visible in Zapier's current UI

To see help text in the new Zapier UI, just click on the underlined title of any field.

Clicking on a field's title to reveal its help text

Then, a tooltip will pop up in its own window.

And just note that you do have to click on the titles to see the help text; it won’t appear on a mouseover.

Navigating new settings

Those are all the functional changes we wanted to go over in the main Zap builder. 

But before wrapping up this blog, we also want to note that the settings menu on the left has been substantially overhauled recently. 

New settings in Zapier's menu

It won’t change how you build Zaps initially, but it may change how you configure them after they’ve been built. 

If you’d like to learn more about using these updating settings, you can check out our earlier blog post on the topic. 

Keeping up with a changing platform

They say the only thing that’s constant in life is change – and that certainly applies to no-code automation, too. Zapier looks quite a bit different today than it did less than a year ago, and it’s a near certainty that this post will be outdated within a year, as well. 

But for now at least, Zapier still works in largely the same way. You’ll just need to keep an eye out for a couple of things that have moved around. 

If you’d like to explore additional news, tips, and tutorials about Zapier and other low-code platforms, 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
October 14, 2024
Access Over 100 Million Records in Airtable with HyperDB

Airtable, the popular low-code database and workflow platform, has just announced a game-changing update for enterprise teams and anyone working with large datasets. Their new "HyperDB" feature now allows users to access and work with databases containing tens of millions of records, far surpassing Airtable's previous record limits. 

Record limitations in Airtable

Airtable bases on even the highest Enterprise plans are limited to 500,000 records per base and 250,000 records per table. This has made working with datasets in the millions of records very challenging, often requiring complex workarounds.

One of the main reasons users have choses tools like Google Sheets over Airtable has been the ability to work with larger datasets, as Sheets supports over 10 million cells. 

How HyperDB Overcomes Record Limits

HyperDB is opening up new possibilities for working with large datasets by allowing you to store your data in an external database like Snowflake or Databricks, which have much higher record capacities. You can then use HyperDB to sync specific subsets of that data into your Airtable bases and tables as needed.

The new HyperDB feature in Airtable

For example, you could store a 50 million record product database in Snowflake, but sync only the most recent 100,000 records to an Airtable table. 

Alternatively, you could sync records for different years or product categories into separate bases. The synced data remains connected, so you can easily change which records are pulled in.

Use Cases for HyperDB

While individual Airtable tables and bases still have the same record limits, HyperDB makes it much more straightforward to connect them to massive external datasets. This enables large-scale data processing, automation, and reporting use cases that were previously impractical in Airtable alone.

For instance, you might use HyperDB to power operational analytics, or machine learning workflows that require analyzing millions of records.

HyperDB is currently in beta and only available to customers on Airtable's Enterprise plans. Interested companies will need to contact Airtable to request access.

Additional new features in Airtable

In addition to HyperDB, Airtable has unveiled new features to help users manage and update their bases. 

App Library: centrally controlled templates for your team

The new App Library allows you to create reusable base templates that teams can copy for their own purposes while maintaining a dynamic link to a central reference version. 

The new App Library feature in Airtable

For example, you could build an "OKR Tracker" app library for use across your company. Each department can spin up their own OKR tracking base from the template, customized to their needs. But the template owner can still push updates and gather roll-up reporting from all linked bases.

This promotes consistency and data consolidation even as teams adapt bases to their unique workflows.

App Sandbox: risk-free experimentation and seamless updates

The App Sandbox provides an isolated environment to test changes to a base before deploying them to your team's live version. This allows you to experiment with new formulas, automations, and app structures without the risk of disrupting active workflows.

The App Sandbox in Airtable

The sandbox is a game-changer for Airtable developers and builders, as it allows them to iterate more quickly and safely, whether improving their own team's bases or building client projects as an Airtable consultant or agency.

Organization Branding: add your company’s logo and colors to Airtable

Enterprise plan customers can now customize their bases with their own logo and colors in place of Airtable's default branding. This is especially useful for agencies, consultants, and others building client-facing applications on the Airtable platform. 

New organization branding features in Airtable

Branded bases provide a more polished, professional, and trust-inspiring experience when sharing them with external stakeholders, while still leveraging all of Airtable's flexible database and workflow functionality under the hood.

The App Library and branding options are currently available for all Enterprise customers. The Sandbox is in beta, with Business and Enterprise plan users able to request access.

Learn more about all recent Airtable updates here

Our take

At XRay, we're extremely excited about HyperDB and the possibilities it opens up for our clients. Many of the companies we work with have huge proprietary datasets they want to build workflows around, and HyperDB is going to make that possible. HyperDB is a major step forward in making Airtable an ideal platform for enterprise-scale low-code application development. 

We're also very pleased to see Airtable making investments in other areas that will help larger organizations adopt the platform, like the app sandbox and expanded branding options. We expect these updates to make a real difference for companies looking to run mission-critical processes on Airtable.

Reach out to us if you'd like to discuss how your team can make the most of these new Airtable capabilities. As an Airtable Gold Partner, we're here to help you build powerful, scalable low-code workflows.

If you’d like to learn more about software like Airtable, Zapier, Softr, and more, check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
October 7, 2024
How to automate Anthropic’s Claude with Zapier

AI and no-code automation are a natural pairing. 

You can take the ability of an AI like Claude to generate and analyze text, and combine it with automation’s time-saving potential to produce a fast, efficient, and effective workflow. 

That’s why in this tutorial, we’re going to show you how to automate Claude by Anthropic with Zapier. 

To begin, we’ll give you a brief overview of what Zapier is and what it does for the uninitiated.

Then, we’ll show you how to set up your Anthropic account and connect it to Zapier. 

Finally, we’ll walk you through the process of building an example automation that sends a prompt to Claude to extract action items from any email that you tag with a custom label. 

What is Zapier?

Before we dive into automating Claude, we’re going to quickly cover what Zapier is and how it works for anyone who might not be familiar with it. 

Zapier is a no-code automation provider. It lets you build automated workflows by connecting your web apps together. 

When an event happens in one app, one or more automatic events will be performed in other apps. 

The automation we’ll build in this tutorial

For instance, in the automation – or “Zap” – we’re going to build today, everything kicks off when we apply a custom label to an email in Gmail. 

Then, Zapier sends a preconfigured prompt to Claude that includes text from the email’s body. 

Finally, the Zap automatically sends an email back to us with the action items that Claude extracted from the original email. 

In short, it will give you a summary with a single click. And you don’t need to write any code to build it. 

Connect thousands of apps to Claude with Zapier

You should know that even though we’re just gonna connect Gmail and Claude in this tutorial, Zapier supports over 7,500 apps right now - and that number’s always growing.

The odds are good that Zapier can automate the apps you already use every day. 

While Zapier does have a free plan, you’ll need a paid plan to build automations like this with more than two steps. 

You can learn more about using Zapier in our Zapier beginner’s guide here. If you’re brand new to Zapier, we’d strongly recommend checking out that guide before proceeding with this tutorial. 

Note that Zapier’s UI has already changed in the few months since we posted that guide. However, everything still works the same under the hood. 

Set up your Anthropic account for API access

In order to start automating Claude with Zapier, you’ll need to set up an Anthropic Console account, and you’ll need to set up an API billing plan. 

That’s because Zapier is going to access Anthropic through its API, or “Application programming interface”. 

You can learn more about what APIs are here. 

Adding an API billing plan to your Anthropic account 

Go to console.anthropic.com and sign in with your existing Anthropic account, or create a new one. If you’re making a new account, you’ll need to provide a couple details about your organization.

Once you’re signed in, click on “Settings”. Then choose “Plans & billing”. 

New Anthropic console accounts always begin on the “Evaluation” plan, which doesn’t grant access to Anthropic’s API. 

Click on “Select Plan” to see your options. 

You can either go with the “Build” plan, which will require you to load up your account with prepaid credits, or the “Scale” plan, which will bill you monthly for your activity. 

The “Scale” plan will require you to contact Anthropic’s sales team, so to get set up fast, it’s best to just go with the “Build” plan. 

You’ll just have to provide some details about how you plan to use Claude, and where you’re located. Then, you can add a payment method and credits. 

Note that you won’t need to pay any kind of subscription fee. You’ll only be charged for the credits you add to your account. 

The good news is that running prompts through Claude’s API is generally going to be very cheap - often just a cent or less for each one. 

You can learn more about pricing details on this pricing page. 

Once you’ve created a console account and added a payment method, you’ll be ready to connect Anthropic to Zapier. 

Connect your Anthropic account to Zapier

To connect Anthropic to Zapier, start by signing in to Zapier. 

Click on “Apps” in the left hand menu. Then, choose “Add connection”. 

Search for “Claude” or “Anthropic” to find the app, and choose it from the list of results. 

You just need one piece of information to authorize Zapier to access your Anthropic account - an API key. 

To create an API key, go back to the Anthropic console. You can follow the handy link that Zapier provides. 

Then, on the “API keys” page in the Settings tab, just click on “Create Key”. 

Give your key a unique and descriptive name so that you know what it’s for. You’ll be able to track usage by key, so we’d recommend naming it something like “Zapier Key” so you can see how much API activity is coming from your Zaps. 

Choose a workspace for your key, and click “Create key” to finish. 

Then, make sure to copy the key before closing this window, since Anthropic won’t reveal it to you in full again. 

Paste it into Zapier, and click Continue.

Now, your Anthropic connection in Zapier is all set, and you’re ready to start building an automation. 

Creating a Zap to automate Anthropic (Claude)

To build a Zap that automates Claude, begin by clicking on “Zaps”. Then, create a new Zap. 

As mentioned earlier, the automation that we’re going to build will start whenever we apply a custom label to an email in Gmail. 

Even though we’re going to be building an automation that uses Gmail specifically, the same principles will apply to any other app that you want to connect with Claude. 

So if you want to build an automation that launches prompts from Microsoft Teams, or from Hubspot, the information in this tutorial will still help you out. This is just one specific example that illustrates some general concepts. 

Preparing your test data

We’ll start by making our test data first. For our example, we’ll create a custom label in GMail – “Summarize with Claude” – and add it to an email so that we’ll have some test data to work with as we’re building the automation. 

Always make sure you have some test data to use before you build your automation. 

Below, you can see a perfect candidate for this automation – exactly the kind of wordy, demanding email you’re probably all too familiar with. 

Create a trigger for your automation 

Once your test data is ready, add a trigger to your Zap. The “trigger” controls when the Zap runs. 

Choose an app for your trigger. For our example, the triggering event will occur in GMail. 

Next, select a specific event that will trigger your automation. In our example, that event will be a newly labeled email. 

Note that you will need to connect your Google account to automate it with Zapier, but you won’t need to mess around with API keys or anything like you had to with Claude. 

You’ll just need to sign in to Google and click a button to approve Zapier. 

Configuring your trigger

Next, configure the specific settings for your trigger. Configuring the GMail trigger in our example is extremely simple. 

All you have to do is identify the label that you want the automation to trigger for. In this case, that will be our custom label - “Summarize with Claude”. 

With the trigger configured, you can give it a test to pull in some data. This test data is required to build the other steps in the automation, and will show you what kind of information Zapier can retrieve and work with. 

After a successful test, you can see a long list of data, like the email addresses of the sender and recipient, the email body, and many other items that you typically won’t need to use. 

Send an automated prompt to Claude

With a successfully tested trigger, you can now add a step to your Zap that sends a prompt to Claude. 

Add an action, and choose “Anthropic (Claude)” as the app. 

For the time being, there’s only one choice for an action: “Send message.” Pick that, and choose your connected Anthropic account if it’s not already selected. 

Then, click “Continue.”

Unlike the trigger, there are several options to configure here - and you can find even more by setting “Show Advanced Options” to “True.” 

Configuring your automated prompt

As you configure your prompt, note that only fields marked with an asterisk are required. You could just fill out your message and leave all of the other settings to their defaults if you want to get set up quickly. 

However,  configuring your action a little more precisely usually pays off. 

User message

First, you’ll see the “User Message” field. Here, you’re just going to enter a prompt pretty much like you would if you were chatting with Claude directly. 

The most important difference is that you can also include dynamic data retrieved from previous steps in the Zap.

For example, we can include the body of the email that triggered the Zap so that Claude can analyze it and find action items. 

System

Under “System,” you can provide instructions for the role that Claude should assume. Entering additional information here can help to shape Claude’s style and approach to answering your user message.

Model

Next, you can choose a model to use. 

You can check out this page for more information about pricing and performance to inform your choice. 

We’d recommend going with a faster model for any Zap that uses Claude. Zapier won’t wait indefinitely for a response, so you’ll want to prioritize getting a reply quickly, even if that means you can’t always use the latest and greatest model.

Memory key

In the “Memory Key” field, you can provide a unique key to connect your conversation with previous ones. 

For example, if we use a key like “EmailActionItems”, then Claude will use previous conversations with the “EmailActionItems” key as context, until it hits its context limit. 

This can be a good way to give your conversations more depth and to improve the results over time.

Image

Next, there’s an option to upload images so Claude can use “vision” to analyze them. 

We won’t attach an image to this prompt in our example, but keep in mind that you could add images here as dynamic data retrieved from earlier steps - such as an image attached to the original email. 

Max Tokens

In the “Max Tokens” field, you can set a token limit if you'd like to keep the response short and your API charges low.

Temperature, Top K, Top P

Finally, there are settings for “Temperature,” “Top K,” and “Top P.” 

All of these settings are about changing the predictability or creativity of the AI. 

We won’t get into all of the technical nuts and bolts about how these work – if you’re interested in the details, you can explore this IBM documentation to learn more about how these factors influence an AI’s output. 

However, for most users, reading the descriptions in Zapier will be fine. 

In our example, we’ll set “Temperature” to .7 to make the answers a little more creative, but not all the way at the max of 1. 

Testing the prompt

Once you’ve configured all of your settings, you can give your prompt action a test. Note that running a test on a Claude prompt in Zapier will actually send the prompt to Anthropic’s API, and will incur a small charge on your account. 

Our test was a success, and we can scroll down past the user message to see Claude’s answer.

 

Not bad. This definitely produces a much more readable list of tasks than the original email. 

But you can always tweak your prompt, system message, and settings to fine tune your results if you’re not satisfied.

Send Claude’s response to another app

Now that we’ve got a response from the AI, the last thing we need to do is make sure the output actually gets sent to us somewhere we can easily read it. 

Again, you could send it to thousands of different apps, but we’ll just go with the logical choice and send it right back to our Gmail inbox.

Add another action to your Zap

Add another action to the Zap, and choose Gmail as the app again. For the action, we’re going to choose “Reply to email.” 

Then continue to the configuration. 

First, you need to identify a thread to reply to. 

Change the field to “Custom” instead of “Static,” and insert the thread ID retrieved in the trigger. 

For the “To” email, just enter your own email.

By only entering your own email here, you can make sure that the reply doesn’t get sent to the original sender. 

CC and BCC are optional, but you will need to enter a “from email” - that can be your email address again. 

You’ll also need a “from name.”

Keep the body type as plain, type up a brief message, and insert Claude’s response from the previous step. It’s the “Response content text” variable. 

You don’t need to add any labels or attachments, so you can continue and test. 

After your successful test in Zapier, check your Gmail inbox to see the final message. 

Now, you can turn the Zap on and start using it. 

Once it’s on, it will trigger after you add a label to an email. However, it won’t be immediate. 

Zapier will check for new emails at set intervals, which you can see here in the left-hand menu of the Zap builder. 

Depending on your plan, you may have to wait up to 15 minutes. But on higher subscription levels, you can reduce the wait down to just a minute. 

Combine Anthropic and Zapier for automated AI prompts

Anthropic and Zapier are a winning combination that will help you line up your daily tasks and knock them down in record time. Getting started is easy, and after you’ve completed this tutorial, you can try connecting Anthropic with any other apps that you want. 

To learn more about optimizing your workflows with AI and automation, check out the other tutorials on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
September 30, 2024
How to Use the New Keyboard Shortcuts in Google Drive

If you’ve opened Drive recently, you’ve probably seen an announcement about new shortcuts.

An announcement in Drive about new keyboard shortcuts

Google Drive has always supported keyboard shortcuts for common actions like creating new documents and folders, but these new shortcuts work a bit differently. 

We’ve put together this quick tutorial to help Google Drive power users get a handle on these new keyboard commands. 

Google Drive Keyboard Shortcuts - Creating new items

To create any new item, such as a doc, a slide deck, or a folder, begin by pressing Control + C on Mac. 

If you’re using a Windows PC, you’ll use Alt + C instead. 

Pressing Control + C to start creating a new item in Drive

Then, press a key that corresponds with whatever you want to create, like “F” for a new folder. 

Press F to create a new folder

NOTE - you will need to release Ctrl + C or Alt + C before pressing the single letter that will create a new item. 

Once you’ve created a new folder, you can use the Enter or Return key to open it up. 

Press enter or return to open a folder

Creating new docs, slide decks, sheets, and forms

The Control + C or Alt + C combination is how you’ll start creating new items. The following combinations will use the same pattern to let you easily make presentations, forms, spreadsheets, and docs. 

Mac OS

• New Google Slides Presentation = Control + C, then P

• New Google Form = Control + C, then O

• New Google Sheet = Control + C, then S

• New Google Doc  = Control + C, then T

Windows

• New Google Slides Presentation = Alt + C, then P

• New Google Form = Alt + C, then O

• New Google Sheet = Alt + C, then S

• New Google Doc  = Alt + C, then T

If you’re not sure what the keys are, you could just use the POST acronym to remember them:

Presentation

Form

Sheet

DocumenT

If you ever need a refresher, or want to explore some of the other shortcuts available in Drive, you can find the full list of all Google Drive shortcuts here. 

Creating items in Google Drive with URL shortcuts

Alternatively, you can also create new items in Google Drive by simply typing a “.new” address into your browser’s URL bar. 

For instance, navigating to the “docs.new” URL creates a new Doc in your Drive. 

Creating a new document by entering "docs.new" into the URL bar

Similarly, “sheets.new” creates a new Google Sheet. 

Creating a new spreadsheet by entering "sheets.new" into the URL bar

Note that you will need to be signed in to Google Drive for these URL shortcuts to work. 

Whether you use these shortcuts or the new hotkeys, using these little tricks can make your daily tasks in Google Drive a little bit faster. 

Level up your productivity with workflow automation 

If you’d like to take your productivity to the next level, check out XRay’s workflow automation tutorials on our blog or on our YouTube channel. 

Each week, we’ll show you new ways to automate the software you use every day, like Google Drive, Slack, ChatGPT and more. 

You can also learn more about the services we offer for small businesses and enterprises, as well as the free products we’ve built to help our fellow workflow designers. 

And if you want to get the latest updates about our content, you can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
September 23, 2024
How to Create Scenario Variables in Make (Integromat)

Sometimes, the data that Make retrieves from your automated apps doesn't have all the information you need. 

When you need to add some numbers, text, dates, or other info to your Make scenarios, you can use Variables to fill in the gaps. 

In this tutorial, we’re going to show you how to create and use scenario variables in Make, formerly Integromat.  

How to create a scenario variable in Make

First, let’s go over the process of creating scenario variables in Make. 

Scenario variables are custom, user-created variables that only exist within the scenario you create them in. You can set their names and values to whatever you’d like. 

To create a custom variable, add a “Tools” module to your scenario. 

The "Tools" module in Make

Then, choose “Set variable.”

The "Set variable" action within the tools module

You can enter anything you’d like for your variable name. You can even have spaces if you want, but we’d recommend making them all one word, and just use CamelCase like in the screenshot below for clarity.

Entering a name for a new variable

You’ll have to use your variable name to retrieve it later, so it’s best to make sure you can easily and accurately type it out each time. 

Then, provide a value for your variable. 

How to set a Make variable to a numeric value

NOTE: Directly entering a number as the variable value will not make it a valid number. 

If you type text directly into the “value” field, the text will be a string. This means that if you type “52”, for instance, your variable’s value will be a piece of text that says “52”, not the number 52. 

If you try to add 1 to the variable in a subsequent module, the value will become a string that says “521”, not 53.

If you want to make your variable a number, then use the parseNumber function, and enter your number as the first argument (before the semicolon). 

Using the parseNumber function to create a numeric variable

If your number has a decimal, enter the decimal separator as the second argument (after the semicolon). Otherwise, just leave it blank. 

You’ll need to use a similar formula in order to enter a valid date. You would use the parseDate function, enter your date, and so on. 

Referencing your variable in a subsequent module

Once you’ve configured your variable’s title and value, click “OK” to commit your settings. 

Whenever this module runs, it will set the value of your variable to whatever you specified. 

Then, you can use the variable in subsequent steps just like any other data processed in Make. For instance, we’ll use Slack like a makeshift dev console in the screenshot below, and send the variable as part of a simple message. 

Referencing a variable in another module

Scenario variables are a great way to create data that isn’t present in the automations you’re building. 

A Slack message displaying the value of the variable

They’re especially useful if you don’t want to store that information in an external source like Airtable or SmartSuite. 

Update a variable’s value

To automatically change the value of your variable while your scenario is running, just add another “set variable” step. Specify the variable name, using the exact name of the variable you want to update. 

Remember, it’s case sensitive. 

Then, enter the new value you want to assign. You can enter an arbitrary value directly, or you can calculate the new value based on the earlier value. 

For instance, we’ll just add “1” to the previous value of the variable. 

Adding to the existing value of the variable

Now, whenever this module runs, it will add “1” to the value of the variable. 

We’ll add another Slack step and run the scenario to see the full output. 

A Slack module referencing the updated variable

The first message shows the original value of the variable – 52 – and the second message shows its updated value of 53. 

A Slack message displaying the original value and updated value of the variable

Retrieve a variable’s value from another path

Let’s wrap up this tutorial on scenario variables with a quick look at how you can retrieve the current value of any variable. 

In many cases, you can often just grab the variable from the last module that set its value, but this won’t work if the variable was last set in a different path. 

For instance, in the scenario pictured below, the Slack module in the second path can’t directly retrieve the variable set in the first path. 

A Make scenario with two paths

To retrieve the value of a variable that’s been set in a different path you can use “Get variable” to retrieve the current value of the variable. 

Adding a "Get variable" step to the second path

Just enter the name of the variable to find it. As always, you’ll need to write it exactly the same way as the module that sets its value. 

Entering a variable name into the "Get Variable" module

Then, you can use the variable retrieved by the “Get” step in any subsequent modules in the path. 

Using the retrieved variable in subsequent steps

Just remember to consider the order that your paths will run in. They’re numbered (1st, 2nd, etc) so you can tell which paths Make will attempt to run first. 

The updated scenario with a "get variable" step

Also, consider which paths you expect to run for each piece of data your scenario processes. Depending on the timing, you could always add a short delay step, to ensure the proper order of things. 

Augment your Make scenarios with custom variables

Scenario variables are a useful little tool that can make it much easier to build the automations you want, even if you’re not getting all the data you need directly from your apps. 

If you’d like to learn more about automating your work with 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.

Tutorial
September 16, 2024
10+ Settings You Should Know About in Zapier

Zapier is constantly changing. Just months after a visual overhaul, the automation provider has already adopted a new color scheme and layout, opting for purple highlights to replace their famous vibrant shade of orange. 

But some of the most important changes aren’t so immediately apparent. Recent updates have brought several new settings to the Zap builder interface. Some of these settings are brand new, while others have just been relocated into a more convenient spot. 

In this post, we’ll walk you through all of the settings that are available in the current iteration of the Zap builder, and how you can use them to get the most out of your automations in Zapier. 

Where to find Zap settings

To find all the settings we cover in this post, just open an existing Zap in your account or create a new one. If you’re looking at an existing Zap, make sure you’re in “Edit” mode. 

You’ll see a vertical menu bar on the left hand side of the screen. 

Zap Settings on the Left Side of the Zapier Interface

We’ll go through each option in this menu from top to bottom. 

Linked assets

Linked assets let you create and attach tables and interfaces directly to your Zap, or view the tables and interfaces that are already referenced in your Zap.  

Linked Assets menu opened

While we generally wouldn’t recommend Zapier tables and interfaces for advanced use cases, they can be very useful if you're just getting started with your automation journey. 

If you’re not using a dedicated no-code database Airtable or Smart Suite already, and you're not creating interfaces in an app like Softr, then Zapier’s versions of these tools can be convenient substitutes that keep all of your resources in one app. 

If you’d like to learn more about using Zapier tables, we’ve created a tutorial for it here. You can also check out our guide to Zapier interfaces to learn more about them

Note that both of those tutorials feature an older version of Zapier’s UI. 

Zap details

Next up is “Zap details”. The information in this section has been available for a while in Zapier, but was previously inaccessible inside of the Zap builder itself. 

Here, you can see the folder that your current Zap is stored in or move it to a new folder.

Zap Details Panel open

You can also edit the Zap’s timezone, which is particularly important if your Zap uses a scheduled trigger (e.g., if it runs every Monday at 9:30AM). 

Additional Timezone info in Zap Details

Finally, you can use the “Zap details” section to create a template out of your Zap. Creating a template will let you easily share the basic setup of your Zap with your team or with other Zapier users on the web. 

Create a Template option at the bottom of Zap Details

Notes

Now let’s take a look at Notes. This feature wasn’t added in Zapier’s most recent round of updates, but it was still added to the app relatively recently, so we know it’s probably slipped under the radar for a lot of builders. 

Zap Notes Menu open

“Notes” lets you add brief text descriptions to the Zap as a whole, as well as each step. After creating a Zap, you can even use AI to generate a summary of your automation and what it does. 

Creating and Regenerating Zap Note window open

Adding notes to your Zap and its individual steps is an extremely useful form of documentation for anyone building automations with their team. 

Zap Notes Documenting a Zap

Once you’ve added a note to a step, you can click on the note icon to view it, or just view it from the notes menu on the left. 

Change history

The next menu option, Change history, shows you every key update to your Zap since it’s been created. You’ll see every time it’s been published, and every time the Zap has been turned on or off. 

Change History Menu open

For instance, in the example above, the Zap was last turned off by a user, but in other cases, a Zap might be turned off automatically due to encountering excessive errors.   

If you have multiple people building Zaps in your workspace, this is going to be a really helpful feature for showing who is doing what in each automation. 

Zap runs

For many, “Zap runs” will likely be one of your most commonly used menu options. If you ever encounter an error, or something unexpected happening in your automations, “Zap runs” and “Zap history” are going to be the first two places to check in order to discover what exactly is going on. 

Zap Runs menu open

“Zap runs” will show you a record of every time your Zap has run within the last 30 days. You can filter this data with keywords, a custom date range, and a status (e.g., successful, errored, paused, etc.)

Filtering through the Zap History from the Zap Runs Menu

If you want to see Zap runs that are more than 30 days old, you’ll need to click on “Zap history” to see older records. 

Advanced settings: flood protection, polling interval, and more

If you're a power user, the “Advanced settings” menu option lets you finally control several choices that you’ve probably been hoping to access for a long time. 

Autoreplay override

Your first choice here is “Autoreplay override”. This will let you choose whether or not the Zap should automatically replay errored runs. 

Autoreplay Override with "Never replay" selected

15

Error ratio override

Next, you’ll see a choice for “Error ratio override”. By default, Zapier will automatically turn off any Zaps that encounter a high number of errors. It's usually best to leave this setting enabled, but sometimes you might have a mission-critical Zap that you want to keep running, even if one or two steps are having problems.

Error ratio override with the selection to turn off if many errors occur

In that case, you can select “keep running if errors occur” to keep your Zap on, even when it keeps encountering errors. 

However, we'd only recommend disabling the setting if you're closely monitoring your zaps, because you could end up wasting a lot of tasks or creating other problems by leaving zaps on when they're not working properly.

Flood protection

Flood protection lets you configure how many times the Zap can be triggered at once before it shuts down. 

Flood protection setting to select how many tasks can run before holding new events

This setting is designed to make sure that you don't eat up all your plan’s tasks at once due to a setup error, like a misconfigured Zap that triggers on an infinite loop. 

However, if you plan on processing large amounts of data at once with your Zap, you’ll probably want to configure this setting with a higher limit.

For instance, if you're using your Zap to execute a data migration and expect to process hundreds of records at a time, you’ll likely want to raise the flood protection limit to a higher setting. 

Polling interval

The last choice under advanced settings is “Polling interval”. 

Polling interval setting open and set to 5

A Zap’s Polling Interval refers to how often Zapier will check for new data. Let’s say you have a Zap that runs whenever you get a new email in your inbox. With a polling interval of 10, Zapier will check your inbox for new messages every 10 minutes. 

In many cases, you’ll want to set your polling interval as low as possible so you can run your Zaps and use their outputs quickly. However, to access the shortest intervals, you’ll need to have a higher subscription level.

Status

If there are any outstanding alerts or warnings attached to your Zap, then you’ll see the Status icon on the left hand menu, along with the number of alerts.

Status menu with Alerts visible

Currently, the status icon isn’t visible if your Zap doesn’t have any active alerts, though we’re not sure if this is an error or intended behavior. 

Status alerts will warn you about issues like errors in your Zap setup, or out-of-date integrations that are used in your Zap. 

Just click on the status icon to learn more and start fixing the problems. 

Versions

Last in the main menu selection, you’ll find “Versions”. Here, you can see every unique version of your app that you've saved since you initially created it.

Versions menu open

You’ll see every version that’s been published by you and your team, along with the version title (if any). From here, you can also roll back to any of these previous versions if you’d like to reverse a recent update. 

AI Copilot

Finally, at the bottom of the screen, beneath all the main menu items, you can find Zapier’s AI Copilot. 

AI Copilot option at the bottom left of the interface open

With the AI copilot, you can add steps to your Zap by simply describing what you want to build. The copilot won’t be able to configure your steps in full (at least for now), but it will at least be able to choose the right apps and actions and add them to your automation. 

AI Copilot option in the middle of answering a prompt

It’s typically most useful when you’re starting a new Zap. By just typing a few quick sentences, you can get the copilot to set up a good starting point for your automation. 

Co pilot menu with several prompt options available

Get the most out of your Zaps with these advanced settings

Zapier is constantly making updates to their platform. While a lot of these are pretty inconsequential, like the ever changing style of the UI, some of them can actually be pretty important.

If you're a zap your power user, be sure to check out the new options for managing your zaps right inside the Zap builder. The advanced settings specifically will finally give you the control you've been longing for.

If you’d like to learn more about automating your work with Zapier, Make, and other software, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
September 9, 2024
How to Automate ChatGPT with Zapier

Did you know you can run your ChatGPT prompts without even opening up your browser?

Automating your prompts lets you get even more done with AI, turning an individual workflow into a reliable, scalable process for you and your team. 

In this post, we’re going to show you how to easily start automating ChatGPT with Zapier.

We’ll start by demonstrating how to connect your ChatGPT account to Zapier. Then, we’ll walk you through a couple of your best options for sending automated prompts. 

Connecting ChatGPT to Zapier

Before you can automate ChatGPT with Zapier, you’ll need to connect your ChatGPT account to your Zapier account. 

You’ll also need to have payment on file with OpenAI to cover the API charges, which are typically going to be very low. You can check out OpenAI’s pricing page for more specific detail, but we’re usually talking about a few cents per prompt at most. 

Managing your OpenAI account through the developer platform

To connect your account and set up your payment method, you’ll need to go to platform.openai.com and sign in with your OpenAI account. 

You can use the same credentials that you use to login to ChatGPT, but you can’t use the usual chatbot interface for these settings. Automating ChatGPT with Zapier requires you to use the API instead. 

Even though you’ll need to access the developer platform, don’t worry. You don’t need to write any code to automate ChatGPT as long as you’re using software like Zapier. 

Adding a payment method to OpenAI

First, to add a payment method to OpenAI and start using the API in your automations, click on the gear to access your settings. 

Click on “Billing” to add payment methods and manage your billing settings. 

Connecting ChatGPT to Zapier

Now let’s walk through connecting your OpenAI account to Zapier. Keep the OpenAI platform open in one tab, and open up Zapier in another tab. 

NOTE: if you’re new to Zapier and want to learn how it works, you can check out our Zapier Beginner’s Guide here to get started. 

Sign in to Zapier, and click on “Apps” in the left hand menu. 

Then, select “Add connection”. 

Search for “ChatGPT” and select it from the list of results. 

Finding your API key and Organization ID for ChatGPT/OpenAI

In order to create the connection, you’ll need to provide an API key, and possibly an Organization ID. 

To get both of these, go back to the OpenAI platform. 

To create an API key, start by clicking on “Dashboard”. 

Then, in the top left hand corner, select a project where you want to create an API key. If you want, you can just stick with the default project. 

Click on ‘API keys’ on the left. 

Then, create a new Secret Key. Be sure to give your key a descriptive name. You can also choose which permissions to grant this key. 

Click “Create secret key” to finish. 

Now, you can copy the secret key to paste it into Zapier. 

If your OpenAI account includes multiple organizations, you can specify which organization to use by providing its ID to Zapier. However, if your account just includes one organization, then this won’t be necessary. 

To get your organization ID, go back to OpenAI, and click on the “Settings” gear. 

On the “General” page, you can see the ID for your currently selected organization. 

Copy it and paste it into Zapier. 

Finish connecting your account by clicking “Yes, Continue to ChatGPT.”

Now your ChatGPT account is connected to Zapier, and you can easily select it whenever you’re building an automation. 

Setting up a simple ChatGPT automation: image analysis

Now that you’ve got your accounts connected, let’s take a look at actually automating ChatGPT with Zapier. We’ll start by showing you a quick prompt using the “Analyze Image” action. 

Create a new Zap and trigger

To begin, you’ll need to make a new Zap and add a trigger. Your trigger can be in any app you want, but note that there aren’t currently any available triggers in ChatGPT. 

For our example pictured below, we’ve created a new Zap with an Airtable trigger. 

This automation will run every time a new record is added to the specified table and view in Airtable. However, as noted earlier, you can use almost any app you want, as long as it has a trigger in Zapier. 

Just do a quick search on XRay.Tools to see what triggers are available for the apps you use every day. 

Add a ChatGPT action to your Zap

Once you’ve added your trigger and tested it to pull in some data, add an action to your Zap. 

Choose ChatGPT as the app. 

You’ll see several options for sending automated prompts to ChatGPT. Most of these are essentially preconfigured prompts. 

For instance, your first choice here is “Analyze Image Content with Vision”, which does exactly what it says. 

All you need to do is fill out a few key pieces of information. Write your prompt, including any dynamic data retrieved from your trigger that you’d like to incorporate, and provide an image.

In our example, we’ll use an image retrieved in the Airtable trigger. 

You can also set a limit for the tokens used in the response. This is a good way to make sure ChatGPT’s responses don’t get too long. 

When you give your prompt a test, you’ll see ChatGPT’s response. In this case, we get a good summary of the image we uploaded. 

Once you’ve set up your ChatGPT action in Zapier, publish your Zap to turn it on. 

Now, your prompt will run the same way every time. 

The only thing that will change will be any variables you provided, like the image from the Airtable record that triggered our example automation. 

That’s how automating ChatGPT with Zapier works in a nutshell, but we know a lot of you will want more control over your prompts than what you can get from that simple “Analyze Image” option. 

So now that we have the basics covered, let’s take a closer look at a much more flexible action: “Conversation”. 

Build a flexible, customized ChatGPT automation with the “Conversation” action

With “Conversation”, you’ll get all the same functionality that you get when you open up ChatGPT in your browser, but with even more options to fine tune the AI’s responses.

It’s a great default choice if you’re not sure which action to use when sending your automated prompt. 

Let’s go through each of the settings now.

Compose a message and choose a model

Your first couple options are very straightforward. 

In the first field, you can write the message you want to send much like you would while using ChatGPT in your browser. 

You can also pick the model you want to use. You’ll have way more options here than you would with the chatbot interface. 

You can check out the OpenAI API pricing page for more details to help you pick the right model for your use case.

Set a memory key for context and provide an optional image

Next, you can provide a memory key. Every time you enter a memory key, ChatGPT will remember previous conversations that also used the same key. This can be a useful way to give your conversations more context over time. 

This action also allows you to provide an image if you’d like to include one in your prompt. Just note that not all ChatGPT models can analyze images. You can find a list of all models with ‘vision’ on this OpenAI page. 

Create an “assistant” identity for the AI and set a token limit

Next, you have a few options to set a username, an assistant name, and assistant instructions. If you fill them out, these options will help to give the AI more context for the role it should perform or the identity it should assume. 

However, it won’t create a new assistant in your OpenAI developer platform. We’ll quickly go over how you can do that – and why you’d want to – at the end of the tutorial. 

Just like with the “Analyze image” action, you can set the maximum tokens to use in the response. 

Adjust max tokens, temperature, and Top P

Finally, you have a couple technical settings you can use to tweak the AI’s output: ‘Temperature” and “Top P”.A higher Temperature will produce more random results, while a lower temperature will tend to be more predictable. 

Top P is a pretty similar option. Here, a lower number will result in more diverse output, while higher numbers will cause the model to stick with only the most probable words. 

If you’d like to learn more about temperature and Top P in more detail, you can explore this documentation from IBM.

For most use cases, you can just leave these to their defaults, but you may want to experiment to see what happens. Changing these can be particularly useful if you're looking for more creative or unusual outputs. 

Testing your prompt

Once your action is fully configured, you can give it a test to see how it runs. 

You’ll be able to see the AI’s response in the “Reply” variable, and you can send this output to any other app with a Zapier integration. 

For instance, you can send it as a DM in Slack as pictured below. 

And here’s what the actual message would look like in Slack:

Once your automation is all set, just publish it and turn it on to start using it. 

Using “Conversation with Assistant” for frequently repeated ChatGPT tasks

We briefly mentioned the concept of “Assistants” earlier, and as you explore AI automation further, we’d strongly recommend checking out the “Conversation with Assistant” option.

So what’s an Assistant?

In the OpenAI developer platform, an “Assistant” is a predefined set of instructions for ChatGPT to follow. 

You can easily create one in the developer platform without writing any code at all. 

In addition to text-based instructions, you can also give your assistant documents to use as context, like images or PDFs. 

If you’re looking into automating ChatGPT, then you probably have some similar prompts and activities you keep using AI for. Assistants are a good way to provide the context and depth you need for your repeated AI tasks. 

Your assistant will also be available to access from multiple automation providers, like Make and Pipedream. 

If you use the “Conversation with Assistant” action in Zapier, then you can just select your assistant from a dropdown and use all of its preconfigured settings for your automated prompt without needing to fill out all of the options again. 

Although you will also have the choice of overriding most parameters from Zapier if you’d like to. 

Ultimately, it’s up to you. Both “Conversation” options offer similar settings, but the Assistant option can help to quickly create several automations that reference the same AI persona, from any automation provider you want. 

Amplify AI’s time-saving benefits with automation

ChatGPT is already a massive time saver on its own, but automating your most commonly used prompts will make it even more efficient for you and your team. Connecting ChatGPT to Zapier is easy, and gives you all the options you need to craft any prompt you want. 

If you’d like to learn more about workflow automation and AI, 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.

Tutorial
September 2, 2024
How to Automatically Convert PDFs to CSVs with PDF.co and Zapier

When it comes to automating data extraction from PDF files, PDF.co is a powerful tool that can convert your PDFs into neatly structured CSV files. 

Whether you're dealing with invoices, reports, or any document containing tabular data, PDF.co makes it easy to convert your file in just a few clicks. But if you’d like to create an even more efficient workflow, you can also connect PDF.co to Zapier to automate the entire process. 

In this blog post, we'll guide you through the steps of using PDF.co and Zapier to automate your PDF to CSV conversions, streamlining your workflow and eliminating manual tasks.

Getting Started with PDF.co

To begin, you'll need to set up a free account with PDF.co. Once logged in, go to the dashboard.

Right at the top of the dashboard, you’ll see two key pieces of information: your available credits, and your account’s API key. 

PDF.co offers a one-time supply of 10,000 credits with a free account, which is more than enough to get started. 

Your API key will allow you to connect PDF.co to automation tools like Zapier and Make, which we’ll explore more later on in this tutorial. 

Converting a file in PDF.co

To convert a PDF to CSV, click on “API tools”. 

Then, scroll down and select the "PDF to CSV" option. You’ll also see several other options to convert your PDF into other file types. 

This next screen may be a little overwhelming if you’ve never worked with code before, but it’s actually much simpler than it initially appears. 

Click on “Add file” to upload the file you want to convert. 

Then, you can configure optional settings in the panel on the left. 

The text on the right defines each setting and offers detailed explanations of how to configure your options. In most cases, you just need to enter a single word or number into the quotes next to each setting. 

For example, the “Line Grouping” setting controls how PDF.co will process text that splits into multiple lines. By enabling it, you can ensure that your CSV will keep multi-line text confined to a single cell, instead of splitting into multiple cells and making your data less organized. 

To enable it, just enter the number 1 into the quotes. 

Once you’ve configured all of your settings, click on “Run request” to begin the conversion. 

Downloading and reviewing the exported CSV  

Once the PDF is converted, click on “Result.csv” to preview the file. 

You can download the CSV file and open it in a spreadsheet application like Google Sheets by clicking on “Download as file” at the bottom of this window. 

You'll notice that any structured data retrieved from the PDF is neatly organized, though you may need to remove some extraneous text rows that were part of the original PDF but not relevant to the table.

Automating PDF.co with Zapier

If you'd prefer to use a more user-friendly interface, or if you want to automate a recurring workflow, you can automate the entire conversion process using Zapier. 

We’ve prepared a Zapier Beginner’s Guide that you can check out here to learn the basics of the popular automation app. 

But here are the basic steps involved in automating PDF.co with Zapier:

Set up a PDF.co connection in Zapier

First, you’ll need to add PDF.co as an integration in your Zapier account. Select “Apps”, then choose “Add connection”. 

Search for PDF.co, and select it from the list of apps. To connect your account, you’ll just need to provide the API key, which you can retrieve from the PDF.co dashboard.

Create a Zap 

Once your PDF.co account is connected to Zapier, you can build an automation (or “Zap”) that will run a conversion whenever a specified event occurs. 

For instance, let's build a Zap that triggers whenever we receive an email with a PDF 

attachment in Gmail. This Zap will automatically convert the attached PDF into a CSV and reply to the original email with the CSV attached.

Configure the Trigger

Your trigger determines when your automation will run. Choose Gmail as the app and set the trigger event to "New Attachment." This ensures that the automation runs every time you receive an email with an attachment.

Choose the folder you want to watch, such as your inbox. You can also add an optional search query to limit the automation to items matching the search. 

Test your trigger to retrieve a recent email with an attachment. 

Add the PDF.co Action

Add a step to your Zap. Choose PDF.co as the app and select “PDF to Anything Converter” as the action. 

Select the PDF.co account you connected earlier and continue to configure the action.

The output format should default to CSV, but if not, you can select it (or any other file type you want) from the dropdown menu. 

For the “Source file URL”, use the attachment from the email. The variable you’re looking for in Zapier is called “Attachment” and will say “Exists, but not shown”. This is normal for files in Zapier. 

Then, you can configure any optional settings you want. For instance, we’ll adjust line grouping again. In Zapier, we just need to set it to “True” to enable it. 

Once you’ve configured your settings, test the step to run the conversion. 

Now, you can send the converted file to any other app integrated with Zapier. In our automation, we’ll attach it in a reply to the original email. 

Reply with an attached CSV 

Add a step to your Zap, and choose Gmail as the app. Select “Reply to Email” as the action. 

In the “Thread” field, you’ll need to provide the ID of the thread you want to reply to. You can find this data in the trigger step by searching for “Thread ID”. 

Even though the “To” field is not marked as required, you will need to provide a recipient for the action to work correctly. We’ll enter our own email there. 

Next, you’ll need to compose a body for your email. We’ll just write a short message explaining that the converted file can be found as an attachment. In this message, we’ll also include a link where we can edit the Zap. 

Finally, you’ll need to attach the exported CSV. Enter the “URL” from the PDF.co action into the Attachment field.

Once the action is all set, give it a test. Check your inbox to confirm that everything worked correctly.

In our inbox, we can see the new reply with an attached CSV. When we open the CSV in sheets, everything looks like we’d expect. 

You can now publish and turn on your automation if you’d like, but there’s one more step we’d recommend to reduce your credit usage in PDF.co.

Adding a filter to your Zap

To further refine your automation, you might want to add a filter in Zapier to ensure that the workflow only runs every step for PDF attachments. This can help avoid unnecessary processing of non-PDF files and conserve your PDF.co credits.

Add a step after your Zap’s trigger, and select “Filter by Zapier”. 

Set your filter condition to: Only continue if “Attachments Filename” contains “.pdf”. This will ensure that the automation only tries to convert

Save time with automatic PDF conversion

By automating the conversion of PDFs to CSVs with PDF.co and Zapier, you can streamline your data processing tasks and free up time for more important work. This automation is a great example of how low-code tools can enhance productivity and reduce manual effort in your workflow. 

If you found this tutorial helpful, 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.

Tutorial
August 26, 2024
How to Create Charts in Notion

Do you need to create visualizations from your Notion data?

With Notion’s new “charts” feature, it just takes a few clicks to convert your tables into bar charts, line graphs and more. 

In this quick tutorial, we’re going to show you how to create a chart in your Notion table and export it as an image file. 

Let’s get started!

Creating a new chart

To begin, open up any page in your Notion workspace. 

You can either add charts as a standalone block on a page by typing “/chart”, or by adding your chart as a new view for an existing database. 

Creating a chart in Notion with the /chart comman

Either way, you’ll see all the same options, and you’ll need to connect your chart to a Notion table as a data source. 

For our example, we’ll add a chart to the “Projects” table pictured below. 

Adding a new view to a Notion table

Click on the plus button next to your table’s existing views to create a new view in your table. Then, select “Chart” at the bottom of the list that pops up. 

Selecting "Chart" from the view list

Notion will create a chart out of your table’s data, which you can configure and customize in the “View options” window. 

A newly created chart in a Notion table

Configuring your chart

You can set the basic layout as a vertical or horizontal bar chart, a line graph, or a donut chart. 

A donut graph in Notion

We’ll choose a vertical bar chart. 

A vertical bar chart in Notion

Adjusting the X and Y axes

Next, you can configure the X axis. 

Your first choice is to designate which field will be tracked on the X axis. In our example, we’ll choose the “Start date” field. 

Options for date fields in a Notion chart

Note that with date fields, you can choose to show the day, week, month or year. You can also choose “Relative” to display the time relative to the current date - for instance, it could show the “last 30 days”. 

Displaying a date by month in a Notion chart

We’ll choose “month”, so we can see the number of projects being started each month. 

You can also set a sort order for the X axis, which we’ll leave to the default of “old to new” in our example, and you can choose to “Omit zero values”.

the "omit zero values" option

Next, you can configure the Y axis. By default, it’s set to display the “count”, which means it will show how many records exist for each data point shown in the X-axis. In our example, the Y-axis is showing how many projects there are in each month. 

However, you can also set your Y-Axis to display any of your other fields, as well. 

Next, you can choose to group the Y-axis data by one of the fields in your table. “Grouping” will look a bit different based on which layout you’ve chosen for your chart.  

Choosing a field to group by in a Notion chart

When we map the grouping to our  “Status” field, Notion will break up the bars in our graph into multiple colored sections - one for each status option represented in that bar. 

A bar chart in Notion with grouping

Just like with the X-axis, you can also choose the sort order for the Y-axis. 

Styling your chart

Under “style”, you can set the color scheme for your chart by picking a specific color palette, or just go with the more varied “colorful” option.

You can also choose “Auto”, which will use colors taken from your table when applicable. 

Customizing the color of a Notion chart

Under “more style options”, you’ll see several options to fine-tune your graph’s layout with settings like chart height, grid lines, axis labels, and more. 

Additional styling options for Notion charts

Below, you can see our finished chart after all of our settings have been configured. 

A finished bar chart in Notion

There are bars for each month broken up by project status, and when you mouse over the data, some more detail pops up. 

Extra detail appears when you mouse over a Notion chart

If you want to change your Notion chart view’s settings at any time, just click on the three dots menu to access the same options. 

Exporting your chart as an image

You can share your chart like any other page or database in Notion. 

Sharing options for Notion charts

However, another simple option that will often work well for collaboration is to export your chart as an image. 

To export your Notion chart as a still image, all you have to do is click on the three dot menu, scroll down to “Save chart as”, and select the image format you want to use. 

Exporting a Notion chart as an image

Choosing a file type for the exported image

Then, you’ll instantly get an image file of your chart. Below, you can see the exported version of our example “Projects” table. 

An exported Notion chart

Of course, you’ll lose some of the detail that you can get by mousing over your live chart in Notion, but this is a great way to quickly export a visualization to add to a report or a website. 

Pricing and limitations

Notion charts are currently available to all Notion users. However, users with a free plan are limited to creating just one chart at a time. 

Notion charts pricing

All paid plans include access to unlimited charts, so most Notion power users should be all set to make as many charts as they want. 

Create simple charts to quickly communicate key takeaways

Notion’s new charts are a simple and effective way to visualize your data, and it only takes a second to export them as an image. Try them out today to start creating useful dashboards and presentations with your data. 

If you’d like to learn more about using no-code tools like Notion, Airtable, Zapier, and Make, 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.

Tutorial
August 19, 2024
How to Add Conditional Logic to Softr Forms

Need more flexibility in your Softr forms? 

With the recently added Conditional form block, you can display different questions based on your users' answers and attributes. 

Conditional form blocks are super easy to set up, and in this video, we’re going to show you how to start using them step by step.

We’ll demonstrate two different ways you can apply conditional logic to a form in Softr:

First, we’ll show you how to make certain sections of questions appear or hide based on user responses or attributes.  

Second, we’ll demonstrate how you can split your form up into separate parts, and skip certain parts based on similar custom conditions. 

Let’s get started. 

Setting up your Softr app with a conditional form block

To get started, you’ll need to get your Softr app set up and add the conditional form block. 

In most cases, you’ll want to have the app connected to a data source so you can collect form responses. 

In our example, we’ll be using Airtable, but you could just as easily connect your Softr app to SmartSuite, Google Sheets, Hubspot, Xano, Monday, Postgres, and more. The specific data source doesn’t really matter for this tutorial.

Conditional forms: a beta feature

At the time of publishing, the conditional form block is still in beta, so some of the functionality may change a bit over time. 

For now, you’ll have to select this conditional form block to create a form with conditional logic. You cannot convert a normal form block into a conditional one for the time being.

However, we have heard that the functionality to convert regular forms to conditional forms should be coming soon. 

Adding a conditional form block

In any page within your Softr app, add a new block. In the “Dynamic” tab under “form”, you’ll see the “Conditional form” option. 

Select the block to add it to your page. Then, under settings, you can choose where the form’s responses will be sent. 

In our example, we’ll keep mine connected to my Airtable data source and choose a specific table that already has fields matching the questions we want to include in the form. 

Under the “Questions” tab, you can configure the questions that you want to include in your form. 

Sections in Softr forms

Note that the default questions generated by the conditional form block are split into two sections. 

With conditional forms, you can hide or display entire sections based on user responses, but you can’t hide specific questions directly. You also cannot move questions from one section to another. 

Keep these limitations in mind as you’re building your form. Anything you want to conditionally hide should be in a separate section from the main questions that will always be displayed. 

Additionally, it should be separate from any other sections that will be displayed or hidden based on different conditions. 

You can add more sections to your form by clicking on “Add section”. 

In the first section of our example form, we’ll add several questions to let users submit a request for a quote, and we’ll map each question to its corresponding Airtable field. 

To follow along with this tutorial, you can use any questions you want; just make sure that you have at least one section with questions that every user will see, and at least one section that will only be displayed under certain conditions. 

Conditionally hide or display sections in a Softr form

To set up conditional logic in your Softr form, click on the “Logic” tab.

Then, select the section you want to adjust visibility for. 

Our first section has general questions for anyone requesting a quote, so we’ll keep it set to “Always visible”. 

Our second section has a couple questions that only apply to users who select design packages with a logo, so let’s make sure it only shows up when the selected design package includes the word “logo”. 

To make a section of a Softr form only appear under certain conditions, select “Only visible when…”

Then specify one or more conditions. 

Setting a condition

When setting up conditional logic, you’ll be able to access all of the user’s responses so far in the form (“Form answer”), as well as any user attributes that are available in your data source (“Logged-in user”). 

In our example, our condition will check the user response in the “Design package” field for answers that contain the word “logo”. 

You can also add multiple conditions for the same section, and choose to display the section if ANY condition is met, or only if ALL are met. 

However, in our example, we’ll just stick with this one condition. 

Testing your conditional form

Once you’ve configured your conditional form logic, publish your site and open it in your browser to give it a test. 

Below, you can see our published form. The logo questions are hidden to start with, which is a good sign – no package has been selected, so it shouldn’t be possible to pass the condition and show the questions yet. 

When we select the “logo” package, the logo questions from section 2 instantly appear. 

Finally, we’ll switch to a “website” package, and the questions are gone again. The logic is being applied correctly, so this form is all set. 

Using conditional logic to skip to different steps in Softr forms

Now let’s take a look at another way to apply conditional logic to your Softr forms. 

In addition to hiding or displaying separate sections, you can also split your form up into steps, and choose the sequence of steps based on user responses or attributes. 

Let’s see it in action. 

We have another form in this Softr app which is used to collect feedback from clients we’re already working with. 

This first step of the form has questions for all clients, but we’ll add a step that will only be relevant for clients who had a website designed by our fictional design agency here. 

To add a new step to your Softr form, select the “Questions” tab, click “Add a new step”. Follow along in your Softr app by creating a conditional form with at least 2 steps. 

The second step that you add to your form can only be accessed after the user clicks “Next” on the first step of the form. 

In our example, we’ll add several questions to the second step that are specific to users who had a website designed for them. 

Once you’ve got all the questions you want in your second step, click on the “Logic” tab. 

Click on a step in the flowchart-like area on the left to see what happens after it’s completed. 

By default, the steps in a form are arranged in a simple, linear process. After Step 1, the form will go to Step 2, and so on. After completing the final step (in our example, Step 2) users can submit the form. 

If you’d like to set up alternate paths that skip certain steps, select a step and click on  “Add path”. This will add an alternate path that users can follow after completing the selected step. 

Under “users go to”, you can select where users will go next if they meet your specified condition. 

In our example, we’ll select “Submit”, so this path will lead users directly from Step 1 to the “Submit” button, skipping Step 2. You can configure the condition for your path however you want. 

This time, instead of using a user response in the condition, we’ll use a user attribute instead. 

Our condition will be:

If the logged-in user’s “Project” field includes none of [three packages with the word ‘website’].

So if users aren’t associated with a website design package in our data source, they won’t see the step that includes questions about their website design experience. 

Under “All other cases go to”, you can see and determine what will happen for any users who don’t meet this condition. In our example, they’ll just continue on to step 2. 

Once you’ve configured your steps and paths, publish your site and test both possible paths.

First, we’ll log in as a user who purchased a website package. We can immediately see that there's a “next” button instead of a “submit” button

When we click the “Next” button, we can see Step 2 with its questions pertaining to website design. 

Great! Softr’s conditional logic identified that the user’s “Project” field included a website package, and showed Step 2 accordingly. 

We’ll finish the test by signing in as a user that didn’t order a website design package. The submit button remains as-is.

And when we fill out and submit the form, Step 2 never appears. 

Perfect! All the conditional logic is working exactly as intended. 

General tips for using conditional forms in Softr

You’re now all set to start using conditional form blocks in Softr. 

However, before we wrap up this guide, there are just a few more quick tips we want to share so you can get the most out of forms. 

Use “magic links” to quickly switch between user profiles in your Softr app

First, if you’re testing conditional logic based on user attributes, you may want to use magic links to quickly sign in with different test profiles. 

Here’s how it works. 

Go to the “Users” menu in your Softr app, and add a test user manually if you don’t already have one. 

You can also add test users directly to your data source. 

Then, in the “Users” menu, just click on the “Copy link” icon to copy a ‘magic’ link that will let you instantly sign as that test user. 

This can be a very convenient way to switch back and forth between different test profiles while you’re setting up stuff like conditional forms. 

How conditional forms interact with required fields

Next, let’s quickly go over how required fields interact with conditional logic.

The short answer is that they work just fine together. 

If you set a field to “required”, but it’s hidden by your conditional logic settings, users will still be able to submit the form without any problem. 

They won’t need to provide an answer for the hidden required field. 

So go ahead and set any questions to “required” if you want to; it shouldn’t cause any problems with your conditional logic. 

Form layout and other settings

Finally, if you want to change the layout and styling of your form, you can find those options under the “Settings” tab. 

They’re at the bottom of the section. 

In the same place, you can also choose to prevent logged-in users from submitting the form multiple times, and set an action to run after someone completes the form.

For instance, you could redirect users to an external URL or another page in your Softr app. 

Add flexibility to your forms with conditional logic

Conditional logic lets you create more versatile forms that accommodate a wide variety of use cases and user types. 

Making a form with conditional logic in Softr is easy, so try adding one to your Softr app today. 

If you’d like to learn more about Softr, Airtable, and other low-code tools like Zapier and Make, 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.

Tutorial
August 12, 2024
Make Beginner's Guide: Updated for 2024

Are you and your team spending too much time on repetitive tasks? Are you tired of catching silly mistakes after it’s too late?

There's a better way, and it's easier than you might think.

With workflow automation, you can automate your team’s tedious tasks and make sure that critical work is done the right way every time – and you don’t even need to write a single line of code to do it. 

In this post, we’re going to show you how to dive into the world of automation with one of the most capable and affordable solutions out there. 

Read on to learn how to use Make, formerly known as Integromat. 

What’s in this guide

We’ll begin by briefly explaining what Make is and how it works, and we’ll show you how to build your first automated scenario. 

There are three key skills you’ll get from following along with this basic tutorial. You’ll learn how to: 

• Connect apps together in Make to sync and transfer data. 

Transform and format data with functions. 

Control the flow of your automations with filters and conditional logic 

To demonstrate all of these skills, we’ll use the following apps:

Google Calendar

Google Sheets

Slack

• And of course, Make

To follow along, you can create free accounts for all of these apps – Make included. 

Before getting started, you’ll want to make sure you have some Calendar events and a Google sheet that you can use to play around with, as well as a Slack channel to send messages to. 

Whenever possible, it’s best to build your automations and run tests with dedicated testing files, channels, folders, or other material. 

After completing the tutorial in this guide, you'll be ready to build your first automated workflow to start saving time and reducing errors in your daily tasks.

Let's get started and see how Make can improve the way you work!

What is Workflow automation, and what is Make?

Before you start building in Make, we want to give you a brief overview of what Make is, and what you can do with it. 

Make, formerly known as Integromat, is a no-code automation provider

It lets you accomplish tasks in your web apps automatically without needing to write any code at all, leaving you with more time to think and less time mindlessly clicking on buttons. 

There are several apps out there designed for workflow automation, like Make’s main competitor Zapier, but this guide will be focused primarily on Make. 

Compare automation providers like Make and Zapier on XRay.Tools

If you’d like to compare which tools can be automated on both providers, you can just do a quick search for your apps on XRay.Tools. 

That will show you every trigger, action, and search available for your apps in Zapier and Make, among other options. 

How automation works in Make

Below, you can see what an automation looks like in Make. 

I

n Make, each automation is called a "scenario". A scenario starts with a trigger event, which is the event that will prompt the automation to run. 

Then, one or more automated actions and searches will follow that trigger. These actions and searches can be in the same app as the trigger, or in totally different apps.

In most cases, you're probably going to use your Make scenarios to send and sync data across different software.

In the example that we'll be building today, our "trigger" is an event getting added to Google Calendar. Then, data from that calendar event is used to create a new spreadsheet row in Google sheets.

Finally, information about the event is passed to Slack for an instant alert. However, thanks to a handy little filter, the alert will only run if the event in question is scheduled to start within one week from the current time.

Simple or complex workflows

The scenario we’re going to demonstrate in this guide is very simple and linear, but Make scenarios can get much more complex and sophisticated. 

You can add dozens of steps, branching paths, loops, and other tools to accomplish whatever you need to automate your workflows. 

As we build this scenario, we'll show you a bit of formatting and conditional logic, but our main goal for today is to learn the basics so you can start using Make. 

You can check out other videos in our Make playlist to learn more advanced techniques. These videos cover topics like routers, API calls, automating AI prompts, and more. 

You can also sign up for our workflow design course to learn how to plan, implement, and deliver scalable automated workflows for your team and clients. 

Now, it’s time to get ready to build your first scenario in Make. 

Getting started with Make

Before we get started, be sure to sign in to all of the apps we're going to be using today: Make, Google Sheets, Google Calendar, and Slack. For this tutorial, free accounts will be fine on all of these apps.

Once you're all signed in, open up Make. You’ll see several options here, but for now, just click on 'Scenarios'. 

Then, create a new scenario.

Adding a trigger

Every automation needs to start with a trigger, so add one by clicking on the pulsing plus button in the middle of the screen. 

For this scenario, you’ll want to add a trigger that watches your Google Calendar for new events.

After clicking on the plus button, you should see a long list of apps that Make can automate. There are about 2,000 total (and counting), so don't bother scrolling to try and find one. 

Instead, just enter a search term (like “Google Calendar”) to pull up an app instantly.

Adding a trigger to your automation

As soon as you enter a term, Make will show you a few options from the best match - in this case, Google Calendar. 

But if you don’t see the choices you’re looking for, just click on “Show more.” Then you’ll be able to see every single choice you have for automating that app with Make.

At the very top of the list, you should see an option called “Watch Events.”

As you can see from the description, this will watch your calendar for new events and run whenever it finds one. 

This is a perfect trigger for our automation, so select it to add the trigger to your scenario. 

Configuring the trigger

Now that you’ve chosen a trigger, you need to configure it by choosing an account to use, and adjusting several parameters to control exactly when your scenario runs.

Authorizing an account for automation in Make

The first step for setting up any module in Make will always be to authorize an account in the app you want to automate. 

To automate one of your apps, like Google Calendar, you need to allow Make to access your account and perform actions on your behalf. 

Click “Create a connection” to add your first connection for an app. 

For most apps, all you’ll need to do is provide a name for your account and sign in. Then, you’ll be able to authorize Make in your app with a single click. 

However, sometimes, you’ll need to provide additional credentials like a ‘Client ID’ and ‘Client Secret.’ If that’s the case, you can click on the “Online help” link for more information.

Authorizing Google Calendar

For Google Calendar, you just need to provide a connection name. Be sure to make it unique and descriptive, so you can distinguish between different accounts that you connect. 

Then, click “Save.” In the screens that follow, you’ll see the permissions Make needs to automate your app.

The permissions required are extensive, but there’s no need for concern. Make is a trustworthy application, and it only needs these permissions so it can perform the actions you program it to do in your automations. 

In spite of requesting the permission to delete data in your account, Make isn’t actually going to delete anything in your apps unless you build an automation with a “delete” step. 

After reviewing the required permissions, click “Allow” to authorize Make. 

Now, Make will access Google Calendar through the account you connected.

Choosing trigger settings

Next, let’s configure the key options for this trigger. 

The choices for configuring a trigger in Make will typically let you narrow things down to get a little more specific about when the automation should run. 

For this “Watch Events” trigger in Google Calendar, we can start by choosing the specific calendar that Make should watch. You can just pick one from the dropdown.

Then, you can choose how Make will watch for events - by Created Date, Updated Date, the event’s Starting Date, or the event’s Ending Date. 

For this scenario, go with “Created Date.” 

You can leave “show deleted events” unchecked, and you won’t need to add a query. Adding a query would enable your trigger to search for a specific event by its title, like “All-hands.”

To make sure your automation runs for every new calendar event, leave the query field blank. Along similar lines, check every event type in the list. 

Finally, you can choose how many events can be processed at once when the automation runs. 

You can set this to whatever number you’d like, but we’d usually recommend keeping it pretty low. That will usually make it easier to sort through the data as you’re running your tests. 

Enter a number like 1 or 2, and click “OK” to commit all of your choices. 

Testing the trigger

Now, it’s time to test your trigger. 

Testing your Make scenario’s trigger will retrieve a real piece of data from your trigger app, and confirm that your trigger is working correctly as you configured it. That means that testing this “Watch events” Google Calendar trigger will retrieve an actual event from your Google Calendar.

As soon as you close the configuration window, you’ll be prompted to “choose where to start.” 

If you don’t see this pop up, you can always right-click on the trigger module and select “Choose where to start” instead. 

Then, you’ll see a few options for selecting a starting point. For testing purposes, we’d suggest using “choose manually” the vast majority of the time.

It gets a bit tedious when you’re doing a lot of testing, but this process of “Choose where to start” > “Choose manually” is the most reliable way to control what test data Make uses, since it will let you pick the data you want from a list. 

You can use any event you want to test with. In our example, we’ll pick this test event that we created earlier in Calendar. Once you’ve selected an event, click “OK.”

Your trigger is now ready to process the specified data the next time it runs, but you still need to make the trigger actually run to finish your test. To do that, just click on the “Run once” button to fire it off manually. 

You should see a number appear over your trigger module after a successful test. 

You can click on this number to see all the data your trigger retrieved, like the event summary, the start date, the end date, and much, much more.

All of this data can be referenced dynamically and transformed in subsequent actions in your automation. To see how that works, let’s add an action now to add a new row to Google Sheets containing some of this event’s information.

Add an action to your scenario

Add a new action to your scenario. Once again, search for the app you want to use - in this case, Google Sheets. Then, click “Show more” to see all of the available actions. 

You’ll notice that unlike Calendar, the options for Sheets are sorted into ‘Actions’ and ‘Searches.’ Since triggers can only be used at the start of the automation, those are excluded from this list.

To add a new row, choose the “Add a row” action. You should be able to use the same Google connection that you added for Calendar, though you will need to update the permissions.

You can also add an additional account if you’re using a different sign-in for sheets. Once you’ve chosen and authorized your account, you can configure the action.

Configuring an action in Make

Whenever you’re creating data like this in Make, the first thing you’ll need to specify is where you want to create that data. 

In this case, you’ll need to specify what Sheet the new row should be added to. Under “Choose a method,” the default “Select by path” option will allow you to pick folders and subfolders until you find the file you want. 

We’d recommend switching this to “Select from all.”

Then, you can choose the document you want to use by copying and pasting its ID, which can be found in the URL bar when you have the document open in your browser. 

Then, paste the ID into Make.

Using an ID isn’t necessary – you can always identify the doc by its file path if you want – but it helps ensure that everything stays consistent. File names and locations can change, which may require you to update your automations. However, the document’s ID will always remain the same.

Next, choose the sheet you want to use in this file - in this case, that’s Sheet 1 for us.

If your table has headers, like our example does, make sure the “Table includes headers” option is set to “yes.” That will ensure each column is correctly labeled with its header name, like “Start” rather than just being “B” or “C.”

Now, you can map data from the trigger into each column for the new row. Click on each field, and a window will pop up with all of the data retrieved in the trigger, or Step 1 as it’s labeled here. 

For example, we’ll insert the event summary into “Event name,” the start and end times into their fields, and so on.

If you want to skip any of these fields and leave them blank in Sheets, just leave them blank here, too. Note that you’ll see every column in your sheet, even if it doesn’t have a title, so you might want to delete extra columns before going into Make.

Finally, you can choose whether to use formatted or unformatted data. 

For this automation, we’re going to stick with formatted data so our URL in the “Hangout Link” column will still be formatted as a URL. Once you’ve configured the action, click “OK” to close this window.

Testing an automated action

With the action all set up, it’s time to give the scenario another test. 

We’d recommend following the same procedure as before to test your scenario: right-click on the trigger, select “Choose where to Start,” “Choose Manually,” and pick the data you want to use for the test. 

Then, click “Run once” to run the whole scenario.

You should see the trigger and action modules run one at a time, and numbers will appear over each of them in turn. Again, you can click on these numbers to see the data the module processed.

In the image below, you’ll notice there are two “bundles” listed in this “operation”. That’s because our scenario processed two events - the one that we chose to start with, and an additional event that was added to the calendar after our chosen event. 

This means that our trigger ran once and retrieved two Calendar events, prompting the Sheets action to create 2 rows. Since two rows were created with two different sets of data, we’ll be able to show you exactly how dynamic data works. 

Next, open up your Google Sheet to see what Make created. 

Over in Sheets, there are 2 new rows with data retrieved from the respective events. You should note that Sheets includes the correct, unique information for each event.

That’s why we call it “dynamic” data. Instead of typing out a static title or start date, we told Make to just look for the title and start date of each specific event. The data that gets filled in here reflects each calendar event that runs through our automation.

After running your tests, your first automation in Make is all set. You can save it and turn it on if you’re ready to start using it. 

In the next section of this guide, we’ll show you a few ways to improve this automation, but first, let’s take a look at operations and scheduling. 

Scheduling your automation to stay within “operations” limits

In Make, you’re limited to how many “operations” you can use on your account each month. Every automated trigger, action, and search counts as a single operation, even if these are run as tests – and even if the trigger runs and doesn’t find any new data. 

On the free plan, you’re limited to just 1,000 operations each month. 

In the bottom left hand corner, we can see the automation is currently set to run every day and check for new calendar events every fifteen minutes. 

That means this automation will use at least 96 operations each day, seven days a week, even if it doesn’t find any new events. This is because you’re charged an operation every time the trigger checks for new data. Using webhook triggers will let you circumvent this issue, which you can learn more about in this tutorial, but that’s a more advanced topic. 

For now, we can dramatically reduce the operations used by changing the schedule to every half hour, and by only setting it to run during business hours on business days.

Just click on the scheduling button (which will read “Every 15 minutes” by default) to change the schedule. 

In the menu that pops up, you can set how often the automation will run. By selecting “add item” under “Advanced scheduling”, you can also dictate which days and times the automation will run. 

After reconfiguring the schedule in our example, the automation should now only check for new events 16 times a day, five days a week.

Your automation won’t start running on its own until you turn it on, but it’s best to set the schedule early on so you don’t forget.

Going further with Make: advanced techniques

Transforming data with functions

While the automation that we’ve built works fine, the formatting of the dates is less than ideal. 

Fortunately, there’s a very simple way to fix that in Make and reformat the dates however you want.

Go back to your scenario in Make and open up the ‘Add a row’ action. Then, select the start date field.

As you’ve already seen, when you select any data input field in a Make module, a window pops up where you can access data from previous steps in the automation. 

However, that’s just one tab in this window. In the other tabs, you can access functions and tools that let you reformat text, dates, and numbers, run calculations, and a lot more.

Let’s try reformatting this date to make it a bit easier to read. 

Click on the tab with a calendar icon, then look for the “formatDate” function down at the bottom of the panel.

Hover over the function to see a tooltip explaining how it works along with a few examples.

Click on the function to add it to your currently selected input field. 

You’ll need to put the date you want to format before the semicolon. Then, you’ll need to provide the format you want to use after the semicolon. You can always refer back to the tooltip to confirm the syntax of the function. 

In our example, we’ll use this format:

MM-DD-YY hh:mm A

to show the month, day, and year separated by dashes, followed by 12-hour time. 

To keep things consistent, we’ll also use the same function for the end date. 

Now, instead of entering the timestamps directly into Sheets, this automation will enter the outputs of these functions, which will be neatly formatted dates and times. 

Once you’re all set with your functions, close the Sheets action and save your scenario with the floppy disk save icon. Then, give your scenario a fresh test. 

Check Sheets to see the output. You should see a new row with start and end dates using our new format. 

Conditional logic and filters

There’s one last thing we want to show you before we wrap up this beginner’s guide. In general, one of the best things about automating a workflow is that you’ll ensure it runs the same way every time, and you’ll avoid all those messy human errors. But with a simple automation like this one, that extreme consistency can become a problem.

That’s because real-life workflows are rarely this simple. More often than not, you’ll need to allow for at least some variation. Fortunately, Make offers several tools to give your automations some variability, including the ability to add filters before any automated action. The scenario will only continue to run past the filter if its data matches your filter conditions.

Let’s see how it works in action. 

First, add one more action to this scenario. In our example, we’ll add a Slack action to send a channel message. The message will act as an alert for each upcoming meeting. 

Setting up this action is very similar to configuring the new row in Sheets, so we’ll just show you the finished configuration in the screenshot below. 

Note that the asterisks we’re adding around some words in the message are a simple formatting trick - they’ll make those words bold in Slack’s markdown syntax. Once your Slack message module is all set, you can add a filter before it.

What we’re going to do is make it so the scenario will only continue to the Slack step if the calendar event is set to start within a week from the current time. If it’s later than that, the scenario will just stop after creating a new row in sheets. 

Adding a filter

To add a filter to a scenario, click on the dotted line between the two modules where you want to add your filter.

You’ll then see a little window pop up where you can configure your filter. Give it a brief, descriptive label so you know what it’s for. 

Then, you can set the condition. This is what the filter is going to check to decide if it should continue or not.

We want to check when the start date is, so begin by entering the start date from the trigger. 

Then, set an operator. Look under “date time operators” for the “Earlier than or equal to” operator. 

Now, you just need a way to specify “one week from now.” To do that, you’ll need to ask Make to retrieve the current time, and add seven days to it. 

Go to the calendar tab again and choose the “AddDays” function. 

Before the semicolon, insert the variable called “now.” 

“Now” will retrieve whatever the current date and time is when the scenario is running.

After the semicolon, enter 7, for 7 days.

Now, this filter is set up to check if the event’s |Start date| variable is |earlier than or equal to| |7 days| from now. 

By clicking on “Add AND rule” or “Add OR Rule,” you can add more conditions for the filter to check, but let’s just stick with this one for now.

Click OK to close the filter, and give it a test. 

Testing a filter

We’d recommend conducting two different tests – one that should pass the filter and one that should fail. 

In our example, we’ll start with an event that starts in 2 days, which should pass the filter. 

After running the test as usual it looks like all three modules ran, consuming 3 operations. 

Below, you can see the new row added in sheets, and the message sent in Slack.

Now we’ll test with this event that starts in 10 days. 

In our test, the trigger and the Sheets module ran, but the scenario stopped at the filter and didn't send a Slack message. In total, it consumed 2 operations instead of 3.

Based on these tests, the filter makes the scenario stop when events are more than 7 days away, but lets everything else through. It’s working exactly as intended. 

Use routers to do more with filters

To get the most out of filters, you’ll usually want to use routers as well so you can set up alternative actions for different conditions. You can check out this tutorial for more information about routers

But for now, your first scenario is all set. You can now automate your apps with custom triggers and actions, transform data with functions, and control the flow of your automation with filters. You’re well on your way to automating your work and claiming back some valuable time.

Start automating your team’s repetitive tasks with Make

With automation software like Make, you can remove tedious, repetitive tasks from your team’s everyday workload, and focus more time on the work that really matters. 

What we’ve gone over today is just the beginning of what Make can do. Be sure to check out some of the other tutorials on our blog or our YouTube channel to learn more and level up your automation skills. 

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

Understanding Automation
August 5, 2024
Preparing Your Business for Automation and AI

AI automation is no longer a topic to put off for the future. 

In a competitive environment, companies can’t afford to ignore the benefits AI and automation can bring today. 

By eliminating repetitive tasks and creating content and reports with generative AI, businesses can scale their operations and gain fresh insights. 

However, not every workflow is immediately ready for this kind of transformation. Preparing your workflows for automation and AI is essential to harnessing these benefits. 

Here’s how to get started.

The Power of AI in Automation

First, let’s take a look at how AI has opened up new possibilities for workflow automation. 

Generative AI models, like those from OpenAI and Anthropic, have brought an entirely new dimension to no-code/low-code automation. 

While automation providers like Zapier and Make have always excelled at automating repetitive tasks and sharing data between applications, they’ve been limited in synthesizing or creating information. 

Now, with AI, you can go beyond simple automation by transforming content and generating original materials with AI prompts integrated into your workflows.

For example, without AI, you can automate alerts for new files added to Google Drive, referencing data from the Doc in your alert’s message.

A Zap that retrieves and sends standard variables in Google Drive

It’s easy to connect the data from Point A to Point B, but you can’t really create brand new data using traditional workflow automation alone. 

An alert in Slack created by Zapier with data retrieved from Google Drive

However, with AI, you can take things a huge step further and summarize the documents or generate improvement notes using ChatGPT.

A Zap that uses ChatGPT to generate original content

Preparing Your Workflows for Automation

But before trying to enhance your workflows with automation and AI, you need to ensure your processes are repeatable and consistent. 

This is a crucial preliminary step for two key reasons. 

First, automations require specific instructions to run properly. Even though you don’t need to write any code to build automations with Zapier or Make, you still need to define clear triggers and actions for your processes, and specify the data inputs and outputs for each step. 

Second, automating a process will only be worthwhile if that process already provides value for your company. Automating a process that’s not working how you intend will essentially just codify an unproductive workflow. 

So if you want to try automating a process, start by mapping it out in precise detail to create an effective automation blueprint. Confirm that the process works well when run manually first, then automate it in software like Zapier or Make. 

As an example, let’s say that you want to automate your team’s employee onboarding process. A basic employee onboarding automation might look something like this:

Part 1 of an onboarding workflow in Zapier

Onboarding automation:

• Launch when an employee’s status is set to “Onboarding” in the team directory (Airtable)

• Invite the new employee to relevant Slack channels

• Add the new employee to relevant docs in Google Drive

• Email the new employee the employee handbook

• Assign the new employee a task to review the handbook

• Assign their supervisor a task to conduct training

• Send a welcome message in Slack

Part 2 of an onboarding workflow in Zapier

Part 3 of an onboarding workflow in Zapier

Post onboarding:

• 2 weeks later, send a feedback survey to the new employee

A Zap that sends out an onboarding feedback survey through GMail

Ultimately, the value of automations like this relies heavily on the quality of the documents and materials involved. 

If you’re not happy with your company’s employee handbook, or if you’re not quite sure what tasks to assign, all this automation is going to do is send out information that still needs to be improved. 

In other words, your automations are often only going to be as good as the material they process. 

Until you've defined all the critical assets you need for a successful procedure, the juice just isn't worth the squeeze to automate it.

This is why you want to work out the kinks in the process before automating. But once you’ve done that, you can save yourself a bunch of time and avoid errors by automating every step that you can. 

Enhancing Automation with AI

Ultimately, similar criteria of consistency and repeatability apply when you want to enhance an automated process with AI.

Before you add an AI prompt to your automated workflows in Zapier or Make, you need to make sure you have a relatively consistent prompt that you want to run in the same way every time.

When you’re using a Chatbot interface like ChatGPT manually to ask spontaneous questions, there’s no real need to be consistent. 

You can summarize text files sometimes, or just copy and paste text directly other times. Generally, it doesn’t make any difference. 

Referencing a text file and pasting the text directly into ChatGPT get similar results

But if you want to automate that prompt into a Zap or Make scenario, you need to know exactly where all of the data that you feed into the prompt will come from. This is because each piece of data has to be defined as a variable in your automation.

A ChatGPT prompt in Zapier with several dynamic variables

Seamlessly adding AI to an automated workflow

Fortunately, in many cases, you’ll find that automating a process creates clean, organized data that’s perfect for feeding into an AI prompt – even if you weren’t originally thinking about using AI at all. 

For instance, let’s revisit our employee onboarding example. 

Just by running the simple automation we outlined earlier, you’d have a bunch of consistently structured data to compile into a ChatGPT prompt. 

In your project management software (Airtable in our example), you’d have data about which tasks have been completed, and when. 

Automatically generated tasks in Airtable which can be used as data in an AI prompt

You’d also have the new employee’s survey responses to every question. 

A survey response in Airtable, which can be used in an AI prompt

With that data, you could set up an automation that sends the user’s responses to AI for sentiment analysis, or to discover other insights you might not have noticed by reviewing it yourself. 

An AI sentiment analysis in Zapier

You could also send a prompt that includes stats about the completed tasks and when they were complete to let the AI evaluate the success of your onboarding process. 

The beauty of adding automation and AI together is that you can easily add variables to your prompts, so they have a similar structure every time, but different specific data points. 

Without automating the process first, you’d have to manually look up the data and enter it into your prompt. This sort of back-and-forth might be worth it while you’re fine-tuning your prompt, but once you’ve figured out the instructions you want to send, it’s much more efficient to run it all automatically. 

So if you want to start enhancing a workflow with AI, try taking the same approach that you would if you wanted to automate the process in general. 

Make each step as consistent and repeatable as possible, and make sure that you’re creating clean, well-structured data that you can easily plug into a prompt. 

Getting Started with AI and Automation

As AI continues to disrupt industries across the board, it’s more important than ever to find effective ways to leverage it so your company can get ahead of the competition.

If you’re not sure where to start, then just begin by documenting a process and preparing it for automation. Automating a process naturally leads to better opportunities to integrate AI into your workflows, creating clean, consistent data that connects seamlessly to your prompts. 

To learn more about automating your company’s work, be sure to explore check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
July 29, 2024
Launch Your Products Quickly and Cheaply with Low-code

If you're considering starting a business or launching a new product at your company, you're likely wondering how to get your idea off the ground and start testing for product-market fit. 

And if you haven't secured a significant investment, you're probably looking to go to market while spending as little cash as possible.

Fortunately, there's a simple and accessible way to test your business ideas quickly and affordably: prototyping your concept with no-code and low-code tools.

Today, we’re going to use three products that we’ve created at XRay to demonstrate why low-code builds are the best place to start when you need to validate an idea. 

These products each highlight the three key benefits of using no-code to build prototypes for your business:

• Low-code lets you quickly test launch products and services

• It can easily integrate with existing systems for streamlined adoption

• you can experiment with internal ideas and add new features whenever you need to

Read on to see how you can benefit from all of these concepts while building low-code products. 

LowCodeEngineers: Rapid launching and testing

LowCodeEngineers, or LCE for short, is a service we launched and validated using a minimal low-code build. 

LCE matches customers with expert no-code/low-code support on a convenient, flexible hourly basis. Whether you need to build or fix Zaps, Airtable bases, Make scenarios, or Softr portals, you can book time on LCE to get one-on-one support over Zoom.

lowcodengineers.com home page

You might think a service like this would require a standalone app or at least a user sign-in system, but it doesn't! Here's how it works:

1. Customers discover LCE through our videos, landing page, or direct conversations with our sales team.

2. They book their preferred time slot and pay through the LCE website.

Booking time through LCE

3. We receive automated Slack alerts about new bookings, match customers with the right expert, and schedule the Zoom call.

An automated Slack alert for new LCE bookings

4. Each session is recorded, transcribed, and summarized for easy future reference using our Debrief system (which we'll discuss later).

An example Debrief summary

The architecture supporting this early version of LCE is remarkably simple. It just consists of:

• A landing page built in Softr with a backend in Airtable

• Scheduling through AppToto, which includes Stripe integration for payment processing

• A Zapier automation to alert our team about new bookings so we can hand-pick the right engineer for each job

The LCE site built in Softr

While we plan to automate more of this system in the future, this streamlined implementation with a Softr site and some Zaps was all we needed to validate the idea. 

Even though there's still some manual work on our end, it does enough to test the core value proposition: Expert low-code help, one hour at a time.

We soft-launched in October last year but only started heavily promoting LCE in the last couple of months. In a matter of weeks, we've already seen dozens of bookings resulting in 5-figure monthly revenue. 

This quick validation has shown us that LCE is a service worth pursuing and investing more time in, and we didn't have to spend extensive resources just to figure that out.

It took us less than a month to build the MVP, and our software operating cost is just over $100 a month. Discoveries like this are what makes low-code so valuable to entrepreneurs and startups. With simple tools like websites built in Softr or Webflow, and automations built in Zapier or Make, you can quickly test product-market fit to see if an idea is worth a real commitment of your resources.

Guardian: Leverage Existing Systems for easy user adoption

Another project that demonstrates the power of low-code prototyping is our tool called "Guardian." This project, while still in its early stages of validation, highlights a crucial concept: low-code allows you to easily leverage existing software and systems. Whenever possible, that's exactly what you should do. 

Don't reinvent the wheel; instead, build on top of popular tools and hijack existing behaviors.

Guardian was created to solve a specific problem we faced as an agency. We build and maintain automations for clients in their accounts on platforms like Zapier, Make, and Airtable. 

When these automations encounter errors, alert emails are sent to the client's inbox.

An error alert email from Zapier

However, we don't have access to our clients' email accounts, and often, clients don't fully understand the error messages. This led to a slow and tedious process of manually forwarding messages, with the risk of important alerts being missed.

Our solution, Guardian, automatically aggregates all these error alert emails into one place where we can view them, group them, and create notes. 

Finding an automation and its alert emails in Guardian

It also includes simple methods for tracking our responses. 

Automation management options in Guardian

Like our MVP for LowCodeEngineers, Guardian's architecture is very simple:

• Every client sets up some auto-forwarding rules in their email account

• A Make scenario uses regex to parse relevant emails for key details

• A Softr frontend allows our team to view the aggregated and sorted messages

The beauty of this system lies in its ease of adoption. Clients can install Guardian by simply setting up some auto-forward rules in their Gmail or Outlook accounts. 

3 simple steps for setting up Guardian

Once these rules are in place, they don't need to do anything else. Every relevant email is automatically forwarded to our team and tracked in Guardian.

With over a dozen active users and 1,000 indexed automations, Guardian has already proven its worth as an internal tool. It's now available for anyone to try for free at guardian.xray.systems

By building on top of existing apps and features, we significantly sped up our development time and made it much easier for users to adopt our product. This approach of leveraging familiar environments, like email inboxes, reduces barriers to entry and simplifies the user experience.

Debrief/ZoomTube: iterating on a low-code prototype

Our final example, Debrief (initially called "ZoomTube"), showcases how low-code can be used to validate an internal build and how easy it is to update and rebuild as circumstances change.

As a fully remote business, many of XRay's important meetings and decisions happen over Zoom. Early on, we realized we needed an organized way to reference previous meetings and share key information with clients and partners. While enterprise Zoom plans could have provided some of these features, we needed a more cost-effective solution.

Our initial implementation, circa 2021 (pre-ChatGPT), involved a Zap that:

• Uploaded all of our Zoom recordings to a private YouTube channel for archiving

• Sent the uploaded videos to Trint for transcription.

This relatively simple Zapier automation allowed us to capture and store thousands of meetings at no additional cost beyond our existing Zapier subscription.

This lightweight implementation quickly proved that we didn't need to invest in an expensive solution; we could get all the data we needed through a cheaper, low-code build.

Over time, the system evolved into what we now call "Debrief." The current version no longer uses Zapier.

Instead, it’s built primarily with Airtable, and features a frontend in Softr with AI summaries. 

Debrief website

Debrief includes additional customized features that wouldn't be available in off-the-shelf solutions. We added these features gradually as needed, after demonstrating that the core system worked. By using the system daily, we identified areas for improvement and iterated accordingly.

Building with low-code allowed us to confirm that we were using resources correctly and made it easy to update the system as new needs emerged. Debrief is now an integral part of our internal systems, helping us review and share information about meetings, and even creating tasks for us with AI.

The key takeaway here is that low-code not only allows you to quickly test initial ideas but also makes it easy to update and add new features as you discover needs. Adding new steps to an automation or even replacing your automation software entirely is much simpler than developing features and products from scratch.

Start prototyping today with low-code tools

Low-code empowers you to rapidly test ideas using existing systems as a convenient starting point. For entrepreneurs, the key is to focus strictly on your value proposition rather than getting bogged down in extra features.

If you have an idea to test, start building it today with simple tools like Zapier, Make, Softr, or Airtable. These platforms offer the flexibility and speed needed to prototype and validate your concepts quickly and cost-effectively.

Remember, the goal of low-code prototyping is to validate your core idea with minimal investment. Once you've proven the concept, you can always scale up and refine your solution. So don't wait – start building and testing your ideas today!

If you’d like to learn more about building with no-code and low-code tools, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
July 22, 2024
Automate Your Apple Devices with Shortcuts

If you're constantly doing the same tasks on your iPhone, iPad, or Mac, then there's an easy and free way that you can start saving time right now.  

In this post, we’re going to show you how you can create automations to streamline your everyday life with Apple Shortcuts.  

We’ll show you two different ways to create automations with Shortcuts. 

​​

We’ll start with a Shortcut from Apple’s gallery that uploads photos to Dropbox with a single tap. 

Then, we’ll show you how to build a custom automation in Shortcuts that plays music whenever your device connects to a bluetooth speaker. 

These are just two examples of the thousands of automations that you could build with Shortcuts, and they’re a great way to learn how Shortcuts work. 

All you need to follow along with these tutorials is any Apple device. Our examples will be demonstrated on an iPad, but you’ll see similar options on iPhones, as well. 

Two types of automations in Shortcuts

​​As mentioned earlier, there are two types of automations you can create with Shortcuts.

You can build automations that run on demand whenever you tap on their button.

Alternatively, you can create automations that run on their own based on conditions like the time of day, your device’s battery level, or whenever a specific app is opened. 

We’ll cover both in this tutorial. 

Building an automation with Apple’s Shortcut Gallery: Uploading files to Dropbox

We’ll start with an on-demand shortcut from Apple’s gallery. This Shortcut will let us automatically upload the latest photo on our device to Dropbox with one tap. 

To begin, open up Shortcuts. It should already be installed on any Apple device we own - like your Mac, iPhone, iPad, or Apple Watch. You can see the icon for the Shortcuts app in the screenshot below.

The Shortcuts icon

Adding a shortcut from the gallery

Once you’ve opened up the Shortcuts app, select “Gallery” from the menu on the left. 

The Shortcuts gallery

In the gallery, you can quickly create shortcuts with premade templates created by Apple. To easily find what you want, just search for the specific app or event that you want to automate.

For example, you can search for “upload” to find the shortcut for uploading a photo to Dropbox. 

Adding a shortcut from the gallery to your device

You can tap on the plus sign to add any shortcut to your device.

Note that some shortcuts from the gallery will immediately walk you through configuration options, while others won’t. However, you can always edit your shortcuts later.

Once you’ve added the shortcut, you can tap on “All Shortcuts” to see it in your library.

Viewing All Shortcuts

Edit and configure a shortcut

To edit and configure an existing shortcut, just tap on the three dots in the top right corner of the shortcut. 

Editing a Shortcut

Then, you’ll see each action that the automation performs, with several configurable options.

Configuration options for a Shortcut

This automation starts with a step that retrieves the most recent photos on the device and lets you choose how many photos to get. You can set any number you want here, but we’ll just leave it as 1 photo in our example.

The second step saves the retrieved photo to Dropbox. The first choice for this action lets you choose whether or not the automation will prompt you to specify where the photo should be saved in Dropbox.

If you enable it, then the next two options will be hidden, since these options will let you choose a single static location where every photo will be saved. 

For our example, we’ll leave “Ask where to save” disabled and instead configure a single location where the photos will be saved every time.

Next, for the destination path, you can set a location and filename for every photo. By default, they’ll be saved in the Dropbox root folder, and every file will be named “Workflow.” 

Using dynamic data in your automations

First, we’ll save all of the files uploaded with this shortcut into a dedicated “Shortcuts” folder by typing /Shortcuts/ into the file path. 

Creating a folder for each newly uploaded file

To help distinguish each photo, we’d recommend using a dynamic name. Instead of typing a name, choose “Latest photos” next to “Select variable.”

Selecting "Latest Photos" to access dynamic data

This will let you retrieve unique data from each photo processed by the automation, such as its file name, width, date taken, file size, and a lot more. 

Data retrieved about each photo in Shortcuts

But the file name, which is already selected, will work just fine here. 

the complete file path, including dynamic data

Now, every photo you upload will go into this dedicated folder, and each photo will have a unique name. Using dynamic data like this to name files will make your shortcut automations much better than using static data.

Enabling “Replace Existing Files” will avoid redundant files by replacing old files with new versions when two items share the same name. 

Enabling "Replace Existing Files"

You don’t need to do anything to edit these last two steps, but it’s good to note that after the photo is uploaded to Dropbox, the automation copies the URL for the newly uploaded file.

Adding more steps to your shortcut automation 

If you’d like to add more actions to this shortcut, you can do so by selecting them from the right hand menu. 

Additional steps can be found on the right hand menu

For instance, you might want to send a message containing the newly uploaded photo’s URL to share your pictures with friends or family.

Testing your automation

Once you’ve added and configured all the steps you want in your Shortcut, you can test it by tapping on the “Play” button near the top of the screen.

Pressing the Play button to test a Shortcut automation

This will run the automation from beginning to end, highlighting each step as it starts. Note that you may need to authorize some actions during the testing. 

Steps are highlighted as the test runs

Once the test has concluded, check on your Dropbox account. In our example, it looks like the test was successful. Below, you can see our uploaded photo in the “Shortcuts” folder, with a unique name.

A file uploaded to Dropbox by Shortcuts

Once you’ve finished configuring your shortcut, tap on the arrow in the top left to exit the configuration menu. 

Pressing an arrow to exit the Shortcuts configuration menu

Adding your shortcut to the home screen

To add the shortcut to the home screen, just tap and hold anywhere on your device’s background. Then, select the plus sign that appears in the top left corner. 

Pressing a plus sign to add a Shortcut widget to an iPad or iPhone homescreen

Search for “Shortcuts.”

Searching for "Shortcuts" in the widget menu

You can add a widget with a single shortcut, or a folder with several shortcuts. We’ll just choose the single shortcut for now. 

If you want to change the shortcut in this widget, just tap and hold to edit it. 

Choosing a Shortcut to open with the widget

Once your Shortcut widget is all set, you can run it by just giving it a tap. As it’s running, you’ll see a little progress circle in the corner. 

Running a Shortcut by tapping on the widget

With the widget added to your home screen, you’re all set to use this Shortcut whenever you want.

Creating automations that run on their own in Shortcuts

Next, let’s create an automation that runs whenever certain conditions are met. We won’t need to tap or click anything to make this automation run.

Instead, this automation will instantly start playing a specific song whenever we connect to a specific Bluetooth speaker.

To create an automation that runs on its own, select “Automation” from the menu on the left. 

Choosing "Automation" from the Shortcuts menu

Tap the plus button to create a new automation. 

Adding a new automation

Then, choose a trigger. 

Select an automation trigger

The trigger is the condition(s) that will make your automation run. Note that some automated actions and triggers in Shortcuts will only be available for certain devices, since not all devices have the same hardware, software, or settings.

In the trigger list, you’ll see several options. For instance, we can see time of day, transactions, Wi-Fi and Bluetooth settings, battery levels, and more on our iPad.

Automation trigger options

To trigger this automation, we’ll choose “Bluetooth,” which will enable the automation to run whenever the device connects to a specific Bluetooth accessory.

Choosing a "bluetooth" trigger

Configure your automation trigger

For the configuration options, start by choosing a specific Bluetooth device. The automation will only run when your Apple device connects to that Bluetooth speaker.

Alternatively, you could always select “Any device” to run the automation whenever you connect to any Bluetooth device. However, it’s usually better to choose a more specific trigger. 

Sle

For example, we’ll choose a Soundcore speaker for our automation.

Choosing a specific bluetooth speaker

Next, you can pick whether the automation will run when the Bluetooth speaker is connected or disconnected. Leave it set to “connected.” After all, it wouldn’t make much sense to play music after disconnecting. 

Running the automation when the bluetooth device is connected

Then, you can choose whether the automation will run after confirmation, or run immediately.

Selecting "Run immediately"

If you choose “run after confirmation,” you’ll get a pop-up asking you to confirm the automation before running it. In our example, we’ll set this to “Run immediately,” so it will start without requiring any input from us at all. 

The trigger is all set, so now you can tap “Next” and add an action.

Add an action to your automation

You can either select an action from the list, or search for a specific one. For this automation, choose “Play music” in Apple Music. 

Adding a "play music" action to the automation

Then, select this ‘Music’ variable to assign a specific song to play. 

Selecting the "music" variable

You can choose any song you like. 

Choosing a song to play

You can add more actions to your automations if you’d like, but we’ll stick with this 2-step automation for our example. 

A fully configured bluetooth automation in Shortcuts

Once you’re finished, tap “done.”

Then, give your automation a test by connecting it to a bluetooth speaker.

Our automation instantly starts playing the song once we connect to the device. Perfect!

A song played automatically by the Shortcuts automation

You can hear the AI-generated song we’ve chosen in the video version of this tutorial. 

Take a Shortcut to productivity at home

Shortcuts are a great tool for shaving a few minutes off your daily tasks and automating your personal devices. They’re totally free and just take a moment to set up, so try building your own today.

If you’d like to learn more about automating your devices at home and at work, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
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.

Tutorial
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. 

XRay.Tools

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 xray.tools

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 xray.tools 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 xrayworkflow.com. 

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.

Tutorial
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.

Tutorial
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 “slides.new” in your URL bar or in a Google Search bar to instantly open up a new, blank presentation. 

Using "slides.new" 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:

{{presentationTitle}}

{{shortDescription}}

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 Make.com 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.

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.