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
September 20, 2023
Airtable’s AI Assist Field: Build AI Prompts with Your Airtable Data

Generative AI is not limited to standalone apps. With interest in AI growing every day, tools like ChatGPT are being integrated into all sorts of popular software that you might already use. 

Right now, Airtable is rolling out a brand new field type called “AI Assist” that will let you generate AI prompts that automatically include the data in your base. 

In this post, we’re going to show you how this new AI Assist field works, and how you can sign up to try it out for yourself.

In our demonstration, we’ll start by creating a couple prompts using Airtable’s templates. Then we’ll make one from scratch, so you can see all of the options you’ll have with this field. 

How to sign up for the AI Assist beta

AI assist is a brand new Airtable field type, and it’s still in a closed beta at the time of publication (09/20/23). 

If you’d like to sign up for a chance to join the free beta, just go to https://www.airtable.com/product/ai, and sign into your Airtable account if you’re not signed in already. 

Then, fill out the brief form to submit your request to join the beta. Not all requests will be granted access to the beta. 

Airtable's signup form for the AI assist beta

As Airtable notes in the sign-up form, they’re currently prioritizing accounts that are part of larger workspaces. However, small teams with free plans may still be able to join based on their circumstances, so it’s still worth signing up even if you’re not on an enterprise plan. 

Eventually, we expect the AI Assist field to become a more widely available feature accessible to anyone who’s using Airtable. 

But while you’re waiting, we’ll give you a preview of how it works. You can also check out our video tour at the bottom of the page if you’d like to see a live demonstration. 

How the AI Assist field works

An AI assist field will generate its content by sending an AI prompt to GPT3 or GPT4. The field will then be filled in with the AI response. 

An example of an AI-generated response in the AI assist field

The prompt can either be based on a template provided by Airtable, or written from scratch by the user. 

The AI assist field allows users to start from scratch or a template

However you choose to create your prompt, you’ll always have the option to reference specific fields in your table. 

Referencing Airtable fields in an AI assist template

This allows you to create an AI field that summarizes the contents of several other fields, or an AI field that translates the contents of a specific field. 

Referencing Airtable fields in an AI assist prompt written from scratch

Next, we’ll show you how to create AI Assist fields step by step. 

Using the AI Assist field with prompt templates

First, let’s create an AI assist field using a templated prompt.

In the image below, you can see a simple Airtable base where we’re tracking our latest blogs. It includes a small collection of relevant fields: title, subtitle, blog body, and date posted.

XRay's example Airtable base

Once you’ve been admitted to the AI Assist beta, you can get started by simply adding a new field to your table. Then, choose “AI Assist” as the field type

Add a new field and choose "AI assist"

When you create a new AI Assist field, you’ll have the option to configure the field from scratch or create a field based on a template. 

Start from a template or start from scratch

We’ll start with a template. 

The AI Assist template gallery

When you choose to start from a template, you’ll see a template gallery with several options you can choose from. 

The AI Assist template gallery

The template gallery is divided into a few categories based on use cases: General, Product, Marketing, UX Research, and Recruiting.

All of the templates are available in a single list in the main window of the template gallery. If you select a category on the left, your window will scroll to the relevant part of the list. 

In the “Marketing” category, we can see an option to “Generate a tweet”. To use any AI template, just click on it to get started. 

Configuring an AI Assist template in Airtable: generating a tweet

Once you’ve selected your template, you’ll see several options for configuring your prompt. Each template will have slightly different options, but the general approach will usually be similar. 

Identify the main field the AI should reference

To start, you’ll need to identify the main field that you want to summarize into a tweet. In our example, we’ll select the Blog Body Excerpt, which includes the first 2,000 characters of the full Blog Body. 

This means that for each record, the AI assist field will reference the contents of that record’s “Blog Body Excerpt” field. 

As you’re configuring your prompt, you’ll see an example based on the first record in your base, but the finished AI field will dynamically reference unique content from each record. 

Identify additional fields for the AI to consider

Next, you can include other fields that the AI should reference as it builds the tweet. In our example, we’ll also select the “Title” and “Subtitle” fields. 

Note that as you keep making changes, you can update the preview at any time to see how your changes influence the AI’s output. 

Provide an example of “an ideal tweet”

Under “Provide your own examples”, you can enter an example of an ideal tweet that the AI should attempt to emulate. If you provide an example, the AI will try to compose a new tweet that follows a similar structure and style. 

In our demo, we’ll enter this tweet that we published to our account several weeks ago:

✅😤 Getting frustrated with Asana and Monday? Build your own custom task management system in Airtable. In this XRay tutorial, we'll show you how to start tracking tasks and projects with an Airtable base. Just copy our base to get started. https://youtu.be/djdjIE82Gsc

Provide specific instructions to fine-tune your prompt

Finally, under “Give any other instructions”, you can choose an optional style for the AI to use and provide any other details that you’d like to include in your prompt. 

Currently, there are only three options under the “Style” menu: Friendly, Informative, and Funny. We expect that Airtable will add more options as the beta continues and the tool is updated. For our example, we’ll choose “Funny”. 

In the “Custom Instructions” field, you can enter any instructions or information that you’d like. This is a good place to enter any data that can’t be retrieved from the fields in your table. 

In our example, we’ll provide some basic information about XRay. These details about our company aren’t going to be in any field, so we’ll add them here. 

XRay.Tech (or XRay) is a workflow automation consultancy. Every week, XRay posts a blog about workflow automation using tools like Airtable, Notion, Zapier, Make, and more. XRay's mission is to help knowledge workers create one billion hours of time for meaningful work. 

When we update the preview, we can see that the AI is closely imitating the structure of our example tweet, and is using two emojis to start it off. 

With all of your prompt options configured, click on “Use Template” to close this window and finish setting up your AI Assist field. 

A note on character limits in Airtable’s AI Assist fields

While Airtable doesn’t provide a specific character limit for the AI Assist field prompts, long selections of text often don’t work very well and may produce errors. 

Our full blog referenced in this base is about 16,500 characters. Attempting to summarize this field with AI assist resulted in several errors, so we created the Blog Body Excerpt field to select the first 2,000 characters of the blog instead. 

Hopefully, Airtable will add more info about the required prompt length in the future. For now, we’d recommend sticking with shorter prompts whenever possible for the best results. 

Adjusting settings on the AI assist field

When you close the prompt window, you’ll be taken back to the field details window. Here, you’ll see two tabs: Prompt, and Settings. 

All of the template settings that we covered previously can be found under Prompt, and can be updated at any time. 

Under settings, you’ll see additional technical parameters that you can adjust. 

Choose the AI model 

First, you can choose the AI model that you want to use. Currently, there are two choices: GPT3.5 and GPT4. 

In general, GPT3.5 and 4 are very similar models, but GPT4 is a more advanced language model that is better suited to more creative use cases. You can learn more about all of OpenAI’s language models in their official documentation

Airtable notes that GPT3.5 is a more popular model while GPT4 is more expensive. For now, the AI Assist field doesn’t require any additional charge, but this note may suggest that the feature could be a paid add-on when the beta’s over. We’ll just have to wait and see. 

Using GPT4 will also disable automatic generation. To generate content in an AI Assist field using GPT4, you’ll need to click on the “generate” button. 

In our example, we’ll go with GPT4.

Set the AI’s randomness

Next, you can set a “Randomness” value for this field’s AI responses. “Randomness” is a similar concept to “temperature” and “creativity”, which you may have seen in other AI tools. 

Randomness is set as a number between 0 and 1. The higher the number, the more unpredictable and adventurous the AI will be with its answers. The lower the number, the more straightforward and predictable the answers. 

You can never guarantee total accuracy with an AI language model, but around 0 to 0.25 will help to ensure more reliable answers. 

We want to see some creativity, so we’ll set ours to 0.4. 

In the preview Tweet, we can see that the AI is throwing in a little humor with phrases like “the artist formerly known as Integromat”. 

Enable or disable automatic generation

Finally, you’ll see a toggle to “Generate automatically”. 

If you enable this setting, Airtable will automatically generate its AI response in this field. If you disable the setting, you’ll just have to click a button to generate an answer for each field. 

As we noted earlier, you won’t be able to enable automatic generation if you’ve selected GPT4 as the model. 

Once you’ve configured all of your settings, click on save to commit your changes. 

Generate your AI answer for each field

If you enabled automatic generation, you’ll see AI responses fill in for every record in your table. Note that any records missing data for fields that you referenced in the AI Assist configuration won’t get a response. 

If you’re using GPT4 or if you chose not to enable automatic generation, you’ll need to click on the “Generate” button in the AI assist field to send the prompt and get your response.

After a few seconds, you’ll get an answer in the AI Assist field. GPT4 will usually take a bit longer than GPT3.5. 

Once a response is generated, it will be permanently saved to that record. To get a different response, you’ll need to edit the field’s settings or edit the dependent fields and regenerate the answer. 

Since our template references the blog title, editing the “Title” field will erase the contents of the AI assist field and allow us to regenerate the answer. 

AI Assist templates: translating text

As we noted earlier, different templates have different options. To see an example of those differences, let’s another AI Assist field and take a look at another template. 

Under the “General” section, there’s an option for “Translation”. We’ll choose that, and see the options that come up. 

In the configuration window, there are only three options. We just need to set a field to translate, a language to translate the text to, and provide other instructions if we want. 

We’ll select the Blog Body Excerpt again as the field to translate. Then, we need to identify the language we want to translate it to. 

The “Language to translate into” field will accept any kind of text field: single line text, long text, select fields, etc. However, its data must come from a field in your table. You cannot directly enter the language you want to translate your text into. 

We’ve created a single-select “Translate to:” field in our table with options for “French”, “Spanish”, and “German”. This is the field we’ll use to identify the language we want to translate into. 

You could create a similar field with different options, or simply use a text field and enter whatever language you’d like. 

Finally, you can provide more specific directives under the “Give any other instructions” tab. Here, you may want to indicate that certain terms should not be translated, or that the text should be translated into casual slang rather than professional composition. 

Note that under this “other instructions” tab, there’s no dropdown menu to change the style of the AI’s response like there was with the “generate a Tweet” template. 

With all of your choices configured, you can click on “Use Template” to close the prompt template. 

Under “Settings”, you’ll see all of the same technical options as with any other template. You can change the model, the randomness, and enable automatic generation. 

We’ll save this field, and wait a moment for the automatically generated translation. 

Immediately, we get a translated version of the excerpt in German. If we switch the language in the “Translate to” field to Spanish, we can get another excerpt in Spanish.  

Overall, the “Translate” template is pretty similar to the “Generate a Tweet” template, but there are far fewer options. When you use Airtable’s AI Assist, you’ll need to play around a bit with each template to find out what options you have at your disposal and which settings work best.  

Create an AI Assist field from scratch

Finally, let’s take a look at creating an AI assist field from scratch. 

In our example, we’ll use our prompt to generate a meta description for our blog post. The meta description should be SEO-friendly so we can use it for search engines, and should be under 160 characters. 

To start making an AI assist field with a custom prompt, create a new field in your table and choose “AI Assist”. 

Then, pick “Start from scratch”. 

When you build an AI assist field from scratch, you’ll just see a single field where you can enter any prompt that you’d like. 

You can enter a prompt here in much the same way that would enter a prompt into ChatGPT. The key difference is that you can also insert dynamic data from your Airtable base into the prompt by clicking on the blue plus sign. 

This data works just like dynamic data in Airtable automations. If you choose a field from this menu, it will insert the contents of that field into your prompt for each record. 

Let’s see what that looks like in practice. 

We’ll enter a prompt to create a meta description:

You are a digital marketing expert working for XRay.Tech. XRay is a workflow automation consultancy that helps people create time with no-code and low-code tools. XRay posts a blog every week with tips, tutorials, and news about workflow automation tools.

Write a meta description for the following blog post:

Title: 

Subtitle: 

Blog excerpt: 

The meta description should be SEO friendly and under 160 characters.

Then, we’ll add dynamic data to dynamically provide the title, subtitle, and blog excerpt for each record. 

With our prompt configured, we can click on “Settings” to adjust the same technical parameters that are available for all AI assist fields: model, randomness, and automatic generation. 

With everything configured, we can click on “Create Field” to close the configuration window and check out our new field. 

After we click on “Generate”, we get a pretty decent meta description. But is it actually under 160 characters?

We’ll quickly add a formula field to our table, and use a simple LEN() function to calculate the length of the “Meta Description (SEO)” field. 

The response is actually 176 characters. Turns out that language models can’t reliably do math, or even count very well. 

Confirm AI responses with actionable messages

Inaccurate answers are always a risk with AI. Even if you reduce the randomness to zero, you can’t count on AI to produce completely factual answers, or responses that perfectly meet your parameters. 

This isn’t an issue that’s specific to Airtable’s AI, either. Whenever you’re using AI, it’s generally a good idea to have a human being check the work before publishing the AI-generated text or sending it off to a client. 

A great way to check Airtable records before performing automated actions is with actionable messages. 

With an actionable message, you can send the contents of an Airtable record in a Slack message for review. Then, the recipient can approve or reject the record with a single click, and update the record accordingly. 

You can learn more about actionable messages in this tutorial on the XRay blog. 

Streamline your workflows with Airtable’s AI Assist

AI is making it easier than ever to draft, brainstorm, and refine content. While standalone software like ChatGPT is already extremely useful for a wide range of use cases, integrated tools like Airtable’s AI assist create seamless options for using AI in the apps where we’re already getting work done. 

Sign up for the free beta today and try it out for yourself!

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

Tutorial
September 13, 2023
Exploring Zapier's New Visual Editor

No-code are tools always evolving to give users new features and new capabilities. 

However, important changes aren’t always about adding brand new functionality. Sometimes, a simple change to an app’s visual layout can make a huge difference. 

Recently, there’s been a major update to Zapier’s user interface (UI), which is big news for any no-code builder. 

Today, we’re going to show you all the key changes to Zapier’s automation builder interface. 

We’ll show you how it changes the way you can view and manage your Zaps, and how it enables editing your automations with simple drag-and-drop actions.

Choose between the new Visual Editor or the Classic Editor

When you open up a new Zap, the new UI is immediately apparent. Now, instead of a list of modules, see a flowchart-like UI.

Zapier's new UI when creating a new Zap

However, before going into detail about the new UI, we want to quickly highlight that you can continue to use the old layout if you’d prefer. 

Near the top right corner of the screen, there’s a dropdown menu that’s set to “Visual Editor” by default. 

A dropdown menu allows users to switch back to the classic editor

To revert back to the old familiar Zapier automation builder, click on the menu and select “Classic Editor”. You can switch back and forth between either option at any time. 

Zapier's classic editor

In the future, Zapier may begin to phase out the classic editor, so we’d recommend getting used to the new visual editor soon. 

Ultimately, the visual editor offers several advantages over the classic editor without sacrificing any important features, so it’s not a difficult switch to make. 

Visual editor overview

Let’s take a closer look at the new Visual Editor. 

For simple, linear Zaps, the new editor isn’t necessarily a huge change. However, the visual editor offers a much easier way to view every step within a complicated Zap that includes multiple nested paths. 

For example, let’s open up XRay’s Social Media Scheduler Zap in both the Visual Editor and the Classic Editor to see how both versions of Zapier display all of its steps. 

The visual editor displays automations as a flowchart

Our Social Media Scheduler is an automation that we use to schedule and publish our posts on Twitter, LinkedIn, and Facebook. 

After selecting a platform and marking a post as “Ready to Post” in Airtable, the automation is triggered. Then, based on the platform selected, Zapier will publish the post to Twitter, LinkedIn, or Facebook. Each platform has its own path in the Zap. 

Additionally, there are two more paths within the Facebook path: one for photo posts, and one for links or text posts. 

Viewing actions inside of paths in the Visual Editor

Each step within a path is visible in the visual editor

In the new Visual Editor, you can easily see every path, every action within each path, and even the details of paths nested inside of paths. 

At a glance, you can see that each post will be scheduled to its respective platform, some information will be updated Airtable, and an alert will be sent in Slack. You can get all of this information without having to even click on a single module. 

Viewing paths in the Classic Editor

In comparison, the Classic Editor displays almost no information at all about any actions that live inside of a path. 

When we switch back to the Classic Editor for our Social Media Scheduler, all we see are three steps: the Airtable trigger that launches the Zap, the delay step that waits until the scheduled time, and a path module. 

Path details aren't easily visible in the classic editor

There are no clear details about the actions inside of each path. The only information displayed is how many steps are in each path. There’s no indication at all that the Facebook path includes its own sub-path. 

To see more information about any specific path, you have to click on it to see all the details. When you open a path, it takes up the entire screen, so you can’t see the others. 

Viewing nested paths requires multiple clicks in the classic editor

Ultimately, to get a complete picture of the entire automation in the Classic Editor, you’ll have to click several times on each path, and you’ll only see one path at a time. 

In the Visual Editor, you can see the entire automation in a single flowchart, making it very easy to instantly understand how the automation works.

This is especially useful when you’re building your automations with a team. When a colleague needs to update your automation later on, it will be much easier for them to get the full picture without clicking into each individual path and action.  

Adding actions in the visual editor

Adding actions to a Zap in the visual editor is simple. 

Just click on any of the plus signs you see to add a new action at that point in the Zap.

Add steps in the visual editor by clicking on one of the plus signs

Adding paths

To add a path, just add an action and select “Path” from the menu that pops up. 

Add paths by adding an action and selecting "path"

Once you’ve added a path module, you can add up to 5 paths to that module by clicking on the black plus sign. 

Add paths within a path module by clicking on a black plus sign icon

Then, you can add several actions within each path. If you’d like, you can even add paths within each path. 

Configuring actions

When you add a new action, the configuration window will automatically open up. To configure an existing action, just click on it to pull up the configuration menu. 

The configuration menu in the Visual Editor is almost identical to the menu from the Classic Editor. The key difference is that the configuration menu will open in a panel on the right, which you can drag to resize. 

Configuring steps in the visual editor is the same as the classic editor

You’ll see all the same options that have always been present in Zapier: you can choose the app you want to use along with the specific event you want to automate; you’ll be prompted to sign into the app or choose an existing connection; you can set up the action; and you can run a test once it’s all set.  

Rearranging actions

With the Visual Editor, you can now rearrange actions in Zapier by dragging and dropping them into a different spot in the automation. 

Drag and drop actions to rearrange them

You can move nearly any action to any other place in the automation. However, Zapier will usually warn you if moving the action might cause the action to lose access to necessary data. 

For instance, imagine you have an automation that creates a Google Drive folder, then sends that folder’s URL in a Slack message. 

An automation that creates Google drive folders and sends alerts in Slack

If you try to move the Slack step before the folder creation step, Zapier will give you a warning. 

You can move actions anywhere in a Zap

The step will need to be reconfigured, since the folder URL (or “alternate link”) it uses comes from the folder creation step. 

You'll see warning if you move an action before the step(s) it pulls data from

You’ll also see similar warnings if you try to move actions out of paths when those actions contain data that only lives in that path. 

You can drag actions into different paths

You'll see a warning if you try to move an action out of the path that contains its required data

Adding notes to your Zaps

Finally, let’s take a look at another newly updated feature: notes. 

Notes have been available for a while in Zapier, but they were previously not very easy to find.

Now, they’ve been added to a much more prominent spot in Zapier’s UI. 

With notes, you can add custom detail to each step. Just click on the comment icon next to the name of any step. 

Click on the comment icon to add a note to any step in the Zap

Then, enter any note you’d like. Once you’ve saved it, every note you’ve added to the automation will be visible in this menu whenever you select a note. 

Clicking on one note lets you view all notes for the Zap

In addition to adding notes for each step, you can also provide a note that describes the automation as a whole. In this section, you’ll also see an option to generate the note with AI. 

Click "generate with AI" to get an AI summary of the Zap

AI-generated descriptions appear to use your other notes and the names of each step as the basis for their output. Providing more notes and custom step names should help to improve the AI’s responses here. 

AI descriptions rely on each step's title and notes.

Notes are available in both the Visual Editor and the Classic Editor. Much like the Visual Editor, the newly updated notes are a great feature for anyone who’s building with a team. 

Whoever builds the Zap can explain how it works in their notes. Then, different team members can then maintain and update the Zap more easily by referencing convenient, inline documentation. 

Notes can also be useful as reminders for solo builders. After all, it’s not always easy to remember what each step does in a Zap you built a year ago. 

Ultimately, notes are simple but versatile feature that make it much easier to document your Zaps with helpful detail. 

Build more effectively with Zapier’s latest updates

Tools like Zapier are constantly being updated.Now, with the new Visual Editor, it’s easy for anyone to visualize complicated Zaps with nested paths and understand exactly how they work. 

Plus, with easily accessible notes, you can add key detail to each step to make sure your team stays in the loop. 

If you’re building automations for your team, or just want to keep your own Zaps more organized, open up Zapier and give these new features a shot. 

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

Tutorial
September 6, 2023
How to Automate OpenAI in Make (Formerly Integromat)

AI tools like ChatGPT are an extraordinary resource for streamlining your every day work. 

But if you’re still entering all of your prompts directly into ChatGPT, you’re missing out on some huge time savings. 

AI becomes even faster and more convenient when you start automating all of your commonly used prompts. 

In this post, we’re going to show you how to automate your OpenAI prompts using Make (formerly known as Integromat). 

We’ll demonstrate how to start automating your OpenAI prompts in Make using a simple example that summarizes emails in your Gmail inbox. Once you learn how the OpenAI module works in Make, you’ll be able to connect to any other app that you’d like. 

Let’s get started!

Overview: how to automate OpenAI prompts in Make

First, we’ll give you a brief overview of how to use OpenAI prompts in Make. Then, we’ll walk you through the whole process in detail with an example scenario. 

1. Create a new scenario and add a trigger module. 

2. If you need additional data for your prompt, add search modules as needed. 

3. Add an OpenAI module. Choose “Create a completion” as the event. 

4. Configure your prompt. Include dynamic data retrieved from earlier steps as desired. 

A. Choose a language model. 

B. Add a system message if desired to give the AI general directives.

C. Add a user message containing your specific prompt. 

D. Adjust the model’s creativity with temperature and Top P.

5. Add additional modules to send the AI’s output to other apps. 

What you’ll need to follow along with this tutorial

To follow along with this tutorial, you’ll need accounts in Make and OpenAI. 

Note that sending requests to the OpenAI API will incur a small charge. 

You can see all the details on the API pricing page, but in general, you’re looking at charges of a few cents per request – or less. 

Additionally, every new OpenAI account includes a $5.00 credit for API usage. If you’ve already used up your complementary $5.00, log into the OpenAI API portal, go to “billing overview”, and add a payment method. 

Add a payment method to your OpenAI account

There’s no set monthly fee to use the API; instead you’ll just be charged for your usage each month. 

You’ll also need a free Gmail account if you don’t already have one. 

Our example scenario: AI-generated email summaries

Here’s the full automation that we’ll be building today:

Use labels in Gmail to trigger an AI summary

Whenever we add the “Summarize” label to an email in Gmail, the automation sends the contents of the email to OpenAI and requests a summary. Just for fun, we’ll ask for a sarcastic and snarky summary. Once it’s generated, that summary is emailed back to us.  

Our full automation will create an AI summary for any Gmail email with the "Summarize" label

This scenario we’re working with in this video is just an example to help you get started. As we go, we’ll explain the general purpose of each step, so you can switch out specific apps for different software, or add additional actions to your scenario. 

Our AI summary uses a sassy tone as requested.

However, if this is your first time working with OpenAI and Make, you’ll probably want to follow along step by step to get familiar with all of the options. 

Adding a trigger to gather data for your prompt

To begin, you’ll need to open up Make and create a new scenario.

The first element of any automated scenario is the trigger. The trigger determines when your automation will run.

When you make a new trigger for your AI automation, you need to consider when you want to run your prompt, and what app you want to get data from when you build your prompt. 

These choices will determine which app you use for your trigger, and which specific event you use. 

For our example, we want to run our prompt whenever we get a new email in Gmail with the “summarize” label. That means we’ll be using a “Watch emails” trigger in Gmail. 

But first, we need to create the “Summarize” label in Gmail and apply it to a message so we have some test data to work with. 

Creating test data: add a new “Summarize” label in Gmail

Go to Gmail and open up an email to summarize. Pick an email to use as a test. 

Click on the tag icon in Gmail to create a new label

Click on the tag icon at the top of the email, create a new “Summarize” label, and add it to the message. 

Give your label a name and click "Create"

Now your test data is all set. Let’s go back to the scenario builder in Make. 

Configure your trigger

Select the app you want to use for your trigger. In our case, we’ll use Gmail, and we’ll choose “Watch Emails” as the event. 

Use the "Watch emails" trigger in Gmail to look for new emails in your inbox

Choose your Gmail account, or add a new connection if you haven’t connected Gmail to Make already. Whenever you automate an app using Make, you’ll need to create a connection to authorize Make on your behalf. 

Choose an established connection or create a new one to authorize Make to use Gmail

With Gmail authorized, we can now start configuring the trigger. 

We don’t want the automation to run for every new email - just for emails that have our “Summarize” label.

Gmail creates folders for your custom labels, so we can choose the corresponding folder by clicking on this “Click here to choose folder” button.

Select "Click here to choose folder" to find Gmail's folder for your new label

Select the “Summarize” folder from the list that appears. This will ensure that the automation only processes emails that are in the summarize folder.

select the matching folder to limit your trigger to emails with the appropriate label

As you’re configuring your trigger, make sure that your settings are as specific as possible to avoid having your automation run when you don’t want it to.  

Next, Make provides an option to set the “Filter type”.

Add an optional Gmail filter to further restrict the emails processed by your automation

You could change this to “Gmail filter” if you wanted to enter a query and further limit the emails that Make watches for. However, for our example, we’ll leave it as a “Simple filter”. Limiting the trigger to the “Summarize” folder is enough. 

In the “Criteria” dropdown, you can choose whether the trigger will run for all emails, unread messages only, or read messages only. In our example, we’ll choose “All”

Choose whether to process all emails, read, or unread emails

Finally, you can set a maximum number of results.

Limit your trigger to a maximum number of emails

As Make notes in the warning message at the bottom of the configuration window, setting this number too high could cause apps to time out as they wait for Make to process several results. 

For the sake of easy testing, we’d recommend using a limit of 1, so your scenario will only process one email at a time.  

Testing the trigger

Once your trigger is fully configured, you can click on “OK” to close this window. 

Now you’ll need to test the trigger. Testing the trigger will prompt the scenario to search for data that matches your configured settings. In this case, that means Make will search for an email in your Gmail inbox with the “Summarize” label. You can then use the data from that email to build the rest of your automation. 

To start testing, right click on the module, and select “Choose where to start”. Note that you may also be automatically brought to the “Choose where to start” menu the first time you close the trigger window. 

Test your trigger manually by choosing where to start

Click “Select the first email”. This means that you’ll choose the email you want to use manually, rather than letting Make select one by default. 

Choose "Select the first email"

Then, choose an email from the list that appears. You should see every email from your inbox with the “Summarize” label, which may only be one email if you’ve just created the label. 

Select an email from the list that appears

Click OK to confirm your selection and close this window. 

Then, click “run once” in the bottom left to run your trigger module. 

Click "Run once" to run your test.

After the test runs, you should see a number over your trigger module indicating how many bundles of data it retrieved. A “bundle” refers to whatever object the module processed. In this case, each bundle is an email in Gmail, but with other triggers, these could be rows in Google Sheets, products in Shopify, messages in Slack, etc. 

The number over the trigger module indicates how many bundles of data it retrieved

Click on the number to see more info about the data, and confirm that the trigger processed the right email. 

Click on the bundle number to view details about the data retrieved

If everything looks good, you can start adding automated actions to our scenario. If you weren’t able to find the email you wanted, make sure you applied the correct label and chose that same label as the folder in your trigger. 

Adding optional searches to gather more data for your AI prompt

With this Gmail trigger module in place, we have all the data we need for our example scenario.

To build our prompt, we just need the email, and some other directions that we’ll enter directly into the OpenAI module. 

However, if you need any additional data to inform your own custom prompt, you can add steps to search for that data now.

For example, you might want to look up the email’s sender in your CRM or in an Airtable database. 

Just add a new module, choose the app you want to search in, and select an appropriate search action to find the data you want to include in your prompt. 

Add search steps to find additional data if needed

However, since we have all the data we need for our example, we’ll continue on and add the OpenAI prompt. 

Send an automated prompt to OpenAI

Now, we’ll build the part of our scenario that actually sends a prompt to OpenAI. 

Add a new module, and search for “OpenAI”. In Make, the OpenAI module is currently named “OpenAI (ChatGPT, Whisper, DALL-E)”.

Add a new module and search for "OpenAI"

For the action, choose “Create a Completion”. This action will allow the scenario to send a prompt to OpenAI and get the AI’s response.

Choose "Create a completion" as the action

Choose your OpenAI account or connect a new one to Make. 

Choose your OpenAI account or sign in to create a new connection

OpenAI API pricing

Just as a reminder, you will need to have a payment method on file to use OpenAI’s API, and each request – including tests in Make – will incur a charge. However, you may still have a $5.00 API credit from opening a new OpenAI account. 

GPT3.5 Turbo costs less than a hundredth of a cent per 1k tokens

Based on OpenAI’s current pricing, each request in this scenario should only incur a charge of a few cents or less, if you use all the same settings we do. 

Configuring your OpenAI prompt in Make

Once you’ve chosen your account, you can start configuring the module. 

First, you’ll need to choose the language model you want OpenAI to use. Different models have different pricing, different speeds, different amounts of context they can use, and other unique aspects to consider

You can learn more about the details of each model in OpenAI’s API docs

For this tutorial, we’d recommend using GPT3.5 turbo 16k. This model charges very low rates, and features a high amount of context, so it’s good for building and testing an automation summarizing long text. 

GPT4 is generally a better model, of course, but it’s also about 10 times more expensive, so we’ll stick with GPT3.5 turbo. 

Choose the language model to use in your prompt

Define the AI’s identity with a System message

Next, you can tell the AI how to behave and give it a prompt to complete. Click on “Add item” under “Messages”. 

Add an items to your message to define the AI's identity and send a prompt

The first item will be a “System” message that instructs the AI how it should behave in general. 

This is not strictly necessary. If you don’t provide a system message, the AI will default to the identity of a “helpful assistant”. But if you want a more specific style or tone, you can define it with a system message first.

Choose “System” as the role. 

Add a system message to set the AI's identity, tone, and style

In the “Message Content” field, describe how the AI should respond to requests and what identity to assume. You can enter anything you’d like here.  

For instance, we’ll say “You are a sassy assistant. You respond accurately and helpfully to requests, but your tone is sarcastic, flippant, and playful.” There’s no harm in giving our AI answers a little more personality. 

Describe how you want the AI to behave in the "Message Content" field of your system message

Craft your prompt with a User message

After the optional system message, you can provide your specific prompt.

Add another item, and set the “Role” dropdown to “User”. In other words, we want the message to take the role of a user entering a prompt into ChatGPT.

Add a "User" message to send your prompt

In “message content”, you can enter your full prompt. Be sure to include data from your trigger or optional searches as applicable.

Add your prompt to the "Message Content" field, and include dynamic data from the trigger.

In our example, we’ll enter a prompt asking to summarize an email. Then, we’ll provide key pieces of data from the email that triggered the automation: the subject line, the sender name and email, and the body, which is called “text content” in Make. 

Adjust your OpenAI automation with advanced settings

If you click on “Show advanced settings”, you’ll see a few more options for configuring your OpenAI prompt. 

Click "Show advanced settings" to see more options

First, you can limit the length of the response by defining a maximum number of tokens that it should use. Note that 1,000 tokens are equal to about 750 words.

Set a maximum number of tokens to use in the completion

NOTE: While we were preparing this tutorial, we noticed that this field may not work exactly as described. Even though the default is listed as 16 tokens, the automation still provided an answer consisting of over 200 tokens. It’s possible that “16” here means 16,000, as 16 tokens would be a very short response.

Hopefully, Make will update or clarify this option soon. 

Dial in the AI’s creativity with Temperature and Top P

With “Temperature” and “Top P”, you can set how creative the AI will be with its answers on a scale of 0 to 1. A lower number in either of these settings will result in more factual and less creative answers. 

They both default to 1, so you may want to lower these to around 0.7 if you want to get somewhat more accurate answers. 

Set the AI's creativity with Top P and Temperature on a scale of 0 to 1.

Just note that even if you set these to 0, there’s never a guarantee that AI will be 100% accurate. Hallucinations are just a risk we take with this tech. 

Choose how many responses are generated

In the “Number” field, we can determine how many answers the AI will provide to our response. This defaults to 1, but you can raise this number if you want it to make multiple attempts. 

Choose how many responses the AI generates

With ‘Echo”, you can choose whether or not the AI will echo back the prompt that you entered at the start of its response. We’ll choose “no”. 

Finally, you can add additional custom parameters under “Other Input Parameters” if you’d like, but this is a bit more advanced and won’t be necessary for most prompts. 

Once your message is ready, click OK, and test the full scenario. Just as a reminder, testing will consume operations in your Make account, and will incur small charges from OpenAI’s API

Testing your OpenAI prompt

Repeat the same testing process as before. Right click on the trigger module, select “Choose where to start”, and click “Select the first email”. 

Test the AI prompt using the same manual process as before.

Pick your email, click OK, then click “Run once”. You should see a number over your OpenAI module.

Click the number over the OpenAI module to see its answer.

Click on it to see the message that OpenAI generated in response to your prompt. You’ll have to dig into a couple of menus first - you can find the output under “Choices”, “1”, and “message”. 

Find the answer under Choices - 1 - Message - Content

Above, you can see the response we got. Definitely a bit of sass, just like we asked for, but still a pretty good summary. 

Send OpenAI’s response to any other app

Your “Completion” action should have correctly generated a response to your prompt. Now, you can send that response anywhere you’d like. 

You can put it in a Slack message, save it to an Airtable database or Google Sheets, add it to a Notion page - whatever you want. 

For our example, we want to email the AI’s output back to the original recipient of the summarized email. 

So we’ll add a new module, and search for Gmail. Then, we’ll choose “Send an email” as the action. 

In the “To” field, we could either enter a static email address or choose to send the email back to the recipient of the original email. 

For the subject line, we’ll enter: “Your AI summary of: [original email subject line]”. We’ll use data from the trigger to dynamically generate the correct subject line from the original email. 

Finally, we can compose a message. 

“Here is your AI-generated summary of the "[subject]" email:”

We’ll replace [subject] with the actual subject retrieved in the trigger. Then, after this brief message, we’ll add the AI’s output. You can find that under Choices > Message > Content. 

Insert the AI's answer as dynamic data in subsequent steps

Once you’re finished configuring the module, click OK to close it. 

Test one more time, again using the same manual process as before. Now, when we check our inbox, we can see the message complete with our sassy AI summary. 

Test the automation one more time

Everything looks good, so we’ll go back to Make, save the automation, and turn it on so I can start using it. 

Save the automation and turn it on to finish.

Create consistent, reliable workflows with AI and automation

For many of us, AI is rapidly becoming an integral part of our daily workflows. Like with any other app we rely on every day, automation can make our workflows faster, more consistent, and more reliable.

Build on this quick example that we’ve shown you today, and explore what you can do when you combine tools like Make and ChatGPT. 

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

Tutorial
August 30, 2023
Create Actionable Slack Messages in Airtable

Airtable has recently added a new feature to give you even more direct control over your automations.

With the new actionable Slack messages in Airtable , you can add seamless human checkpoints to approve or reject automations before they run critical actions. 

In this post, we’ll show you how to use actionable messages in Airtable automations step by step. 

We’ll explain what actionable messages are, how to add them to your Airtable automations, and demonstrate an example automation that you might build with actionable messages. 

What is an actionable message in Slack and Airtable?

First, let’s cover the basics of actionable messages. An actionable message is an automated message sent in Slack and configured in an Airtable automation. 

Unlike typical Slack messages that you might create with your Airtable automations, actionable messages include customizable buttons. 

actionable messages let you update records in Airtable by clicking on a button in Slack

When the message recipient clicks on one of the buttons, a record in Airtable can be instantly updated based on your specifications. 

Actionable messages indicate when records are updated  in Airtable

How to create an actionable Slack message in Airtable

Now let’s go over the entire process of creating an actionable message. We’ll start with a brief overview, then explain each step in more detail. 

1. Create a new automation in your Airtable base. Choose any trigger that you’d like. 

2. Add an action, and scroll down to “Slack”. 

3. Choose “Send an actionable message”. 

4. Configure your actionable message. 

A. Provide a title and a message.

B. Choose the table and record you want to update. 

C. Create one or more buttons to update the chosen record. 

D. Choose the fields you want to update, and the values to update them to. 

5. Test your actionable message. Currently, generating a preview is not possible. 

6. Add any additional steps to your automation that you’d like. 

Read on for more specific information. 

Our example automation: approving automated follow-up emails 

To illustrate actionable messages in more detail, we’ll show you each step of the process with an example Airtable automation. 

In this automation, we’ll send an email to any lead that hasn’t responded in a week or more. By adding an actionable Slack message, we can enable one-click approval for every email before it gets sent. 

An overview of our example automation

This way, we can ensure that the lead wasn’t contacted through a channel that isn’t reflected in our Airtable base. 

Ideal use cases for actionable messages

You can follow along with our example, or choose something that fits your needs better. 

However, when you’re planning an automation with an actionable message, you’ll generally want to create approval flows like the one we’re demonstrating in this post. 

Actionable messages can technically update any field in Airtable, but they work best with single- or multi-select fields, linked records, and checkboxes - essentially, any field with a limited number of options. 

You can’t enter text in response to an actionable message. Instead, you’ll have to update the field to use the same value every time, which is why fields with limited options are the best choice. 

In other words, you can easily configure a field to be marked “Approved” or “Ready”, but you’ll have a hard time entering a new email address or custom notes. 

Create a new automation in Airtable and choose a trigger

To get started, create a new automation and choose the trigger you’d like to use. 

Click "create automation" to create a new automation

In our example, we’ll choose “When a new record enters a view”. We’ll configure the trigger to watch our “No Response - Initial Outreach” view. 

Choose any trigger, like "When a record enters a view"

This view has a filter so that it only shows leads who haven’t responded to our outreach in one week or more. 

The view that triggers our automation only includes leads who haven't responded to initial outreach

Each record that enters this view will be the record that our actionable message updates. In most cases, you’ll probably want to retrieve the record you want to update in your trigger. Otherwise, you’ll need to find it with a search step. 

Once your trigger is ready, give it a quick test. 

Add an actionable Slack message

Once you’ve tested your trigger, add a new action to your automation. Scroll down to Slack and choose “Send an actionable message”. 

Choose "send an actionable message" under "Slack"

Select your Slack account, or connect a new one. Then, choose the user or channel you want to send the message to. 

Sign into your Slack account and choose a recipient

Configure your title and message

Next, you’ll need to provide a title for your message. Unlike typical messages, actionable messages begin with a large, bold title. This is a good place to add some key context for your message and the automation. 

We’ll title ours “Automatic Lead Follow-up Approval”. 

Add a title to your actionable message

Then, you need to compose a message. This part is like any other Slack message that you might send with Airtable. You can enter any combination of static and dynamic text that you want. 

We’d recommend providing some useful information so the recipient knows what the message is about and what they’re expected to do. 

Configure the main message like any other Slack message in Airtable

In our message, we’ll include the name and email from the record so that the recipient knows who the lead is without needing to open Airtable. 

Configure the table and record to update

Now, you can set up the “actionable” part of the actionable message. 

Choose the table that you want to update with your message’s buttons. We’ll choose our “Leads” table.

Then, provide the ID of the specific record that the buttons should update. In most cases, this will likely be the ID of the record that triggered the automation to run, or the record that you found in an earlier search step. 

Choose the record that the actionable message should update

We’ll choose the ID of the record that triggered our automation. 

Adding a button to your actionable message. 

Next, you can add the buttons that will update your chosen record when they’re clicked. 

As we noted earlier, these buttons can update any field, but they’ll work best when attached to fields with limited, pre-defined options: single-select fields, multi-select fields, linked records, or checkboxes. 

Click “Add button” to create your first button. Then, configure the button by clicking on the pencil icon. 

Add buttons to your message and customize it by clicking on the pencil icon

Choose an appearance and a label for your button. Airtable provides three appearance presets: Default, Primary, and Danger. 

We’ll call our button “Send Follow-up” and select the green “Primary” option. 

Next, you can choose the field that the button should update. We’ll choose the “Send Follow-up?” field, which is a single-select that includes options like “Send” and “Don’t Send”. 

Then, choose the value that the field should be updated to when this button is clicked. You’ll be able to set each button in your message to update the field to a different value. 

Note: if you leave the value blank, then clicking on the button will clear any value that’s already in the field. 

Choose the field that each button should update and the value the field should be updated to

Since this button is called “Send Follow-up”, we’ll choose the matching “Send” value. Now, whenever this button is clicked in Slack, the related Airtable record will have its “Send Follow-up?” field to “Send”. 

When your button is configured, click outside of the modal to close it. 

Adding additional buttons

Follow the same process to create additional buttons. Additional buttons should update your field to different values. 

We’ll add another button to our example that updates the “Send Follow-up?” field to “Don’t Send”. 

Add multiple buttons to your message for multiple options

Testing your actionable message

Once all of your buttons are added and configured, you can give the step a test. Note that you won’t be able to use the “generate preview” feature; instead, you’ll have to run a live test that will actually create and send a message. 

Click on “Test action”. 

Test your actionable message by clicking on "Test Action"

Then, check Slack. You should see your message there. Click on any of the buttons, then wait a moment. 

The Slack message will indicate when the Airtable record is updated

Slack will then notify you once Airtable has been updated. 

The Slack message will indicate when the

Return to Airtable to confirm that the record was updated correctly. In our example, the test record was correctly updated to “Send” after we clicked on the “Send follow-up” button. 

Check your Airtable base to see the updated record

NOTE: You should run a test for each button in your actionable message. Between each test, be sure to reset the record to its original state, or create a new test record. 

That covers everything you need to do to send an actionable message. Now, let’s see how the actionable message works in the context of a full workflow with a bit of conditional logic

Adding conditional logic to your automation

To make full use of an actionable message, you’ll need to add further steps that perform different actions based on which button was clicked. You could also set up subsequent actions in separate automations. 

Right now, we’ll quickly demonstrate an example of using conditional logic to perform different actions based on which button was clicked, and which value the associated field now contains. 

If the “Send Follow-up?” field is set to “Send”, then our automation will send an email followup to the lead and update their status in Airtable. 

Otherwise, the automation will not continue at all. 

Use a search step to retrieve the updated record

Before we can add a “conditional logic” step to evaluate the record, we need to make sure we have an up to date version of the record. 

When it retrieved the record in the trigger, Airtable logged all of the record’s attributes at that time. 

So if we refer to the record from the trigger, we’ll likely have out of date information, since the record was just updated by our actionable message.

When you’re using actionable messages, bear in mind that your data will change while the automation is running, so you may need to use a search step like this to keep everything up to date. 

To find the latest version of our record, we can just do a quick search in the leads table for the initial record’s ID (selected as dynamic data). This is a unique ID that will only apply to the record in question, so the search will always return the correct record. 

Before adding more steps to your automation, add a search step to retrieve the updated record

Adding a “conditional logic” step

Once you’ve retrieved an updated version of the record in question, you can add conditional logic to the automation.  

Add a conditional logic step to perform different actions based on your response

Then, set the condition that you want to check for. In our example, we want to check the newly retrieved record’s “Send follow-up?” field.

If it’s set to “Send”, then the automation will send an email. Otherwise, the automation will stop. So we’ll configure our condition accordingly. 

Configure your condition

Next, test your condition. After you test, Airtable will tell you whether or not the automation would have continued based on your chosen record. 

Test your condition after configuring it

Our follow-up field was updated to “Send” by the actionable message, so after we test the condition, our record passes.

Adding actions in the conditional group

Once your condition is set up, you can add any actions you’d like. We’ll add two actions: one that sends an email to the lead, and one that updates the record in Airtable to indicate that a follow-up message was sent. 

Add actions to your conditional group

Testing your full automation

Once you’ve added every action that you want to your automation, give your full automation a test with a new record (or a record that’s reset to the right values). 

Click on “Test automation” and choose a record. 

Then, respond to the message in Slack. 

You should see your Airtable record updated accordingly. You’ll probably want to run a full test for each button in your automation. 

Once you’re finished testing, turn your automation on to start using it. 

Easily adding human checkpoints to your Airtable automations with actionable Slack messages

Adding human checkpoints is a great way to ensure accuracy with automations, and to make sure they don’t run when they shouldn’t, and actionable Slack messages are a quick and easy way to add those human checkpoints to your Airtable automations.

If you’d like to learn more about using low-code tools like Airtable, Notion, Zapier, and Make, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
August 23, 2023
How to Create and Automate a Form View in Airtable

Airtable forms are a great way to collect data for your base from anyone on the web. Plus, once you have a form set up, you can use it as the basis for helpful, time-saving automations. 

In this tutorial, we’re going to explain how form views work, and we’ll show you how to set one up step by step. 

Then, we’ll show you how you can use form views to trigger automations, and we’ll give you a peek at how you can organize your forms and other resources using XRay Workflow.

Let’s get started!

What is a form view in Airtable?

First, let’s cover the basics of form views in Airtable. 

A form view is a unique view for your data in Airtable. Once you’ve created a form view, a functional form can be shared and accessed with a URL. 

When the form is filled out, it adds a record to its associated table. 

Any form view can be configured with several useful options. You can set certain fields to “required”, you can hide extraneous fields, provide custom descriptions and help text and a whole lot more.

In the next sections of this blog post, we’ll explain all of your options in detail. But first, let’s take a look at getting started and creating a form view. 

How to add a form view to your table in Airtable

Setting up a form view is very simple. 

1. First, go into Airtable and open up a table you want to add a form view to. 

2. Then, in the bottom left of the interface, open up the “Create…” menu. Here, you can add any type of view that you’d like to your table.

3. Click on “Form” to add a new form view to this table. 

4. Give your form a unique name if you want. Then, click “Create new view”.

You’ll then see a new view where all of your table’s fields are arranged as a form. In these screenshots, we’ve added a form view to our “Contacts” table. 

When you select the form view in your table, you’ll be able to configure and edit your form through a simple form builder. However, you won’t be able to submit data from the builder. 

To submit data, you can click on “Open form” at any time to access your published form. 

Open your form and test it out

Try filling out your form to see how it works in action. After you click submit, a new record will be created in your base. 

When you return to your Airtable base and select a grid view, you should see the record that you just entered through the form. 

With just a couple of clicks, you can create a fully functional form in Airtable, but that’s just scratching the surface of what you can build. 

Next, let’s return to the form builder and go through all of your options for customizing and configuring your survey. 

Add a logo or cover image to your form

At the top of the form view, you can add a custom cover image and logo. 

When you click on “Add a cover image”, you’ll see a modal pop up with several options. 

You can upload an image from your computer, you can search the web to find an image, or you can retrieve a photo from several different apps - Google Drive, Facebook, Dropbox and more are all included. 

In our example, we’ll upload a Pexels stock photo from our computer. 

Once you’ve selected your image, you can crop or rotate the picture to your liking. Then, click upload to apply the cover to your form. 

To add a logo to the form, click on “Add a logo”. Just like with the cover image, a modal will pop up giving you the choice to upload a file or find a picture from a different app. 

We’ll add XRay’s logo to the form. 

Change the form’s title and add a description

To change your form’s title, just click on the title and enter any text you’d like. We’ll call our form “New Contact Form”. 

Note that changing the name of your form here will also update the name of the form view. 

To add a description to the form, just click on “Add a description to this form” and enter any text you’d like. 

Note that updating your form’s description will not update the view’s description. 

So while the form name and view name are linked, the form description and view description are separate. 

Configuring the fields in your form

Now let’s cover your options for configuring each field. Each individual field can be customized with a unique name, help text, conditional logic settings, and more. 

Changing question names and adding help text

Every question defaults to using the name from its associated field. If you’d like to customize the text, just click on the name and enter whatever you’d like. 

Editing the name of a question in your form will not change the title of the related field in your other views. As you can see below, even after we’ve changed the title of “First Name” to “What is your first name?”, the field is still called “First name” in the grid view. 

Similarly, you can add help text by clicking on the field directly below the question and entering any text you’d like. 

The help text will appear in the form, but will not appear in any other view or in the field’s description. 

Make certain fields “required”

Any field in your Airtable form can be set to required by simply activating the toggle that says “required” when you select the field in the form builder. 

When a field is marked as “required”, users will have to provide a response to that question before they’re able to submit the form. You can set as many as fields to “required” as you’d like. 

Add conditional logic to choose when fields are displayed

With conditional logic, you can ensure that a field is only shown to the user when certain conditions are met. Airtable allows you to configure custom conditions based on the user’s response to other questions. 

For instance, we could set our “Company Name” form to only display when the user has selected either “Client” or “Partner” in response to the “Contact Type” question. 

To set conditional logic for a field, select the field in the form builder and enable “Show field only when conditions are met”.

After you enable conditional logic on the field, Airtable will automatically create a blank condition that you can configure. 

First, you need to choose a field that will be assessed for the condition. By default, this blank condition will choose the field immediately before your selected field. You can choose any field that comes before your chosen field in the form. If you need to rearrange the order of your fields, just drag and drop to move them around. 

Then, fill out the rest of the condition. You can set the operator to is, is not, is any of, is none of, is empty, or is not empty. 

In our example, we’ll set the condition for “Company Name” to: 

Contact Type is any of… Client, Partner. 


After setting a condition, open your form to test it out. In our example, we can see that “Company Name” isn’t shown until we select “Client” or “Partner” for company type. 

When we select “Internal Team” instead, the “Company Name” field is hidden again. 

Users will be unable to submit answers to hidden fields. Additionally, if a conditionally hidden field is set to “required”, users will be able to submit their response without providing an answer for the hidden and required field. 

Unique options for specific field types

It’s important to note that specific field types in Airtable will often have unique configuration options in the form view. 

For instance, you’ll see a couple of unique options for multi-select fields. You can choose to display the options as a dropdown or a list, and you can limit the choices to specific options. 

For instance, in our multi-select “Locations” field, we can exclude any options we’d like. We’ll take out “Denver” and “Other”. 

When you exclude an option, users won’t see these choices when they open the form and won’t be able to select them. 

As you’re building your form, always check for additional options with each field type.

Add and remove fields from your Airtable form

Any field in your table can be added to or removed from a Form View.

To remove a field from the form, you can either click on the visibility toggle or simply drag the field out of the form section and drop it into the “fields” panel to the left. 

Removing a field from the form will not remove it from your table, or hide it in any other views. 

Fields can be added to the form by dragging and dropping or clicking on the visibility toggle. 

Note that any fields added to your table after the form is created default to “removed” in that form. 

For example, we’ll add a “Date” field to our table using our main grid view. 

When we return to our form view, “Date” is in the “fields” column, and is not included in the form. We can just drag and drop it to include it in our form. 

Configuring general settings for your Airtable form

That covers all of your options for each individual field. Now, let’s review some of the general settings that you’ll find at the bottom of the form builder. 

Your first choice is “See who submitted a response”. Enabling this will let you see who submitted each response, with the user identified by their Airtable account. As such, enabling this setting will require users to sign in with Airtable to use the form. 

When “See who submitted” is enabled, you’ll also have the choice to allow users to request a copy of their responses. 

Hide Airtable branding and set up a URL redirect

Next, you'll have an option to “Show Airtable branding”. If you’re using a free Airtable account, this choice cannot be disabled, and Airtable branding will appear on all of your forms. If you have a pro account, you can disable this option to remove Airtable branding. 

Below the branding toggle, you’ll see a choice to “Redirect to URL after the form is submitted”. If you enable this choice, a window will pop up where you can provide a URL to redirect to. When users complete the form, they’ll be taken instantly to this URL. 

Enabling a URL redirect will automatically disable the remaining options found under “After the form is submitted”. 

Configure what happens after an Airtable form is submitted

At the bottom of the form builder, Airtable provides several options for controlling what happens after a form is submitted. 

Ensure that the URL redirect options is disabled before exploring these options. 

First, you have a choice to customize the message displayed after the form is submitted. By default, this message will say “Thank you for submitting the form!”. Just enter any text you’d like into that field to edit it. 

Next, you’ll see a toggle to “Show a ‘Submit another response’ button”. This will give users the choice to open up a fresh form by clicking on the button.

You can also enable “show a new blank form after 5 seconds” to give users an easy way to submit multiple responses. 

Finally, you can choose whether or not you want to receive email alerts for new form submissions. This email option is specific to every collaborator on your base. Enabling the option for yourself will not enable it for anyone else in your workspace. 

How to trigger Airtable automations with forms

Once your form is set up, it can also be used to trigger automations in Airtable in just a few steps. 

For example, you might want to send a Slack alert to a relevant channel whenever a new contact is added with the form. 

Create a new automation and choose a trigger

To start building an automation in Airtable, just select the “Automations” tab. 

If you haven’t added any automations to this base yet, Airtable will instantly create a new automation and prompt you to select a trigger.

If you already have one or more automations in the base, you’ll need to click on “Create automation” to add a new one. 

Set the trigger event that will prompt your automation to run. To connect an automation to a form, choose “When a form is submitted”. 

Then, select the table and form you want to use.

Give the trigger a test. You’ll need to have at least one record already in the table for the test to work.  

You should be able to retrieve a record with the test. If not, just make sure you’ve chosen the right table and form, and ensure there is at least one record in the table. 

Add an action to your automation

Next, add an action to your automation. 

For our example, we’ll choose Slack, and select “Send message”. 

When you build Airtable automations that connect to other apps, like Slack, you’ll have to sign in to that app and authorize Airtable to perform automatic actions with it. 

Next, configure your action with all required information. To send a message in Slack, we need to select the channel or user we want to send the message to. We’ll send this to our dedicated “Tutorials” channel. 

Then, we can compose the automated message.

Using static and dynamic data in Airtable automations

In any text field in AIrtable automations, you can use a mix of static text and dynamic data retrieved from the Airtable record that triggered the automation to run. 

Static text will be the same every time the automation runs. Dynamic data will reflect the record that triggered the automation to run. 

Static text can be entered directly, so we’ll just enter a simple message that reads: A new contact was created: 

 

Next, let's provide some details for the new contact using actual data from Airtable. To find and enter dynamic data in an Airtable automation, just click on the blue plus sign in the relevant field. 

We’ll add in the contact’s full name and the record URL. 

All of these pieces of data will reflect the record that triggered the automation. So if the contact’s name is “Mike Johnson”, it will say “Mike Johnson” for full name. If it’s John Smith, the Slack message will say “John Smith”. 

Note that as we’re composing this message, we’re also using some markdown notation. Airtable offers a small explanation and cheatsheet for markdown notation right above the “Message” window. 

We’ll use markdown to make some text bold by enclosing it in asterisks, and we’ll create a hyperlink to the record URL that reads “Check out the record here”. This markdown formatting will apply to dynamic data and static text alike.

You can see our fully composed message complete with markdown formatting below:

Now that the message is all set, we just need to finish configuring a few additional settings. 

Configuring and testing your automated action

Automated actions in Airtable will typically include several optional and required settings in addition to the main message or other item you’re creating. 

For instance, with a Slack message, we can provide a customized bot name and icon to give the message a little more personality. 

We’ll call our bot “New Contacts Callum”, and we’ll set the icon to the “:card_index:” emoji. 

We’ll also set “unfurl links” to “no”. Callum doesn’t need to take up that much space in our feed. 

Once your automated action is fully configured, it’s time to give it a test.

 

Start by clicking on “Generate a preview”. This will show you a preview of the message without actually performing it. In other words, generating a preview of a Slack message will show us what the message looks like, but won’t actually send a message.

If the preview looks good, you can move on to performing a full test. Click on “Test automation.” This will actually run the automation with your chosen record

That’s why we’re sending this to the tutorials channel. We don’t want Callum here blowing up one of our shared client channels. 

Once you run the test, you should see your Slack message in the specified channel. 

Note that in our Slack message, our markdown formatting has correctly produced bold text for the contact’s name, and a hyperlink for the URL. 

Activating and organizing your automation

To wrap things up with your Airtable automation, give your automation a name, turn it on, and copy the automation’s URL.

Then, paste that link into the form view description. 

Keeping automation URLs in view descriptions will help you keep track of what automations your views are connected to. 

Embed Airtable form views in XRay Workflow

As you keep using Airtable, you’ll quickly find that you have lots of forms, lists, kanban boards, and other views that you need to keep straight. 

If you’re struggling to keep Airtable and your other apps organized, you should give XRay Workflow a shot. 

With XRay Workflow, you can build your own personal home screen for all the web apps, and other resources you use every day at work. 

It’s also a great tool for no-code freelancers who need to deliver workflows to clients. Instead of sharing a long list of links in an easily lost email or Slack message, you can compile everything they need onto one board and just share one link. 

For instance, in this board, you can view resources we’ve compiled for this tutorial.

In the “Live Survey & Shared Views” stitch, you can fill out the form we created and check the grid view to see submissions. 

You could use a similar setup to share an onboarding workflow with your client, creating pins where your client can add a new employee, view onboarding tasks, and more. 

Just go to www.xrayworkflow.com to download the app and try it for free today, while we’re still in beta.

Quickly gather data for your Airtable base with a form

Airtable forms are an easy, convenient way to let anyone submit data to your base. Just add a form view to your table, configure your settings, and copy the link to share your form and gather data from anyone on the web. 

Then, use tools like Airtable automation and XRay Workflow to do even more with the forms that you’ve built. 

If you’d like to learn more about organizing and automating your workflows with no-code tools like Airtable, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
August 16, 2023
Create a Custom Task Management System in Airtable

Airtable is an amazingly versatile tool for organizing and automating your data. However, it’s not limited to just creating basic spreadsheets. 

With Airtable, you can build nearly any system that you want. And if you’re not satisfied with off-the-shelf task management apps, like Monday.com or Asana, you may want to build your own in Airtable.

In this post, we’re going to show you how to start tracking tasks and projects with a simple Airtable base.  

We’ll  walk you through setting up an Airtable base for task management step by step. Then, we’ll show you some helpful data views you can add to your task management base to track your team’s progress. 

Next, we’ll take a look at building interfaces that your team can use to add new tasks and update their status without needing to edit the database itself. 

Finally, we’ll demonstrate a simple automation that you can add to your base to create automatic alerts for urgent, incomplete tasks. 

Let’s get started!

Overview: what the finished base looks like

First, let’s take a quick look at the finished base. After a brief overview, we’ll walk through each component in more detail so you can set it up for yourself. 

Note that the base that we’re going to show you today is just an example of the kind of setup you might use for tracking tasks in Airtable. 

Ideally, it should be a great starting point, but we’d encourage you to customize the fields, views, and interfaces to match you and your team’s preferences. 

Customize your task management base to your liking

One of the key advantages of using Airtable for task management instead of an out-of-the-box solution like Asana or Monday is that you have precise control over the format of your interface as well as any workflow optimizations you want to include.

You can make the system you want to use, instead of being stuck with someone else’s design.

With this article, we just want to give you a solid jumping-off point, and show you some of the key options you have for customizing your base. 

Additionally, if you’re not familiar with basic Airtable functionality, like creating and modifying fields, then you should check out our Airtable beginner’s guide before following this tutorial.

Basic setup for the “Tasks” table

With all of that in mind, let’s go through the full base that we’ve set up here. 

In the grid view of our “Tasks” table, you can see all of the fields and every task that we’ve created. As you can see, every key piece of information is covered here: Task summary, project, due date and other attributes like that. 

The project field is actually a linked record, which refers to our “Projects” table in the same base. 

On the left of the main “Tasks” table, you can see a list with a few different views. 

Find all of your Airtable views in the table's lefthand panel

Every view is based on the same data, but each one has different filters and sorts to make the most relevant information visible easily. 

The “View all tasks” view is a basic grid view that has all of the information you need for your tasks, but it’s a lot of data to look at all at once. To make it a little easier to get some key takeaways at a glance, we’ve added a few custom views. 

The timeline will give you a high-level overview of your team’s progress.

The “urgent tasks” view lets you see any outstanding to-dos approaching their due date. 

When you’re accessing your base under the “Data” tab in Airtable, you can manage your entire tasks database. This is where you’ll be able to edit or update any fields, but it’s probably not what you want to share with your whole team. 

Instead, we’ll show you how to create a simple interface where your team can add new tasks with a form, and update each task’s status on a Kanban board. 

To start automating these task management workflows, we’ve configured a quick automation that just sends an email alert whenever a task enters the “urgent tasks” view that we highlighted earlier.  At the end of this tutorial, we’ll also show you how to set up that automation. 

If you’d like to copy this entire finished base, just check out the template base that we’ve prepared here. 

If you’d prefer to build the base yourself and customize as you go, you can follow along as we break this base down step by step. 

Create your base and customize your fields

Create a new base, or copy our base to your workspace

In the “Tasks” table, we’ve added several fields that will be useful for creating and managing tasks. 

There’s a primary field which creates a name for each task by combining the contents of a couple of other fields. We’ll explain this field more in a moment, but let’s go over the other fields first. 

Fields in the “Tasks” table:

• Task summary | Single-line text 

• Assignee | “User” field type

NOTE: the “User” field type is necessary for the automation at the end of this guide. 

• Start Date, Due Date | Date fields

NOTE: You’ll need both to use a timeline view

• Status | Single-select

Options: To-do, In progress, Done, Archived

• Priority | Single-select

Options: High, Medium, Low

• Client | Single-select

Options: add clients as needed.

• Notes | Long text

Rich text formatting enabled

• Attachments | Attachment field type

• Project | Linked record

Links to the “Projects” table

• Project Due Date | Lookup

Retrieves due date field from “Projects”

Using a formula in the primary field

In any Airtable base, the primary field acts as the title or label for every record.  You can use any field type you’d like, but at XRay, we always prefer to generate the primary field’s content with a formula.  

Typically, we just use a simple “concatenate” function that combines the text of a “name” or “title” or “summary” field with another piece of important data, like the due date.

For this table’s primary field, we’ve also added a “DateFormat” function to set an easily readable format for the date. A simple “if” statement also ensures the field displays some help text when either dependent field is empty, rather than just showing an “ERROR” message. 

By using a formula field, you can ensure that every single task uses the exact same format for its label.  We won’t have some tasks that start with a date, and others that start with a summary.  And you won’t see any other inconsistencies from human error when people create tasks. 

Plus, if you ever want to change this primary field, we can just update the formula once, and all of the records will instantly use the new format. Ultimately, it’s your choice, but we’d really recommend using formulas in your primary field whenever you’re building a new base. 

That covers our basic table setup. Next, we’ll show you how to add some additional views to get more utility out of the task management base. 

NOTE: The views and interface are already complete in the template that we shared. We’ll describe how to build them step-by-step if you’d like to start from scratch instead. 

The automation can’t be included in the shared base, so you will need to build the automation from scratch if you’d like to use it. Don’t worry; we’ll include a detailed tutorial for that, too!

Adding custom views and filters

In Airtable, every table can include several different customized views. Views let you arrange the same data in different ways. 

The default grid view that every table starts with is useful for seeing all of your records, and for managing all of your fields in a familiar spreadsheet format.

If you want to add or edit fields, you’ll probably want to do that in a grid view that displays all of your table’s records. We’ve titled that default grid view “View All Tasks”. 

However, many of the other available view types are often better suited to quickly surfacing important data and helping people get work done. Views can also be extremely useful for managing automations, since you can trigger automations in Airtable, Zapier, or Make whenever a new record enters a specific view.  

To create a new view, just click on the view type you want to use from this menu in the bottom left.  

First, try creating a new grid view that only displays urgent tasks. To do that, click on “Filter” at the top of the table, and configure 3 conditions: 

Priority is “High”

• Due Date is within the next 3 days

• Status is not “Done” or “Archived”

This will let you see urgent and incomplete work at a glance, and will be the basis for an automation we’ll build later on. 

Next, let’s take a quick look at adding a timeline view. A timeline view will create a timeline with your records. For this view to work, you’ll need to have two dates that you can use as a “Start” and “End” date.  

Once the Timeline view is set up, you can see all of your tasks on a timeline.  Timeline views are a great way to get a bird’s eye view of your tasks, and see how your progress is stacking up against your project’s calendar.

However, timeline views do require a Pro account, which currently costs $20 per seat per month. 

The views that we’ve covered here are a great starting point, but they’re just a sample of the views that Airtable offers. You can check out our Airtable beginner’s guide for more info, or just add views to your table and try them out for yourself.  There are tons of options that can completely transform the way you view and edit your data. 

Sharing your base

With all of these fields and views set up, you’re almost ready to start using your task management base with your team. 

There are two main ways you can share this base with your team. You can either invite them as collaborators on the base, or you can create an interface for everyone to use.

To allow team members to access and edit your base directly, click on the “Share” button in the top right of the screen. Invite everyone on your team that you want to include in your Task Management system.  Just make sure they’re part of your organization in Airtable. 

For each person or group that you invite, you can set a unique permission level: Creator, Editor, Commenter, or Read Only.  A “Creator” has full edit access to the entire base. An “Editor” can create or edit new records and views, but can’t edit the base’s fields.  A “Commenter” can only comment, while a read-only user can’t edit the base or records at all.

For this task management system, you may want to make some of your team “editors”. That way, they’ll be able to add and update tasks, but they won’t be able to add or delete fields.  

However, there is another way to let users access your base which can keep things much simpler for your team: interfaces. 

Build a custom interface for your tasks

With interfaces, you can create simple layouts that allow your team to view selected data and edit specific records or fields without accessing the entire base. That way, your team can see the limited, relevant fields that they need access to, without feeling overwhelmed by detailed data views that they don’t really need to see.

You also don’t need to worry about them editing your table’s configuration or going through the tedium of adding permissions to every field in your data. Interface users also won’t count as “collaborators” in your Airtable subscription. 

We’ll show you how to create an interface with two useful pages: a form view where your team can create tasks, and a Kanban board where they can view tasks sorted by status and update a few key fields. 

This might seem like a bit of an unconventional approach, but there’s a reason we want to employ this setup. One of the biggest challenges in using a task management system with your team is making sure that everyone uses the system consistently and correctly.  

Giving everyone a massive database with a ton of customized views will often just be confusing.  Additionally, if you just grant your team access to the base directly, they may often accidentally create incomplete tasks, missing key fields like a due date.  

Instead, by using the streamlined pages in this interface, your team can quickly accomplish what they need to do.  And by using a form view, you can ensure that every new task has all of the required fields filled in.

Of course, if you’d like to use a different approach, you can customize your drag and drop interface however you’d like. 

Creating an interface

To get started, just click on “Interfaces” at the top of your base.  Then, click on “Start Building” to create a new interface.  

Give your interface a name. For instance, we’ll call ours “Task Management Portal”. 

Then, choose a layout.  You’ll see several choices that are pretty much identical to views that you can use in the data tab.  However, there are a few that are unique to interfaces, like dashboard and record review.  

You’ll also see “blank” as an option down at the bottom.  If you choose “Blank”, you can add any view option that you’d like to your page. You’ll also be able to add additional elements to the page.

So, for instance, you could customize your blank page to include both a Kanban view element and a grid view element.

If you just choose a pre-made configuration like “Kanban”, you either won’t be able to add any additional elements at all, or will only be able to add limited elements like a text field. Different layouts have different limitations regarding the other elements you can add to the page.

It's a little unintuitive, but we expect this functionality to change and be more consistent across different page types soon.  

To start, choose a preconfigured Kanban view to keep things simple. Then click on “next”. 

Now, you’ll need to pick the table that you want to get data from, and the stacking field you want to sort by. In this case, you’ll probably want to sort by “Status”. Click “Finish” to create a new interface with a single page for your Kanban layout.  

You can configure this page in the menu on the right.  Here, you can add filters, change the view into a different layout, edit visible fields and sort options, or modify permissions.  For instance, you can control whether or not users can edit records.  

You can even click on a record to set permission for each individual field.  From there, you can make each field view-only or editable. Note that every field in an interface page will default to view-only. 

For our example, we’ll change the “Status”, “assignee”, “summary”, “due date”, and “attachment” fields to “Editable”. We’ll leave everything else as “Read-only”.  

There’s an option to allow users to add records, but we’ll leave that disabled.  You’ll want to encourage a single method for creating tasks, and that method will be the form that we create next.  

To stick with our system, you should also keep “Edit inline” disabled. Unfortunately, that will disable editing status by dragging and dropping the Kanban cards, but enabling it would allow users to create records here. Instead, we want to have users create tasks strictly with the form.

Once your page is all set, click on “Publish” to commit your changes and create a shareable interface.

Sharing your interface

To share the interface with your team, click on “Share”, then invite users by email or with a link. 

With either option, you can set your invited users to “Editor”, “Commenter”, or “Read-only”. 

If you create an invite link set to “Editor”, anyone you share this link with can access the interface and edit the fields that you’ve specifically configured to be editable. Granting users “Editor” access will not allow them to edit any fields that you’ve set to “Read Only”. 

Note that you can also restrict access to users with an email address from your organization. Once you’ve configured your settings, copy the sharing link and open it up while signed into another account. 

You should be able to view every task that’s already been created, and can click on any of them to edit the fields selected earlier. You should also see that there’s no way to create new tasks on this page, just as intended.  

Create a form to let users add tasks

To give our users a way to add new tasks, let’s go back to the interface and add a form. 

Open up the interface on your own account again. To edit the published interface, click on the interface’s name at the top of the left hand panel, and select “Edit”.  Alternatively, you can use the keyboard shortcut “option 1” on Mac or “Alt 1” on windows to return to the editing view. 

Now you’ll need to add another page to contain your form view. You can do that in the right hand panel by clicking on “Add Page”. If you don’t see “Add Page”, just click on “All Pages” first.

Choose “Form” as the view type.  Then, click next and choose the table you want to use. You’ll then be able to select all the fields you want to include in the form. Just uncheck any field to leave it out of the form. Once you’ve made all your selections, click “next”.  

Give the form a name and a description, and click “Finish”.  

Now your interface has two pages: one with the kanban view, and one with the form.  You can reorder your pages in the panel on the right. 

Once your form is all set, click on “Publish” to commit your changes.  Once again, open the same sharing link from before with another account. 

Submit a task in the form. Then, when you open up the Kanban page, you should see the new task on the board. When you open up the task, you can edit all of the fields that you set to “editable”.  

Now, with this interface, your team has two clearly defined pages to use; one for adding tasks and one for editing tasks.

If you’d prefer to let your team add and edit tasks in a more conventional layout, you can always add list or grid view elements to a blank page. Then enable the “Edit records inline” and “Add records” settings. 

Why we recommend separate pages for adding and editing tasks

However, by splitting the actions of adding tasks and editing tasks, you can ensure that everyone creates complete tasks with the form, and only edits the data you want them to edit.  Ultimately, it’s up to you. 

Again, one of the main benefits of using Airtable for task management is that you can use any format that you’d like - whether that’s a Kanban, a form, a list, a timeline, or something else.  

You can also add filters to any view in an interface to create views that are specific to each department, or specific to each project. 

This base is just a starting point, and everything can be customized to your liking. Try out a few different views and settings and see what works best for you. 

Automating your tasks table

Finally, to wrap up the task management base, let’s take a quick look at enhancing your task management system with no-code automation. 

Airtable is an ideal app to use as an operational database for your automations.  You can build useful automations with Airtable’s native automation builder, or you can use third-party providers like Zapier and Make to integrate Airtable with thousands of other apps. 

The possibilities with Airtable automation are endless, so we won’t be able to give you a comprehensive guide to everything you can automate. 

Instead, we’re just going to give you a simple example to show you how you can start building automations in your task management base.  

Create a new automation

In this example, we will show you how to build an automation that sends an email alert to the assignee of any incomplete and urgent task. 

As noted before, this automation will only work if you’re using the “User” field type for assignee. That’s how you’ll get the user’s email address. 

Alternatively, you could use a Linked Record if you want to set up an additional “team” table, and include each user’s email address in that table. You could also include other contact info there, like Slack IDs. 

However, using the “User” field type will be much faster for this example.  

To create a new automation, click on the “automations” tab. If you haven’t added any automations to your base, this will immediately create a new automation and prompt you to pick a trigger. 

If you already have an automation in the base, click on “Create automation” to add a new one, then choose a trigger.

Whenever your trigger event occurs, your automation will run.

For this automation, choose “When a record enters a view”, so that the automation will only run when a record enters the “Urgent Tasks” view that we created earlier. Just as a reminder, that view has a filter that checks for tasks that are incomplete, high priority, and due within 3 days.  

Next, you’ll need to identify the table and view that you want to use for this automation.

Then, test the trigger by choosing a record.  

If the test is successful, you can now add an automated action.  Click on “Add advanced logic or action”, and choose the “Send email” action.  

To populate the “to” field, use the “Assignee” field from your Tasks table.  To use dynamic data from your Airtable base in an automation, click on the blue plus sign in the field you’re configuring. 

In the window that pops up, you can see that we’re using data retrieved by the automation’s trigger, so we have access to every field that’s part of that record. Select “assignee”. 

Since “Assignee” is a “User” field, it has several pieces of data: ID, email, name, and profile picture. In this case, you’ll just want to select the email address. 

Now, your automation is set to send an email to whoever the assignee is on any task that enters the “Urgent Tasks” view. 

Next, add a generic subject line for the email, such as “Reminder: {task Name} is due soon!”. You can also use some dynamic data here to insert the actual task’s name. 

Then, you can fill out the email body with more static and dynamic detail. For instance, you’ll probably want to use the “name” from the “Assignee” field to personalize the message, and add a title and link for the task for easy reference. 

To test the step, start by generating a preview. This will show you what the finished message will look like, but won’t actually send an email. 

If the message looks good, click on test automation. Then, select a record, and click on “run automation”. 

When you check your inbox, you should see a new email from Airtable Automations, complete with the message you configured. 

Finally, give the automation a descriptive name and turn it on, so it will run whenever a task enters the “Urgent Tasks” view.

We’d also recommend copying the automation’s URL and adding it to the description of the Urgent Tasks View so everyone can see that there’s an associated automation. 

More automation possibilities

Again, this is just an example of the sort of automation you could build with your tasks.  You could also configure additional alerts for any newly created task, or configure automations to create specific onboarding tasks whenever a new deal is marked as closed/won in your CRM. 

 

You could even set up an automation to create a task by simply responding to a message in Slack with a custom emoji.  We’ve built a Slack task maker for our team at XRay, and we use it every day to quickly create tasks right alongside our key conversations.

Every channel is mapped to a project, and every team member has their own emoji.  Note that the specific apps used in this automation could always be changed.  For instance, you could swap Slack for Teams or any other messaging software.

The beauty of low-code automation is that the pieces are usually interchangeable. Any SaaS tool can usually be swapped out for a similar alternative. 

If you’re interested in building a Slack Task Maker automation for your team, just reach out to XRay for a free consultation, and we’ll explore your options. And if you’d like to learn more about automating with Airtable, be sure to check out some of the other blogs on our website. 

Craft your own task management system in Airtable

Airtable is an excellent tool for no-code builders. Using Airtable’s customizable fields, views, interfaces and automations, you can create any system you’d like for managing your tasks and projects.  Copy our base or build your own to get started today. 

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

 

Tutorial
August 9, 2023
Make Beginner's Guide: Updated for 2023

No-code and low-code tools let anyone automate their workflows, prototype ideas, and even create fully functional web apps. 

One of the best names in the no-code/low-code space is an app that often doesn’t get the recognition it deserves in an industry that’s dominated by Zapier. 

In this post, we’re going to show you how to get started with Make. 

Formerly known as Integromat, Make is a powerful and affordable platform for no-code and low-code automation. 

We’ll show you how to start automating your work with Make today, with absolutely no coding experience required. 

We’ll explain what Make is, we’ll show you how to build your first automated scenario step by step, and we’ll give you a preview of Make’s unique features that simplify complicated automation logic.  

What is Make, and what is no-code/low-code automation?

First, what is Make?

Make is a no-code and low-code automation provider. As we’ve already alluded to, you might recognize it by its previous name, Integromat.

They rebranded the app over a year ago and made some changes behind the scenes. However, for users, the platform works in the exact same way.

If you’ve used Integromat in the past, you can think of Make as the same thing with a new coat of paint.

Connecting and automating your apps with Make

For those who never used Make under any name, here’s how it works:

Make lets you connect two or more web apps to automate actions in those apps with scenarios.  

In your scenarios, you can specify that whenever a certain event occurs in one app, Make should automatically perform one or more actions with another app. 

For example, a scenario might look like this:

Whenever a new event is added to Google Calendar, create a new spreadsheet row in Google Sheets with the details of the event. 

The first circular module is our Google Calendar trigger, and its parameters specify exactly what the scenario should watch for - new events in our chosen calendar. 

The second module is our Google Sheets action, detailing which data should be added to which column, and pulling that data from the Google Calendar event retrieved in the trigger. 

Automate multiple actions in the same scenario

You might also build a scenario with Gmail, OpenAI, and Slack. 

Whenever a new tag is added to an email in Gmail, summarize the contents with an OpenAI prompt. Then, send the resulting summary as a DM in Slack, our team’s messaging software. 

You can see a very similar setup here compared to the first example: a Gmail trigger, an OpenAI action, and a Slack action. 

Automations like this can all be built without writing any code at all. Everything is built with a drag-and-drop visual interface.

Low-code features in Make

However, compared to competitors like Zapier, Make is also great at supporting low-code automation

A low-code automation augments a no-code workflow with very small amounts of code, like an API call to perform an action that isn’t natively supported in Make, or a Regex script for precise text parsing and replacement. 

So if you have some coding experience, or want to learn a bit about coding, Make is a great platform to use for automation. 

However, coding knowledge is not necessary at all to use Make, and this tutorial will not require writing a single line of code. 

The anatomy of an automated scenario in Make

Before we build our first scenario, let’s take a look at how scenarios in Make work. 

As you’ve already seen illustrated with a couple of examples, every automation in Make is built on the same basic structure

Every scenario consists of a trigger module, and any number of actions and searches that follow that trigger. 

Let’s add a little more context to those terms. 

Launch your automation with a trigger

In an app like Make, a trigger is the event that prompts your automation to run. A trigger can be based on an event in any app that Make supports.

For instance, your trigger can be configured to run when you add a new contact in Hubspot, when you get an email in Gmail, or when a new record is added to a view in Airtable. 

Create a schedule for your trigger

You can even schedule the automation to run at a specific time, rather than waiting for a particular event to occur in a designated app. 

For instance, you might schedule a Slack message to send in your #general channel every Monday at 9:00AM that asks your team to share their focus and their goals for this week. 

Perform automated actions in thousands of web apps

Once the trigger event is fulfilled, your automation needs something to do. 

An action module will automatically perform any action that you configure.

This could be something like creating a new document from a template in Google Drive or Notion, adding or updating rows in spreadsheets, sending messages through email, Slack, or teams, and much much more. 

Run automated searches to find key data

You can also use modules in your Make scenarios to find data instead of creating it. This is what we call a search module. 

For instance, you might want to look up a record in a spreadsheet app like Google Sheets or Airtable, or you might want to find a contact in a CRM like Hubspot or Pipedrive. 

You can use a search module to find those records, then use an action to send that data to another app. 

Discover what you can automate with XRay.Tools

There are thousands of apps and countless events that can be automated with Make, so we can’t cover them all with an exhaustive list in this guide. 

However, we do have an easy way for you to find out if Make supports the apps that you’re already using. 

Just go to www.xray.tools, and search for the software that you use today, like Google Drive, or Microsoft Teams, or Shopify – any web app that’s part of your day-to-day work. 

Then, XRay.Tools will return a list of every available trigger, action, and search for your app in Make, Zapier, Workato, and other platforms. 

Go beyond linear automations

While every automated scenario in Make begins with a trigger and at least one action, you’re not limited to a strictly linear flow. 

With tools like routers, filters, and various functions, you can build versatile scenarios that respond appropriately to different input. 

We’ll give you a preview of these options a bit later on in this guide, but you can also check out our other Make tutorials for more detail. 

For now, let’s start building our first scenario. 

Building your first automated scenario in Make

Our example scenario: send Slack alerts for Google Calendar events

For our example, we’ll build a simple automation that sends an alert in Slack whenever a new event is added to our Google Calendar. 

Once we’ve built and tested the basic automation, we’ll add a simple function to improve the formatting of our scenario’s output. 

Complete this tutorial with our recommended free software, or use any apps you’d like

We’ve chosen these apps because they both offer free signup, and they’re very simple to use for this tutorial. You can use different software in your scenario if you’d like. 

Make uses a similar configuration setup for most apps.Once you learn how it works with a couple of tools, you’ll be able to apply those same concepts to nearly anything else you want to automate in Make. 

Some of the specific configuration options might not be relevant to your apps, but the same principles will still apply. 

Everything we’ll do today can be built with a free Make plan. 

Make’s paid plans unlock additional features, which you can learn more about in our Zapier vs. Make comparison article. 

Log into Make and create a new scenario

To get started, you’ll need to sign up for Make if you haven’t already, and log into your account. You should also log into Google Calendar and Slack. 

Open up Make and click on “Scenarios” on the left hand panel. 

Next, click on the plus sign next to “Folders” to make a new folder where you can store your scenario. 

Give your folder name like “Make Beginner’s Tutorial”, and click “Save”. 

This isn’t strictly necessary. You could always just make a new uncategorized scenario. However, we’d always recommend staying organized from the very beginning. 

Building the habit from the outset will make it much easier for you to find and maintain your automations later. 

Select your newly created folder, then click the “Create a new scenario” button to make a new scenario within that folder. 

Make will now open up the scenario builder. Right away, you should give your scenario a descriptive name. We’ll call ours “Send Alerts in Slack for New Calendar Events”

Create a test event in Google Calendar

Before we start building, we need to have some data to test our scenario with. Whenever you’re building an automation in Make or similar platforms, you always need to have test data to confirm your automations work correctly every step of the way. 

In this case, that means you need to have an event already on your calendar. Create an event that you can use as test data. 

In our example, we’ll create an event called “Test Event - Meet with Matt”. 

Now, we can go back to Make’s scenario builder and add our trigger. 

Add a trigger and authorize Make to connect with Google Calendar

Click on the plus button in the middle of the screen to add a new trigger module. Then, search for the app you want to use. For our example, we’ll search for Google Calendar.

Click on your app when it pops up in the list of search results. 

Next, you’ll need to choose the exact trigger event you want to use. Each event will include a short description of what it does and how it works. 

Unlike Zapier, Make doesn’t always sort events into separate “trigger” and “action” categories. You’ll see triggers, actions, and searches all in the same spot. 

Triggers usually start with “watch” or “new”, rather than “create”, “find”, or “get”. 

We’ll choose “Watch Events” to watch for new events added to the calendar

Once you’ve chosen your trigger, you’ll be prompted to create a connection.

To automate any app in Make, you need to log into that app and authorize Make to act on your behalf. To start, just click “Create a connection” to authorize Make with your app. 

Next, you’ll see this warning about Make’s rebrand.

Since Make used to be called Integromat, your app may still use that name during the authorization process.

This is nothing to worry about. Make and Integromat are the same product made by the same company, so it’s still safe to authorize the app even if it’s using the name “Integromat”. 

Give your connection a descriptive name, and sign in with your credentials for the app in question. You’ll then see a list of the permissions Make requires.

Click “Allow” to authorize and continue. 

Once you’ve authorized your app, you’ll be returned to the scenario builder, where you can configure your trigger

Configure your trigger

With “watch” triggers like this one, you’ll typically need to specify what you want Make to watch – which workspace, which folder, which spreadsheet view, or in this case, which Calendar. 

That way, Make will only run for the Calendar you’ve specified, instead of running for every calendar in your account. 

First, select the calendar you want Make to watch. This should be the calendar where you added your test event. We’ll select our primary calendar. 

 

Next, you’ll see a couple of fields for “Query” and “Limit”. Both of these are often included in many “Watch” triggers in Make. 

By providing a query, you can ensure that your scenario only runs for items that match your search. Your search will need to use any special syntax required by the specific app. 

To get started, we’d recommend leaving the query field blank, but you can always go back and add a query later if you want. 

“Limit” lets you determine how many new records this scenario can process at one time. It defaults to “2”, but you can set this to any number you’d like. 

For this tutorial, we’d recommend setting it to “1”. Otherwise, the automation may run twice every time you test it, and you’d just be burning operations needlessly. 

We’ll discuss Make’s operation limits in more detail later on - for now, just know that testing your scenarios will use up operations, and you’re limited to 1,000 operations each month on the free plan. 

With all of these options configured, you can click “OK” to finish setting up the trigger. 

Testing your trigger

Now, you need to test the trigger to make sure it can find your data. 

After closing the configuration window, you should see this “Choose where to start” dialogue. If it doesn’t appear automatically, you can right-click on the trigger module and select “Choose where to start” from the list. 

Select “Choose manually”, and you should see some data appear. If you don’t see the event you created earlier, make sure it’s in the right calendar, and make sure that your trigger is set to watch the right calendar.

If your test data is there, select it and click “OK”. 

By selecting where to start, you’ve now told the trigger module to start with your test data when it runs, but it hasn’t actually run yet. 

To run your trigger and have it gather your test data, you can either right-click on the trigger module and select “run this module only”, or click on “run once” in the bottom left to run the entire scenario (which, for now, is just a trigger). 

Once you run the trigger, you should see a green check and a number appear above the module. This number indicates how many “bundles” of data the trigger module processed in its test. If you’ve set the limit to 1, you should only see 1 “bundle” here.  

You can click on it to see more information about the data retrieved, and confirm that your test data is there. 

Now, your trigger is set to run every 15 minutes and watch your specified calendar for new events. Each new calendar event will prompt the automation to run.

Close this window to continue. 

Add an action to your scenario

The first step of our scenario is complete, but now we need to add a module that will send us a Slack alert for this calendar event. 

Hover over the trigger module, and click on the plus sign.

Search for the app you want to perform an action with. For our example, we want to use Slack to send a message, so we’ll search for Slack and select it from the search results. 

Then, choose the action you want Slack to perform. Whenever you’re trying to pick an action in Make, just look for whatever phrasing is closest to the action you want to perform. 

Since we want to send a message, we’ll select “Create a Message”. 

Just like with Google Calendar, you’ll need to authorize Make to automate Slack with your account. 

But first, Make requires you to choose a connection type. This is particular to Slack, and isn’t something you’ll always need to do. 

Since we want to send messages with this automation, we’ll need to choose “Bot”, not “User”.

Now, you can follow the same steps as before to authorize Make to use Slack. 

Note that in Slack, Make is still referred to as “Integromat”, just as we had warned it might be. But again, this is nothing to worry about - just a simple rebrand. 

Click allow to authorize Slack and continue. 

Configure the Slack action module

Just like with a trigger module, every action module needs to be precisely configured so Make can perform the action you want. 

You’ll typically need to identify where you want to create or update an item, the name of the item, the text to use for the message or body, and other similar attributes. 

Make will describe each one and let you provide it in this simple form layout.

For Slack, we need to select the channel or user we want to send a message to.

This first option gives us the choice to enter our channel manually or select it from a list. This is a common choice you’ll see in Make modules. You can identify objects in your app by using their ID, or by finding its name in a dropdown menu. 

Whenever possible, we’d recommend entering the object’s ID manually. The ID is a fixed value that won’t change, so it’s more precise and reliable than a name that might be updated at any time. 

If you need the ID of something in a web app, you can often find it in the URL bar. But if you can’t find the ID, then selecting the item from the dropdown menu should work just fine. 

In Slack, you can easily find the ID of any channel by clicking on the channel details. You can also find your own user ID to send a direct message to yourself. 

Copy the ID of the channel you want to send the message to, and paste it into the channel ID field. 

Retrieving data from your trigger

Next, you can fill in the text of the message that Slack will send. 

In any text field in Make, you can enter a combination of static text, dynamic data retrieved from earlier modules, and even functions and custom variables. 

To start, enter the static part of the message by typing it directly into the “Text” field: “There’s a new event on your calendar!” Make sure to include labels for the Title, Start Date and Time, and the event’s URL. 

Next, you can add some dynamic data to provide the actual title, Start time, and URL for whichever calendar event prompted this automation to run. 

You can find dynamic data in the panel that appears whenever you select a text field. Data retrieved by earlier modules, like our trigger, will be under the “Star” tab.

The other tabs include functions to work with number, date/time, and text – we’ll explore them a bit more later on. 

For now, let’s look for the data we want to add to this message. 

The blue variables (outlined in green above) represent the title of each piece of data Make retrieved, while the gray text (outlined in purple above) indicates the value of that variable for the current test data. 

You’ll always see the same blue variables for every Calendar event, but the gray text will be unique to each event. 

We can see the title of our event next to “Summary”: “Test Event - Meet with Matt”. Every calendar event will have a “Summary”, but each event will have a unique name for its Summary. 

Add the “Summary” object to your text after “Title: “

Next, you can see the start date and time labeled as “Start”, while the URL is called “HTML link”. Add both of these to your message in the appropriate spot. 

Your basic message is all set, but you should configure a few more settings first before you test it out. 

Click on “show advanced settings” to reveal a few more options. 

Set both of the “unfurl” options to “No”. That way, the Slack alert won’t show large link previews with every message. 

Then, add an icon emoji, like :date:, and a unique username for your Slack bot. 

This will give it a little personality, and help to distinguish it from any other automated alerts you might set up. 

Now that the action is fully configured, click “OK” to close the configuration window. 

Test the scenario and turn it on

To test a complete Make scenario, we recommend always choosing a manual starting point, just like we did when we tested the trigger alone. 

Right click on your trigger module and select “Choose where to start”. Then, click “Choose manually”.

Pick the record you want to use. Then, click “Run once”.

Your action should run instantly. When you check Slack, you should see a new alert. 

Everything looks correct in our test, but the date and time aren’t exactly easy to read.

Thankfully, Make has an easy fix for that - but we’ll cover that in a moment, after we’ve finished testing and activating this scenario. 

With a successful test, we’re ready to turn on the automation. 

Activating your automation

First, always click on the “save” icon before switching any scenario to “on”. Make does not automatically publish your changes. If you turn your scenario on without saving first, it may operate without your latest changes. 

Next, you need to set the interval that your scenario runs at. On a free plan, you’re limited to running your scenarios at intervals of 15 minutes or more. On higher tiers, your automations can run every minute. 

Reducing the operations your scenarios use

It’s important to note that every run of a scenario will consume at least 1 operation, and the free plan is limited to 1,000 operations per month.

Even if the trigger doesn’t find any data and the subsequent action doesn’t run, it will still use an operation for the trigger. Testing your scenario will also consume operations for every module ran. 

A 15 minute interval for this trigger means 4 runs an hour, which translates to nearly 100 operations every day, and over 2,500 operations every month for the trigger alone. 

But there are some simple ways to reduce the amount of operations your scenarios consume. 

First, you can set the interval to be less frequent. For instance, you might double the interval to 30 minutes. Just click on the button with a clock icon and a listed interval, like “Every 15 minutes”. 

In this same menu, you can also select “advanced scheduling” to set specific timeframes and days the scenario should run.

For instance, you could set the scenario to run from 9:00am to 5:00pm on Monday- Friday.

This results in a bit under 350 operations each month for the trigger. That’s still a substantial number, but it’s a fraction of what we had before, and it doesn’t waste operations on weekends and nights. 

Advanced low-code techniques: using webhook triggers in Make

For low-coders, many watch triggers like this can be replaced with webhook triggers. You can check out our tutorial for using webhook triggers in Make, but just note that it’s a bit more of an advanced tutorial. 

Turning on the automation

Once you’ve configured the scheduling to your liking, you can finally switch the automation on. 

To fully confirm that it’s working as intended, give it a live test by creating a new event in Google calendar. 

Within your scheduled time frame (which is 30 minutes in our case), you should get your alert in Slack. 

Once you get the message, you’re all set!

You’ve finished your first scenario in Make. 

Click on the arrow in the top left to exit the scenario builder. On this screen, you can view the operations and data that your scenario has consumed to date. 

If you need to raise your limits, paid plans will offer more operations and data every month. Ultimately, while the free plan is great for giving Make a try, it’s not ideal if you intend to use Make long-term to automate your work. 

Fortunately, Make’s paid plans are very affordable. You can learn more about them at Make’s pricing page, or in our Zapier and Make comparison guide. 

Just be sure to turn off this example scenario later if you don’t intend to keep using it. After all, you don’t want to burn all of your operations for the month with this tutorial. 

Adding a function to your scenario

What we’ve built so far is a very simple scenario, but we’ve mentioned that Make can do a lot more than a simple linear automation like this. 

Since this is a beginner’s guide, we won’t go into too much depth, but we want to give you an idea of how Make’s more advanced tools work. 

As we mentioned earlier, Make offers several tools and functions for transforming your data. 

Reformatting date and time

To finish this guide, we’re going to improve this scenario with a simple function to reformat the date and time in our Slack message. 

To add a function, go back to the Slack module, and select the Text field.

All of these tabs contain several functions to run mathematical calculations, edit text, format dates, and more. 

We’ll use a function to reformat the date in our message into something that’s easier to read. 

Select the calendar icon for date-time functions.

Then, you can hover over any function, like this “formatDate” one, for more info.

Click on the “formatDate” function to add it to the text field. 

Hovering over any function you’ve added to a text field brings up a tooltip that explains the data (or arguments) you need to provide. 

Before the semicolon, you need to enter the date you want to format as the first argument. Put the “Start” date variable there. 

Note: it will often be easier to delete any variables you want to use in functions, and add them back in after you’ve entered the function. 

After the semicolon, you need to provide the format you want to use as the second argument. Here’s a help page from Make that lists several possible date formats. 

We’ll use this format: 

MM-DD-YY hh:mm A 

So dates will be formatted with 2 digits each, and the time will be displayed in 12-hour format with AM or PM. 

The function is complete.You can click OK to close the module, save your changes to the scenario, and test it again. 

Now, when you check Slack, we should see the date is formatted correctly and is much easier to read. 

If you’d like to learn more about using any function in Make, you can just hover over it and read Make’s helpful tool tips. 

You can also check out our post about using functions in Make for a step-by-step guide. 

Flow control, tools, and text parser

At the bottom of the scenario builder, you’ll also see these buttons: Flow control, tools, and transformers. 

Flow control will let you add different paths to your automation, or loop through sets of data. 

We have some posts about using certain flow control options like routers and repeaters

“Tools” are used to add custom variables, text, and more to your scenario. 

You’ll also see options that let you pause your automation for a set period of time, as well as switch functions for easily handling several different inputs. 

Text parser lets you use regular expressions or regex to parse text, or to extract elements from a web page. 

We won’t be using these in this beginner’s guide, but we encourage you to explore them on your own after getting started with Make. 

Make’s pricing plans

Now that you’ve tried out Make, you might be considering a paid subscription. You can see Make’s pricing page here for more information. 

To give you the main takeaway for Make’s pricing compared to Zapier’s, Make is way, way cheaper, and generally better for more advanced low-code automation, even if it has fewer integrations. 

Try it for free first to see if it’s a good fit for you or your company, then find a plan that works for you. 

Getting started with Make

Whether you’re new to automation or looking for an alternative to Zapier, Make is a great choice. Just do a quick search on XRay.Tools to see if your apps are supported, and start building. 

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

Understanding Automation
August 2, 2023
Zapier vs. Make: Comparing Two of the Top No-code Automation Apps

If you’re looking to build no-code or low-code automations, you have probably heard of Zapier and Make. 

However, you might not be sure which one is right for you or your team. To help you make that decision, we’re going to compare both of these prominent automation providers, so you can find out which is the best fit for you.

We’re going to compare Zapier and Make (formerly Integromat) across three key categories: integrations with popular software, pricing plans, and ease-of-use for no-coders. 

We’ll also touch on some of the unique advanced features offered by both platforms, just to highlight some key differences that might be important for you and your organization. 

There’s a lot to cover, so let’s get started!

Integrations: Are 1,500 Apps Enough?

Let’s begin by taking a look at the available integrations for both providers. 

When you’re building an automated workflow, integration support is often the single most important factor to consider. 

If you’re a no-code builder looking to automate Shopify, for instance, then you need to use a provider that supports Shopify. And if you anticipate automating with dozens of different apps, you’ll probably want to find a provider that offers support for all of them. 

Otherwise, you won’t be able to build the automations at all – at least, not without writing some code for an API call.  

Zapier: integrations for nearly every app you’ve ever used

When it comes to the sheer number of available integrations, Zapier easily beats all of the competition, including Make. 

Currently, Zapier boasts over 5,000 available integrations on their website. If you’re using a commercially available web app, chances are that Zapier has an integration for it. 

Zapier has over 5,000 integrations

Make: support for over 1,500 popular apps

That said, Make’s list of integrations is still quite extensive. According to their website, Make currently supports about 1,500 web apps

Make has over 1,500 integrations for popular web apps

While that number is a lot smaller than Zapier’s gargantuan total, there’s still a very good chance that Make supports the apps you want to use. 

Like Zapier, Make supports Google Drive, Microsoft Teams, Slack, Airtable, Notion, Shopify, Quickbooks, Hubspot, Wordpress, and many, many more apps that you probably use every day. 

Which provider supports your apps?

Ultimately, the most important question isn’t necessarily “which provider has more integrations?”

It’s “which provider has integrations for the apps you want to automate?”

As a workflow automation consultancy, that’s a question that we have to help our clients answer a lot. 

To skip the trouble of sifting through lists of thousands of apps, we built a simple search engine to quickly find out which automation providers support which apps. 

Just go to www.xray.tools and search for the apps you want to use. Immediately, you’ll see which automation providers support your apps, like Zapier, Make, Bardeen, or Workato.

compare automation providers on XRay.Tools

Then, you can click for more detail about the specific triggers, actions, and searches offered by each platform in one convenient view. 

Use XRay.Tools to discover every action you can automate in your software

 

In many cases, you’ll find that both Zapier and Make have integrations for all of the apps you already use. In that situation, you’ll likely want to dive a bit deeper and compare what you can actually do with those integrations. 

The available options will usually be pretty similar, but it’s not uncommon for either Zapier or Make to offer a specific action that the other is missing. 

For instance, Zapier never includes a “delete” action within its integrations. If you want to automatically delete items with a no-code automation, you’ll need to use Make. 

Compare each provider's unique capabilities on XRay.Tools.

There are a lot of different capabilities offered by each provider, so it’s always a good idea to check XRay.Tools to see what they can do. 

Ultimately, if you want an automation provider that supports virtually every web app out there, then Zapier is your pick. However, you should definitely check XRay.Tools before making a decision. 

Pricing: Finding the most affordable automation platform

Next, let’s look at Zapier and Make’s pricing. 

Both apps offer several different pricing plans and add-ons, but there’s a pretty clear winner in terms of affordability. 

In the vast majority of circumstances, Make will be a significantly cheaper choice than Zapier. You can review Zapier’s pricing page here, or take a look at Make’s pricing overview, but we’ll give you some key takeaways for both. 

Zapier: Premium pricing for the biggest name in automation

Zapier’s paid plans range from $30 a month for the starter plan up to nearly $150 a month for the Company plan. 

Zapier's basic pricing plans range from $30 to $150 each month

Note that all these plans set a limit on the number of tasks you can use each month.  

Understanding tasks in Zapier

In Zapier, a “task” is consumed when any trigger, action, or search runs. 

For instance, a Zap that consists of one trigger watching a Google drive folder and one action that sends an Email would consume two tasks whenever it runs completely. 

A Zap with one trigger and one action consumes two tasks when it runs

However, when the automation trigger checks periodically for new files in the folder, these actions won’t consume any tasks unless Zapier finds a new file and runs the whole automation.  

If you’re running out of tasks each month, you can also add more tasks to your plans for an additional monthly charge. 

Zapier pricing breakdown

In general, higher tiers in Zapier include support for more automations, more features, and more tasks. 

The starter plan can be a good option for Zapier beginners, but it has a lot of limitations. It only includes 750 tasks each month, or 1,500 for an additional charge of $30 each month. 

You’re also limited to using just 3 “premium” integrations in your Zaps. Many of Zapier’s most popular and useful apps are considered “premium”, such as Shopify, Quickbooks, and Webhooks. 

Many of Zapier's most popular apps are "premium", and only available at higher tiers

Individual builders looking to create robust workflows that support their daily work will probably want to consider the Pro plan, which starts at about $73 per month and includes unlimited premium apps. 

Organizations seeking to connect their whole team with automation will need to check out the Team and Company plan, which start at about $100 and $150 each month, respectively. 

These plans let you create as many Zaps as you’d like, and offer several features for permissions and collaborating with your team. 

Zapier’s limited free plan

There is also a free plan, but to be honest, this is little more than a demo. 

It’s worth checking out if you’re exploring Zapier for the first time, but you can’t really do anything practical with it. 

You’re limited to using single-step Zaps, and can only have 5 Zaps active at one time.

Note that if you’re using the free plan, you will be able to build multi-step Zaps with all of Zapier’s premium features, but you won’t be able to turn the Zap on unless you upgrade to an appropriate paid tier.  

As the biggest game in town, Zapier charges a premium for their product. But if your Zaps help you to save just a few hours each month, then even $150 a month is well worth it. 

Make: affordable low-code automation

Now let’s see how Make’s pricing stacks up to Zapier’s. 

Make's pricing is much cheaper than Zapier's, and starts at less than $11/mo.

Base plans range from about $10 a month for “Core” up to about $34 a month for “Teams”. Enterprise organizations will need to contact Make’s sales teams for a quote.

Any of these plans can be augmented with additional operations each month for an extra fee. 

Build basic automations with a no-frills free plan in Make

Much like Zapier, you’ll also see a free plan here, but it’s a bit more useful than what Zapier offers. 

Your scenarios can only run every 15 minutes, you don’t have access to premium enterprise apps, and you’ll be missing a lot of Make’s more advanced features like custom variables that you can use in any automation. 

However, it’s more than enough to try out Make and see how it really works before whipping out your credit card. 

Operations and data limits in Make

Much like Zapier, more expensive plans offer more features and more automation runs. 

In Make, your plans are limited to a set number of “operations” each month, which is essentially the same thing as a “task” in Zapier. 

However, in Make, automations consume operations when they watch for new data, even if they don’t actually find any. 

You’ll also be limited in how much data you can process with your automations. For every 10k operations in your plan, you can transfer 5GB of data. Zapier, on the other hand, doesn’t even measure your data usage.

Make sets a monthly limit on operations and data used.

You can see more info about data usage on the Make’s Pricing Parameters page in the Resources board. 

Which Make plan is right for you?

Serious no-code and low-code builders will probably want to use Pro in the long run, but even Core includes most of the key features you’ll need to use Make as a solo builder. 

Organizations will want to use a Teams or Enterprise plan to be able to assign different roles and permissions to their employees. 

Automating on a budget? Try Make. 

Ultimately, Make’s plans are about a third of the cost of comparable Zapier plans, and their lower tiers have fewer restrictions. 

Plus, with in-line functions instead of separate “formatter” steps, an automation in Make will probably use fewer operations than a similar automation in Zapier. 

If you’re looking to automate your workflows on a tight budget, Make will be the better choice – as long as it supports the apps you want to automate. 

Ease of use for no-code builders

Now, let’s take a look at the user experience for both apps, and how well they work as “no-code” apps. 

Both are no-code automation platforms, but do they live up to that claim? Are they reasonably easy to use for people without coding experience?

In both cases, the short answer is “yes”, but there are some caveats.

We’ll dive into the specifics in a moment, but in general, beginners will likely find Zapier easier to use while more experienced users may gravitate toward Make. 

Zapier: a simple, intuitive interface for builders at any level

Let’s start by taking a look at Zapier. 

Zapier features a very simple interface designed for building linear automations one step at a time. 

All you have to do is choose the apps and actions you want to use, and fill out fields in a form-like UI for each action, search, or trigger. 

Zapier offers a simple, linear interface for building automations.

Zapier typically provides clear, concise explanations of the data you need to provide for each field. 

Build Zaps by entering data into simple forms.

For the vast majority of automated actions in Zapier, you won’t have to write a single line of code. 

If you want to use some more advanced features like Webhooks, some familiarity with coding syntax and principles will be needed, but most Zaps won’t require code at all. 

Some actions in Zapier may require more technical knowledge, like webhooks

If you’re generally comfortable using modern web apps for work, then Zapier shouldn’t pose much of a challenge once you’ve picked up the basic concepts. If you’re looking for some help to start quickly building your own Zaps, you can check out our Beginner’s Guide to Zapier. 

The limits of a simple, linear layout

However, Zapier’s focus on simplicity can become an issue at times. When building automations for your company, you’ll often need to accommodate several different possible inputs with different options or paths. 

If you add paths to your Zaps to perform different actions for different circumstances, the path will be nested within another module. Adding another path will add another nested module, which will be completely invisible until you select the first path. 

Zapier's simple layout makes it difficult to view branching paths in automations

At first glance, there’s no way to tell that an automation even contains nested paths; all you’ll see is a single “paths” module, making it difficult for your team to understand each other’s work. 

Paths within paths aren't visible from the main view of the automation

Additionally, Zapier’s error messages are often vague and unhelpful. When something isn’t working as planned, you’ll often have to turn to basic troubleshooting through trial and error, or post on the Zapier forums for help. 

Example Zapier error message: "The app did not respond in-time. It may or may not have completed successfully".

Overall, Zapier is very easy to use and doesn’t require any coding knowledge. 

However, it can be overly simplistic for builders who want to create more advanced automations with several branching paths. 

Easily build sophisticated automations in Make

In contrast to Zapier’s linear forms, Make lets you build automated scenarios with an interface that looks more like a flowchart. 

You can add modules anywhere in the building space, and click and drag to move them. 

Make uses a flowchart-like

Moving and rearranging your modules becomes particularly important when you start using conditional logic to add several different paths to your automations. 

Make's layout is ideal for complicated automations with branching paths.

With this flowchart layout, it’s much easier to understand how a complex automation works at a glance than with Zapier’s UI. 

Edit each module with a simple form

When you open any module in Make, you’ll see a form layout that’s pretty similar to what Zapier employs. 

Each module in Make can be configured with a simple form

However, Make will often use somewhat more technical language.

You definitely don’t need to be a software engineer to understand it, but you’ll be seeing terms like “array”, “string”, and “variable” pretty frequently. 

Make frequently uses some basic coding terms, like array, string, and variable

It mostly only touches on some rudimentary concepts, but it helps to have a little familiarity with coding when you’re using Make.

If you’re looking for some resources to help you get started with Make, be sure to check out our beginner’s guide. 

Working with spreadsheet-like functions

You’ll also see that functions for working with numbers, text, and dates are formatted like the equations you might use in spreadsheet apps. 

Make includes optional functions similar to spreadsheet functions, such as "capitalize()"

They’re not quite as plug-and-play as a Zapier Formatter step, where every single piece of data gets its own field. However, they’re still quite accessible for no-code builders.

Make includes helpful tooltips for every function, and you can check out this post on our blog for more info about getting started with Make functions. 

Two options for a comfortable user experience

Ultimately, both Zapier and Make are pretty easy to use for no-code builders. 

More advanced builders, particularly those who want to dabble with low-code, will  gravitate towards Make. 

On the other hand, no-code automation beginners will likely prefer Zapier’s simple, linear setup. 

In the end, it’s really up to you and your preferences. Both are equally reliable, being built on AWS, so it’s just a matter of your experience and opinion. 

Advanced and specialized features

Finally,  take a look at some of the more advanced or specialized features that each app offers. 

Many of these features are used in relatively niche use cases, and often won’t have an equivalent in the other app. 

If you’re still not sure which platform is the better fit for you, reviewing the unique features included in each might help you to make a choice. 

Share automations and build chatbots with Zapier interfaces

To start, let’s take a peek at Zapier’s new “Interfaces” feature. 

Recently, Zapier has been expanding their platform beyond simply building automations, and is now creating tools to let builders easily share their Zaps with team members and clients. 

Share automations, links and more with Zapier interfaces.

A Zapier interface is a simple web page created using a drag-and-drop page builder. Every page can include forms and buttons that trigger automations, links to other pages, and even a new AI chatbot component. 

Build no-code chatbots in Zapier interfaces

If you’d like to learn more about using Zapier interfaces, you can check out our tutorial for creating a custom chatbot with Zapier here. 

Interfaces are an appealing feature for anyone looking to build and deliver their automations on a single platform. They are still in beta, so expect to see lots of updates to Interfaces in the coming months. 

Zapier’s plugin for ChatGPT: Trigger automations with a prompt

While we’re on the subject of AI, Zapier also has a plugin for OpenAI’s ChatGPT. 

With this plugin, you can run automated actions in Zapier by simply sending a prompt to ChatGPT. 

Zapier's plugin for ChatGPT performs automated actions based on your prompts

The plugin is still in beta, and there are a lot of kinks to work out, but it has some really exciting potential to change the way we approach automation. 

Low-code support: Easily manage webhooks and keys in Make

Where Zapier has a lot of interesting standalone tools like the ones we’ve mentioned above, Make’s unique features are more focused on building advanced automated workflows. 

Make offers extensive support for using API calls and webhooks in your automations. 

For instance, you can create secret keys to manage your application credentials and easily make calls from different accounts. 

Make’s webhooks manager also makes it simple to keep track of all the webhooks you’ve created, and lets you view, update or delete your webhooks in a single location. 

Make lets you activate, edit, or delete your webhooks all in one spot

If you’re a low-code builder relying on API calls and webhooks to create your automations, Make will give you far more resources for generating and managing them. 

This is just scratching the surface of the unique features offered by both applications, but they should give you a general sense of what each provider prioritizes, and the kind of features you can expect from both. 

Choose the right provider for you and your team

At the end of the day, there’s no one definitive winner between these two apps. Your choice will ultimately depend a lot on your circumstances and preferences. 

But after building thousands of automations in both platforms as a team, we can tell you there is such a thing as the right tool for the job. 

If you’re looking for a very simple, no-code building experience or tons of integrations, then Zapier’s probably the better pick. 

On the other hand, if you need a budget friendly solution or a tool with great support for  low-code automation techniques, Make is your best bet. 

Ultimately, with free plans available on both platforms, you can give them both a whirl before deciding for yourself. 

If you’d like to learn more about automating your workflows with Zapier, Make, and other no-code/low-code tools, explore the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
July 26, 2023
API Price Hikes: A New Challenge for No-code Automation?

Recently, major apps like Twitter and Reddit have made drastic changes to their APIs. 

While they previously offered access to third-party developers and other users for free or a very low cost, they’ve chosen to hike rates dramatically in recent months. 

In this post, we’re going to explore how AI may be responsible for these changes, and we’ll explain how the shifting landscape of API access will have a direct impact on no-code/low-code builders. 

Understanding APIs and new policy changes

First, if you’re not aware of events we’re referencing, or just aren’t sure of the details, we’ll give you a quick recap and some background information.

What is an API?

An API, or application programming interface, is a software interface that developers use to let their applications interact with applications built by other companies. 

If you wanted to include data directly from an app like Twitter in your own application, you would need to use Twitter’s API to request that data. 

Twitter and Reddit’s API price hikes

Back in March, Twitter announced a new pricing plan for its API

Under this new plan, anyone using the API to post more than 1,500 tweets per month will either need to subscribe to the $100/mo “Hobbyist” tier, or shell out a five-figure sum for the Enterprise plan. 

Similarly, in June, Reddit announced a new API pricing scheme that charges $12,000 per 50 million requests, resulting in millions of dollars in API fees each year for the most popular third-party Reddit apps. 

Many of these apps, such as Apollo and RIF have shut down after the API changes took effect on July 1st. 

So why have companies like Reddit and Twitter decided to raise their API prices so drastically? And why did they offer free or cheap access in the past?

The traditional benefits of cheap API access

Ultimately, offering easy access to your API has long been seen as a great way to get more people using your app - even if they’re using it indirectly through some third party. 

Remember the phrase “Web 2.0”? You probably haven’t heard that one in a while. One of the key defining features of “Web 2.0” was the idea that all apps would have a high degree of connectivity and interoperability, enabled in part by easily accessible APIs. 

For instance, using Twitter as an example, everything from simple “Tweet this” widgets or embedded Twitter feeds would use Twitter’s API. 

This always cost Twitter some money, but in the past, they were happy to shoulder that burden, since it meant more eyeballs on their platform. 

So what changed?

There isn’t one single answer, and Twitter’s financial situation and new ownership are certainly critical factors - both of which have been discussed at length elsewhere. 

Meanwhile, Reddit is gearing up for an IPO, and is eager to show potential investors that their business model can be profitable. 

Raising API charges will directly bring in more revenue for a company that’s never shown a profit. 

Additionally, as third-party Reddit apps shut down, more users will be funneled to Reddit’s official app, where they can earn more revenue from ads. 

But while these factors are certainly an important part of each company’s strategy, one often overlooked aspect that I want to highlight here is the rise of AI. 

How AI made web data more valuable

At this point, you’ve seen what AI language models can do. Apps like ChatGPT can provide shockingly good answers to nearly any prompt. 

And it goes far beyond simple questions and answers. Consumer AI can compose essays, blog posts, poems, and even some halfway decent code. 

But AI isn’t able to generate all of this out of thin air. AI models have been trained on massive amounts of data from around the internet for years. 

To be able to generate convincing language, AI language models had to learn how we, as people, write and express ourselves

The largest and most diverse source of data for written language is, of course, the internet. 

And the best way to process billions upon billions of Tweets, Reddit posts, Tumblr blogs and more is to use each app’s respective API. 

By using the API, AI developers and researchers could systematically scrape publicly accessible data much more efficiently. And all of that data would be structured neatly and consistently for their software and team to process. 

Charging AI tools for data access

With expertly trained models now making waves in every space from the Healthcare sector to Hollywood, AI is now a multi-billion dollar industry. 

The data that apps like Reddit and Twitter generate is more valuable than ever, but because of their API pricing, they weren’t getting any real compensation for that data. 

And the AI models aren’t embedding or linking to other platforms the way that we would normally see with traditional API usage. 

In other words, ChatGPT doesn’t tell users that a given answer was “inspired by Twitter” or anything like that. 

Twitter and Reddit aren’t getting more people on their platforms from AI apps in exchange for the API usage. 

So to recoup their costs, and to try to make some money from the emerging AI industry, Reddit and Twitter are now asking for higher fees to access their API. 

How higher API rates will impact low-code automation

So how is this going to affect those of us who build apps and automated workflows with no-code tools?

Ultimately, “no-code” tools are only no-code on the user’s side of things. Behind the scenes, platforms like Zapier and Make rely on APIs to access all of the apps that they have integrations for.

With API access often being free or cheap, automation platforms can, in turn, keep their prices reasonably low as well. 

But if more apps start to charge higher rates for their APIs to make some money off of AI data-scraping, then automation platforms will have to raise their rates to keep up. 

Why Twitter is now a “premium” app in Make

This isn’t just a hypothetical. You can already see some consequences of Twitter’s new rates. On Make’s pricing page, they indicate that only paid plans can access their “premium” apps. 

Make’s premium apps consist of a variety of enterprise-grade tools, and just one consumer app to date: Twitter

If Make’s users started automating with Twitter for free through their platform, Make would lose money as they foot the bill for Twitter’s API charges. 

Will other platforms raise their API rates as well?

For now, we’re not seeing a lot of other apps follow suit, but it may just be a matter of time. 

We expect to see Stackoverflow and other vibrant communities make similar changes in time. 

Hopefully, they’ll approach the price hikes in a more reasonable or incremental way, such as by targeting the AI companies exclusively instead of saddling all API users with huge charges. 

In the end though, we may be stuck paying much higher prices pretty soon, and automators certainly won’t be the only people impacted. 

Accessibility concerns

Apps and utilities focused on enhancing accessibility were some of the first to sound the alarm when Reddit and Twitter began imposing new API limits. 

Many accessibility features rely on being able to access application data through an API and not just through a visual interface. 

The companies have carved out some exceptions for accessibility-oriented apps, but the developers and the community remain concerned about what may happen in the future. 

Don’t wait to start automating your work

For the time being, builders like our team at XRay can keep using Zapier, Make, Workato, Airtable and other no-code tools just like we always have. 

But in the future, these tools could start to become more expensive. If there’s something you want to automate, waiting could be costly. It’s best to start building now. 

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

Tutorial
July 19, 2023
How to Use Zapier’s Plugin for ChatGPT

ChatGPT is quickly becoming an indispensable tool at work. Whether you need help brainstorming new ideas, want to edit the style and tone of a piece of writing, or just need to quickly draft some social media posts, AI chatbots are rapidly becoming a go-to resource for busy knowledge workers. 

And all you need to do is give ChatGPT a good question or prompt to get started.

But what if an AI assistant could handle the entire task with a prompt alone? With the new Zapier plugin for ChatGPT, we’re closer to that future than ever.

In this post, we’ll show you how to use Zapier’s ChatGPT plugin step by step, and explore some of the early possibilities with this beta feature. 

Let’s get started. 

Overview

First, we’ll give you a brief demo of the Zapier ChatGPT plugin, and a quick overview of how it works. 

Then, we’ll take a closer look at every step of the process. 

1. First, sign up for Zapier and ChatGPT Plus. A free ChatGPT account won’t work. 

2. In your ChatGPT settings, enable plugins

3. Click on the “no plugins enabled” message to open the plugin store and add the Zapier plugin

4. Authorize ChatGPT to access your Zapier account. 

5. Create an automated action you want to trigger with a prompt.

6. Enable the action. Return to ChatGPT and ensure that the Zapier plugin is enabled. 

7. Send a relevant prompt to ChatGPT. You’ll need to check its work and approve each step before it runs.  

That’s how the Zapier’s plugin for ChatGPT works in a nutshell. Note that you can create several Zapier actions. ChatGPT will choose which to use based on the prompt that you’ve entered. 

Limitations of the Zapier beta plugin

Next, we’ll explain each of these steps in more detail, but first, we just want to note that this plugin is still in an early beta.

In its current state, it’s a very interesting piece of tech with a ton of potential, but for now, it has some pretty limited use cases in the real world. 

Ultimately, all of the actions that you can perform with the plugin can also be performed with normal Zapier automations. 

No brand-new capabilities 

Language models like ChatGPT generally can’t execute actions beyond generating and formatting text. With this plugin, ChatGPT is relying entirely on Zapier to automate tasks in your other apps. 

As such, this plugin doesn’t really give you access to any new abilities yet; just a different way to access the same abilities. In most cases, you’ll be able to build more reliable and scalable automations with traditional Zaps. 

This is particularly true if you’re building for an entire team, and not just for personal use. 

Potential for growth

However, the plugin still represents a lot of exciting possibilities. If you’re a builder, or if you lead your own automation agency, it’s definitely worth checking out. 

It’s only a beginning, but it’s easy to see how this could become the basis for a fully-fledged virtual assistant powered by AI. Getting an early peek at this kind of development is well worth it if you’re already using ChatGPT Plus. 

And if there are any tasks that you’re already relying on ChatGPT for every day, like drafting messages or summarizing long pieces of text, you may find that the Zapier plugin offers a more convenient workflow for you. 

With all of that mind, let’s dive in and take a closer look at each step of setting up and using the plugin.  

Setting up your accounts and installing the Zapier plugin

Sign up for ChatGPT Plus

NOTE: you may see some “Browse with Bing” features in our screenshots. Since we created this tutorial, OpenAI has indefinitely disabled the Browse with Bing feature. It’s not necessary for any of these tutorial steps; it was simply located within the same plugin menu area. 

First, you’ll need to have a Zapier account and a ChatGPT Plus subscription. Unfortunately, a free ChatGPT account won’t work.  

The ChatGPT Plus plan will grant you access to beta features, such as this plugin. It also gives you access to the GPT4 model. GPT4 is a more advanced language model compared to 3 or 3.5, and delivers much more creative and convincing responses. 

However, it does tend to be a bit slower, and OpenAI will limit you to 25 GPT4 messages every 3 hours. 

If you don’t have a ChatGPT plus account, go to chat.openai.com, and click on “Upgrade to Plus” in the bottom left of the screen. 

You’ll then see pricing and feature details for ChatGPT Plus. All of the specifics are subject to change, but currently, it costs $20/mo. 

Once you’ve upgraded your account, go back to chat.openai.com, and start a new chat. You should now have the option to select ChatGPT4 as your language model. 

When you mouse over GPT4, a dropdown menu will appear with a couple of options: Default and Plugins [Beta]. 

If you don’t see these options, you’ll just need to quickly adjust a setting. Click on your account in the bottom left and select “settings”. 

Select “Beta Features”, and enable plugins. 

Then return to the chat and hover over GPT4 again. Click on “plugins” to allow ChatGPT to incorporate plugins like Zapier into its responses. 

At the top of your chat window, you’ll see a message that either shows your currently selected plugin, or will say “No plugins enabled” if you haven’t added any plugins yet. Click on this message, then choose “Plugin store”. 

Search for Zapier, or select it from the list if it appears as a featured result. 

Then, log in to your Zapier account if you aren’t already signed in, and authorize it to connect to your ChatGPT account.

 

The plugin will then immediately take you to an “actions” screen. This is where you’ll see any Zapier actions that you’ve created for ChatGPT to use. You can also use this page to create new actions, or edit and delete your existing actions. 

Add an action to the Zapier plugin

Let’s create a new action so we can set up a task for ChatGPT and Zapier to perform. This action page that Zapier opens up is currently the only place you can manage your actions. 

There’s no menu item for it yet in Zapier’s main app. If you need to find the page again later, just go to https://nla.zapier.com/openai/actions

Search for your app and action

From the actions screen, click on “Add a new action”. Then, you’ll need to search for the automated action that you want Zapier to set up for ChatGPT. 

This is a little different from your typical Zap setup. Instead of picking an app and then picking an action, you’ll have to search for both at once. 

In our example, we’ll set up a simple action that lets ChatGPT send emails through a Gmail account. We’ll search for “Gmail: send email”, and select the appropriate action once it appears in the results. 

Configure your action: set specific values, or let the AI guess

Once you choose the action you want to use, you’ll need to configure it. 

Zapier will display a small selection of the most important options for configuring the action, but you can click on “Show all options” to see the rest.

For every field, you’ll essentially have the option of providing a preconfigured piece of data or letting AI guess what to use. 

How you fill in these fields will depend largely on the action you want to set up. You’ll need to consider the scope of what you want to do with the Zapier plugin. 

For instance, if we want to set up an action to always send emails to the same recipient, we could provide that recipient’s address in the “To” field. 

But if I want to be able to ask ChatGPT to send emails to anyone, it’s better to let AI guess what contents to use for the “To” field. 

You can also choose to not include a value for each field if you want to ensure that ChatGPT always leaves it blank. 

We’d recommend trying out a few different settings to see what works best for your scenario. While the plugin is in beta, any tasks it uses won’t count against your total in Zapier, so you should feel free to experiment. 

However, the messages will still count against your 3-hour message limit in ChatGPT. 

For now, we’ll stick with a simple setup. we’ll just connect our GMail account, and let AI guess for all of the rest of the values. 

That way, we can use the prompt to tell ChatGPT who to send the email to, who to CC, and what the content should be. 

To finish setting up an action, just click on “Enable action”. If you want to edit or delete any of your actions, just return to the actions page

Send a prompt in ChatGPT to trigger your action

Now that we have an action enabled, let’s send a prompt and try it out. 

First, make sure that you’re using ChatGPT4 with plugins enabled, and that the Zapier plugin is selected. 

Then, send a message that’s relevant to the action you’ve configured. For example, we’ll send a prompt that says:

“Send an email to xraytutorials@gmail.com. Ask XRay to schedule a meeting next week to discuss our next Zapier tutorial. The tone of the email should be professional and friendly.” 

Now, ChatGPT will start processing its response. It can take a few seconds for it to get going, and you’ll see this message about using Zapier at least once. 

Wait a few moments for ChatGPT to finish composing its response. The exact text will vary, but if you’ve asked it to perform an action that you’ve configured, it should tell you that it prepared the action with Zapier, but you need to review its output and confirm it first. 

Click on the link that ChatGPT provides and check its work. You can edit any of its choices, and click on “Run” once you’ve determined it’s ready to execute. 

This message looks good, so we’ll click on “run” without editing anything.

When we check the XRay Content inbox, we can see the email that Zapier and ChatGPT just sent. 

Asking GPT to create a Zap for you

In many cases, ChatGPT will offer to set up an automation in Zapier to automate the task in the future. Unfortunately, this isn’t quite as useful as it sounds.

While the Zapier plugin for ChatGPT can actually create a new Zap for you, it typically won’t be able to reliably configure the steps. 

We’ll ask Zapier to create an automation just as it offered to. We’ll specify that it should be scheduled to run every Monday at 3:05PM. 

ChatGPT tells us it’s created a Zap that matches our parameters. We’ll click on the link it gave us to check it out. 

As we can see, the automation isn’t actually scheduled; the title has just been edited. No other settings have been configured. 

As in these examples, you’ll usually need to fill in all of the fields, and fix any errors it made in the setup. 

Hopefully, Zapier will continue expanding this plugin. It would be awesome to build Zaps entirely with natural language prompts. 

But for now, it can really only create basic placeholder Zaps. 

Sending prompts for multiple actions

That covers all the basics of using the Zapier plugin in ChatGPT, but before we wrap up this tutorial, we just want to show you one more thing.

We’ve already seen how the plugin handles a single action and prompt, but you can also set up several actions and have ChatGPT draw on all of them as needed.

Let’s see what that looks like in practice.

We’ll quickly create two additional actions: one to find files in our Google Drive account, and another to send direct messages to a Slack channel.

Then, we’ll ask ChatGPT to search for a file containing this text: “GPT Plugin Test”. 

Just as before, we’ll have to click on the link and confirm the operation. 

Since this action is a search, we’ll also have to manually send a message confirming that GPT should run the action. Once we do, it finds a few files that match our search term. 

Now we’ll ask it to send those files’ URLs in Slack. 

Once again, we’ll need to confirm the action.

And now we’ve got the links in Slack. 

With all of the required approvals, the process doesn’t necessarily save that much time, but it does prevent needing to open up several different apps to perform the task. 

Setting up several different actions will definitely make your Zapier plugin in ChatGPT much more useful. 

Unlocking new possibilities with AI and automation

Exciting new AI tools and use cases are emerging every day. New options like the Zapier plugin for ChatGPT are still in the early days of development, but they hold tremendous potential. 

It might be a bit clunky today, but with a plugin like this, we’re seeing the beginnings of a legitime virtual AI assistant that can find files, send messages, and perform all sorts of productive tasks. Check it out today to see what’s possible. 

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

Tutorial
July 12, 2023
How to Use “Repeating Groups” in Airtable Automations

Airtable automations let you get more out of your data, turning tables and spreadsheets into launchpads for automated workflows.

A recent update to Airtable automations has introduced a simple but extremely useful feature. 

In this post, we’re going to show you how to use the “Repeating Groups” function in Airtable automations, and we’ll give you a couple of detailed examples so you can follow along and see it in action. 

Let’s get into it. 

Overview

First, we’ll give you a quick overview of how it works. Then, we’ll walk you through the process in more detail. 

1. Create an automation in Airtable. Use any trigger you want. 

2. With your trigger or another step, retrieve a piece of data that you can use as a list. This can be a linked record, a multiple select field, or a set of records found with a search. 

To begin, create an automation in Airtable. You can use any trigger you’d like. 

3. Add an action, and choose “Repeating Group” under “Advanced Logic”. 

4. Connect the Repeating Group to the list you want to use. 

5. Finally, add any actions that you want the automation to repeat for every item in the list.

Whether your list has 1, 50, or 1,000 items, the actions you add to a repeating group will repeat for every single one of them. This is a great way to build flexible automations that can accommodate a variable number of items. 

Limitations of repeating groups

Just note that you can’t add any individual actions after a repeating group. Any action that you want the automation to only perform once needs to go before the repeating group. 

You also can’t include a conditional logic module in the same Airtable automation as a repeating group.This will hopefully change in the future as Airtable continues to update their automations, but you should be aware of the limitation for now. 

Now let’s dive deeper into repeating groups with a detailed walkthrough and a couple of example automations. 

Our first example will explore how you can use repeating groups with linked record field or multiple select fields. The second example will demonstrate how you can use several records returned by a search action in a repeating group. 

Example Automation: looping through every item in a linked record

For our first and main example, we’re going to build an automation to alert users whenever they’ve been assigned a new task from our task management system. 

In this “Team Tasks” table pictured below, users are assigned to tasks with a linked record, and more than one person can be assigned to the same task. 

The automation will run whenever a new task is submitted through the table’s form view, and, using the repeating groups feature, will send a separate Slack alert to each person on the task.

In the automation you’re building, make sure you have a linked record or multiple select field that you can use in the same way that we’re using the “Assignee” field in our example. 

Configuring the automation trigger

To get started, create a new automation. 

You can choose any trigger you want. In our example, we’ll use a “When a form is submitted” trigger. We’ll select “Team Tasks” as the table we want the automation to watch, and “Task Form” as the form. 

Test the step to make sure the automation can successfully retrieve a record. 

Ideally, you should choose a record that has multiple items in your linked record or multiple select field.

It’s not strictly necessary, as a repeating group will work with any linked record or multi-select field, even if it only has one item. 

However, it will be easier to confirm that the automation has run correctly if you test it with multiple items instead of just one. 

With that in mind, we’ll choose a task with more than one assignee. 

If your trigger test was successful, your automation should have retrieved a record with a linked record field that you can use as a list. 

Adding a “repeating group” step

Once your trigger is all set, you can add the “repeating group” function to your automation. 

Click on “Add advanced logic or action”. 

Select “Repeating Group” under the “Advanced Logic” section at the top of the list. 

Next, you’ll need to choose the list that the automation should use. Click on the “Select input list” button. 

A “use data from…” window will pop up, letting you select a list from data retrieved earlier in the automation. Since the only earlier step in this automation is the trigger, that’s the only step we see here on the left. 

On the right, you’ll see the fields retrieved in that step. Most of them are grayed out and can’t be selected, since these field types can’t contain lists. 

In our example, our only choices are “Department”, which is a multi-select field, and “Assignee”, which is a linked record field. We’ll select “Assignee”. 

Once you’ve picked the field you want to use as a list, click on “Test input list”. The test should successfully retrieve a list, and you should see 2 or more items enumerated in the list. 

When you click on any of these numbered items, you can see more detail about it. In this case, since we’re using a linked record field, we can see the record ID and the record’s name. 

Adding actions to your repeating group

If your test looks good, then you can add an action to your repeating group. You can add any action that you’d like to a repeating group; just remember that it will run for every item in the list. 

For our example, we want to send a Slack alert to each assignee, so we’ll select Slack and pick a “Send message” action.

Now, you can configure your action like any other automated action in Airtable. We’ll choose our Slack account, and compose a message, using a mix of static and dynamic data. 

Our message will start with some static text: “Hello, you’ve just been assigned a new task.” Then, we’ll insert data from the trigger to include the task title and a link where the user can view the task. 

We’ll also insert data from the current item in the repeating group to add the user’s name. 

Then, we’ll finish configuring this step by adding a name and an icon for the bot. 

Once you’ve configured your action to your liking, you can generate a preview to see what its output will look like. 

However, the preview will only show a sample for the first item in your list. Unfortunately, you also can’t use the “test automation” function for any automation that includes a repeating group. 

Instead, you’ll have to run a quick live test. 

Testing your repeating group and actions

Turn the automation on, then perform whatever event is necessary to trigger your automation. 

For our example, we’ll add a new task with the “task creator” form, and we’ll be sure to add two assignees. 

After we submit the new task and trigger the automation, we can see two automated Slack messages in the #tutorials channel. Each one is addressed to a different user. 

If this were a real automation, we would want to send a DM to each user individually. But by just including the names, we can confirm that the repeating group processed each item individually. 

That covers everything you need to know about using repeating groups with Linked Records or Multi-select fields. Let’s wrap up this tutorial with a quick look at using a list of records from a search instead. 

Example automation: looping through search results

Since we already covered the nuts and bolts of building an automation with a repeating group, we won’t repeat all of that detail again.

Instead, let’s just look at how you can add a search step to your automation to find records, and use the search results as a list. 

From there, the automation will work in exactly the same way. 

Adding a search to your automation

Expanding on our task alert example, let’s say we want to send a message to the whole team every Monday at 9:15 AM alerting them of all the tasks that are incomplete and marked “urgent”. 

We’ve already set up this trigger for an automation that will run every Monday at 9:15. Once again, you can use any trigger you’d like. 

Next, add a “find records” step and search for any records that match the conditions you’d like to search for. 

In our example, we’ll search for any tasks that are marked “High” priority and not marked “Done”. 

Once your search step is configured, test the action, and you should see a list of matching records. 

If your search was successful, add a repeating group action. Then, click on “Select input list” and use your search results as a list. 

Finally, you can add any actions that you want to repeat for each item in your list. In our example, we’ll create a similar Slack message and finish building the automation. 

Once again, you’ll need to run a live test to confirm that everything worked. In this case, since this is a scheduled automation, we’ll just change the scheduled time to be a couple minutes from now, turn our automation on… 

…and right on time, we get a Slack message for every incomplete and urgent task. 

Build more reliable, flexible automations with repeating groups

Even in the world of no-code, iterating is an essential function for ensuring that our automations are flexible enough to handle variable data. After all, automations that can’t respond to real-world circumstances simply won’t be useful for anyone. 

Repeating groups are easy to set up, and will make your Airtable automations much more effective, so try them out today. 

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

Tutorial
July 5, 2023
How to Add Automatic AI Prompts to Zapier Automations

No-code automation is a great way to automate repetitive tasks at work. 

Until recently, though, it’s not been possible to create entirely new data inside of a workflow automation. 

Using conventional automation techniques, you can only duplicate existing data, or combine existing data to create new values. 

But now with AI, your no-code automations can generate summaries, outlines, entire blog posts, and more. In this post, we’re going to show you how to add automated OpenAI prompts to your Zapier automations. 

We’ll use an example that updates tasks in Asana, but the same principles apply to any apps that you can automate with Zapier.

The key components in this tutorial are really Zapier and OpenAI; the other apps you use are entirely up to you. 

Now let’s get started.

A brief overview of automating AI prompts in Zapier

First, we’ll give you a brief overview of the entire process. Then, we’ll walk you through each step in more detail. 

1. First, you need to create a new Zap and add a trigger event

2. Optionally, you can add actions and searches to gather additional data.

3. Add an OpenAI action, and choose “Send Prompt” as the event. 

4. Connect your OpenAI account to Zapier. You will be billed a very small amount to use the OpenAI API. 

5. Configure your OpenAI action, and enter your prompt. Be sure to include dynamic data where appropriate. 

6. Send the AI response to any other app that you’d like. Save it in Drive, update a record in Airtable, send it to Slack, etc.   

Note that you can also use a ChatGPT step instead of OpenAI if you’d prefer. 

Both apps in Zapier will work in largely the same way, but you will see a few different options for each. 

For this tutorial, we’ll be focusing on the “OpenAI” app. 

Now, let’s look at automating OpenAI prompts with Zapier step by step.

Add a trigger and gather other required data with actions, searches

First, you’ll need to create a new Zap and add a trigger. 

We’ll go over this part of the automation quickly, since it’s not really the main focus of the tutorial. However, If you’re not familiar with using Zapier in general, you can check out our beginner’s guide to learn the basics

You can select any trigger event that suits the automation you want to build. For instance, If you want your OpenAI prompt to summarize an email, you’d probably use something like a GMail trigger. 

In our example, we want OpenAI to generate a new description for every task that we add to an Asana project, using the tasks’ details as a basis for its response. 

After it generates the description, we’ll have it update the task with the new information. 

To set up that automation, we’ve already created an Asana trigger that watches for new tasks in a specific project. 

Once you’ve set up the trigger you want to use, be sure to test it and confirm that it’s able to find some data. 

Optional actions and searches 

Next, if you want to use any additional data for your prompt that can’t be found in your trigger, you’ll need to add one or more action or search steps to find that data.

In our example, we’ve added an Airtable search step to look up the client and project associated with the task. This information, which includes attributes like the project start and end date, may help to inform the AI-generated description. 

In your automation, you might be able to gather all the data you need in the trigger. But if you do need your automation to grab some extra data that will go into your prompt, just remember to add these steps before the prompt. 

If you’ve added any additional steps, test them out to make sure they’re working properly. 

Once you have all the data you need to feed into your prompt, it’s time to add an action that will create and send that prompt. 

Add an OpenAI step to Zapier and configure your account

Add a new action to your Zap. Choose OpenAI as the app, and select “Send prompt” as the event. 

Now, you’ll need to connect your OpenAI account to Zapier. If you don’t already have an OpenAI account, open up a new tab to create one at openai.com

As we noted in the overview, sending OpenAI prompts through Zapier will incur a charge on your OpenAI account. 

The exact price will depend on the language model you use, but will ultimately come out to a few cents per prompt at most. 

Additionally, new OpenAI accounts include a $5.00 API credit, but this does expire after a few months if it isn’t used. In the end, the cost to access OpenAI’s API is very small, but it’s worth noting that it isn’t free. 

You can learn more about the pricing structure on the OpenAI pricing page

If you’re comfortable with the charges you’ll be responsible for, go to platform.openai.com to finish connecting your account to Zapier. 

Click on your account name, and select “View API keys”.

Click on “Create new secret key” to generate a key that will let third-party apps like Zapier access your OpenAI account. 

Copy that key, and return to your Zap. 

Click on “Connect a new account”, and paste the key you copied earlier. 


The popup should close, and return you to your Zap in progress. Now, you can start configuring all of the necessary settings for your OpenAI prompt step. 

Configure the OpenAI step and write your prompt

First, you’ll be asked to choose the model that you want to use for the prompt. Zapier defaults to using the “DaVinci” model, and recommends it for most use cases in your Zaps. 

However, there are several other models that you can choose from under the “Model” tab. If you’d like to learn more about each model and the cost to use it, you can check out OpenAI’s pricing page again. 

Write your prompt for the AI to process

Next, you can start crafting the actual prompt that you want to send to OpenAI. Your prompt can include both static text entered directly into this field, and dynamic data retrieved from the trigger and earlier steps in your Zap. 

In other words, you can enter a prompt here exactly like you would with ChatGPT, but you can also replace some words with Zapier data instead of static text. 

Be sure to note the style and tone that you want the AI to use as well as the content that you want it to generate. 

In our example, we’ll use this prompt to ask the AI to generate a task description:

“Create a description for the following task based on the information provided. Your description should consist of 1-3 short sentences describing the task and its parameters. Include a brief assessment of the task’s urgency based on the information provided.

Write in the second person, and use a friendly and professional tone, like you’re speaking to a coworker.”

Add dynamic data to your prompt

After the main part of the prompt, we’ll include the task’s key attributes, identified with simple labels. 

By including dynamic data like this, we can ensure that the prompt describes each individual task that runs through the automation

Note that you may need to go back and adjust your prompt after testing it out. When you’re dealing with AI, it’s often a game of trial and error.

If you want to avoid the very small charges, you can use ChatGPT to test your prompt. However, ChatGPT may be using a different model than what you've chosen in Zapier.

Set the model’s temperature

Next, you can set the model’s temperature. The temperature can also be thought of as the model’s “Creativity”. 

The higher the number, the less predictable the results will be. Additionally, as you set the temperature higher, the likelihood of inaccurate “hallucinations” increases as well. 

Whenever you’re dealing with AI, there’s no guarantee of accuracy, but you should probably go for lower numbers (maybe even zero) if you want more accurate but less creative answers.

Choose a maximum length (optional)

The next setting is “Maximum length”. 

This sets the max length of the AI’s response in tokens. With OpenAI language models, 1,000 tokens are roughly equivalent to 750 words. 

You can change this setting to whatever you’d like, but note that most models have a limited number of tokens that they can process as context. Even if you set your max higher than that number, the limit will still apply. 

By default, Zapier will attempt to auto-calculate the context limit and use that as a maximum length. You can search for more info about the model you’re using if you want to know more about exactly how it works. 

Provide a stop sequence (optional)

Next, you can enter an optional stop sequence. If you enter a stop sequence, the AI will stop generating an answer once it produces the same characters as you’ve provided in your stop sequence.

For example, your prompt may ask the AI to generate a numbered list of app name ideas. If your stop sequence is “7.”, the model should stop after it produces the characters “7.”

Then, it will remove the stop sequence from its response. 

If you don’t want to add a stop sequence, and you probably won’t in most use cases, you can just leave this field blank. 

Top P, Frequency Penalty, and Presence Penalty

Finally, let’s take a look at these last three settings: Top P, Frequency Penalty, and Presence Penalty.

These are all advanced options for adjusting the output of the model. You can tweak these options to make the model more or less repetitive, for example.

You can read the descriptions provided in Zapier for more info, but you probably won’t need to change these for most use cases. You can start by leaving these fields with their default values, and adjusting them later if you want to fine-tune your results. 

Test your OpenAI action

Once you’ve configured the OpenAI action as desired, give the step a test. You should see OpenAI’s response to your prompt, along with a lot of other data. 

Note that if you’re using dynamic data to populate this step, the AI’s answers may be quite different each time. 

The test should give you a general sense of how it will respond, but expect some variation each time the Zap runs with different data. 

Among the other data, you can also see things like how many tokens the prompt used. 

After reviewing the test data, you can adjust your OpenAI prompt as needed. Once it’s ready, you can add an additional step to your Zap to share, edit, or otherwise use the AI-generated answer. 

Send your prompt to other apps

Add a new action to your Zap. 

You can add an action in virtually any app that you want to use. You could send the prompt in a Slack message, add it to an email, enter it into an Airtable record, or anything else you want to do with it. 

For our example, we’ll add a new step to update our original Asana task with this new description.

To find the right task, we’ll enter the ID of the task that triggered the automation into the “task” field. Then, we’ll leave most of the fields blank.

By leaving them blank in this “update” step, we’re essentially telling Zapier to leave those fields as they are. It won’t delete the contents that are already there. 

We’re only going to update the “notes” field by adding in the ‘Response’ value from the OpenAI step. The ‘Response’ is the answer that OpenAI generated for your prompt. 

If you want to send the AI’s answer to another app, this is the piece of data you need to look for. 

Once you’ve configured your step to your liking, give it a quick test. 

In our example, we get a success message in Zapier. 

Then, when we open up Asana, we can see the task updated with a new description. 

If your Zap ran correctly, turn it on and publish it. Now, whenever your trigger condition is met, Zapier will automatically send a prompt to OpenAI exactly as you’ve configured it to. 

Discover new possibilities in your Zaps with AI

AI is rapidly unlocking all sorts of new possibilities in workflow automation. Now, as automators, we’re no longer limited to working with existing data. 

We can use AI prompts to generate, edit, and summarize new content, and we can use automation providers like Zapier to send the answers to any app we want. 

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

Tutorial
June 28, 2023
8 Ways to Trigger Automations in Airtable

Airtable is more than just a database app. With extensive workflow automation features, you can use Airtable to streamline your processes and start automating your repetitive tasks. 

If you’re new to Airtable automation and wondering how to get started, this post is for you. 

We’re going to show you the 8 different ways you can trigger automations in Airtable, and explain the best use cases for each as we explain the pros and cons of every technique. 

When a record enters a view

We’ll start with one of the most versatile and effective triggers that Airtable offers: “When a record enters a view.”

Here’s how it works: your automation runs whenever a record appears in your designated view. 

Imagine, for instance, that your team is tracking content creation through Airtable. When an article is marked "Ready for Review," it enters the view labeled "Needs Review", which in turn triggers your automation to run. 

This approach is particularly effective if you are aiming for high transparency and an easily accessible, maintainable automation.

Anyone on your team, even those with no prior experience with automation, can refer to the view and check its filters to understand when the automation will be activated. If you want to update the automation to run under different conditions, you simply need to update the view’s filters. 

However, it's important to remember that having easily editable views can also be a downside.

You wouldn’t want to attach an automation to a view that everyone on your team can – and frequently does – edit. That could lead to the automation running at unexpected times with the wrong data. 

To keep everyone in the loop, we’d always recommend copying the automation URL for any “When record enters view” automation into the description of the view that triggers it. 

You can find an automation’s URl by opening the automation editor and selecting the dropdown menu next to the automation’s name. 

Then, return to the “Data” tab, and open the related Airtable view. Click on the view’s name at the top of the table to access and edit the description.

 

Note that you won’t be able to click on the link directly from the view description in the sidebar. You’ll have to edit the description to make it work as a hyperlink.

You’ll want to make sure to clearly document the automation, but all-in-all, “When a record enters a view” is an extremely useful trigger, and it’s often the best place to start when you’re building an automation in Airtable. 

When a record matches conditions

The next trigger we’ll look at is "When a record matches conditions." This is similar to "when a record enters a view," but with this trigger, the automation runs whenever a record matches the specific conditions that you configure within the automation itself, rather than conditions within the table. 

Continuing with our content creation example, we could build an automation with this trigger that runs whenever this “Status” field is set to “Ready for review.”

This method is ideal when you want the automation to work for the entire table, and not just a specific view.

For instance, you might have organized your content table into different views for “Interviews” and "Tutorials," but you want the review process to be consistent across all of your content. 

It’s worth noting that this kind of trigger isn't as immediately visible or accessible as a "when record enters a view" trigger. 

However, this can sometimes be the better choice, since it's less likely that team members will accidentally edit the conditions that control the automation. 

On the flip side, it might be a bit easier to accidentally trigger the automation. To help prevent accidental automation runs, you can attach the automation’s URL to the description of the relevant fields. 

Like the “record enters a view”, the “matches conditions” trigger is highly versatile, and a great starting point if you’re not sure where to begin. 

When a record is created

Now, let's look at the "When a record is created" trigger. This is similar to the previous two triggers, but it has an even broader scope. 

This trigger activates whenever a record is created in the specified table.  This means it will activate for every single record created in that table, even if the record is blank or incomplete, which could make automation runs unreliable in many circumstances. 

This trigger can be useful if the records are being created by a separate automation, or being synced from an external source like Salesforce or Google Calendar, since you know that all of those records will be complete from the moment they’re created. 

In a table where you’re adding records manually, you could use this trigger type to automatically add templated content to your fields. 

For example, in a content creation database, you may want every new record to start with some templated descriptions like, “This post is about…”

You could set up a “Record Created” automation, and add a step to add the templated text to the “Description” field of every new record.  

Whenever you create a record, those fields will be automatically filled in with your preconfigured content. 

If you find that the “Record created” is just too broad, you could also add conditional logic to your automation to ensure that subsequent steps only run if certain conditions are met.

However, if you’re doing that, you may as well just use a “new record in view” trigger or a “matches conditions” trigger instead. It’s much easier to set up conditions and filters when you’re using those triggers. 

Ultimately, the “record created” trigger is worth considering for a few specific circumstances, but probably won’t see much use in your Airtable automations unless you’re syncing data to Airtable from another app. 

Additionally, if you’re doing a lot of data syncing in Airtable, you’ve got to try Data Fetcher. It’s a useful Airtable extension dedicated entirely to syncing data to your tables from external sources. 

When a form is submitted

Let's move on to the "When a form is submitted" trigger. 

This one is pretty much exactly what it sounds like; it runs whenever someone submits a response to a specified Airtable form.

If you're not familiar with Airtable forms, it's a tool that allows you to create a form for any table by simply adding a form view, editing the survey it creates, and opening up the shareable link. 

This automation trigger can be useful for alerting your team whenever someone has responded to one of your forms. 

For instance, you could use an automation with the form trigger to send an automated Slack message whenever a new lead reaches out to you on your website. 

You could also use a "new record in view" trigger to achieve similar results, but if someone adds a new record directly to that view, the “new record in view” automation would still run and may encounter an error.  

The form trigger is ideal if you want to ensure the automation only runs for form submissions.

If you have any kind of Airtable contact form or survey on your company’s website, we’d definitely recommend checking out this trigger. 

When a record is updated

Next up is the "When a record is updated" trigger. 

This one activates whenever a record is updated, or more specifically, whenever any of your specified fields are updated.

The “record updated” trigger is best suited to creating a sync between two data sources. 

For example, let's say different departments in your company are using different task management systems. Your content tasks are managed in Airtable, while your engineers are using Jira. 

To facilitate collaboration, you want both teams to be able to see each other’s tasks and view each other’s progress. 

With a “record updated” trigger, you can build an automation that runs whenever a record is updated in your Content Tasks table. 

Then, those updates can get pushed to a similar database in Jira. 

To pull updates from Jira, you’d likely need a scheduled automation in Airtable to go fetch the information from Jira. We’ll cover the scheduling trigger next. 

If you need to sync lots of information consistently, you could also look into tools like Whalesync or Unito for more robust syncing functionality. 

Much like the "record created" trigger, the "Record updated" trigger is very sensitive, and any update you make to any record will make the automation run. But as with any automation trigger, you can use a conditional logic step to prevent automated actions from running if certain conditions aren’t met.

Run automations at a scheduled time

Sometimes, you don’t want your automations to be contingent on specific events or circumstances. Sometimes, you just want to have an automation run at set intervals. 

With the “at scheduled time” trigger, you can do just that. 

Just choose the interval and timing you want to use, then add the actions that you want the automation to perform. 

For instance, let’s say you’re managing your team’s tasks in Airtable. Every monday at 9:30 am, you could send a Slack message with a run-down of any urgent and incomplete tasks. 

To facilitate that automation, you could create an “Urgent and incomplete” view in your Tasks table. 

Then, add a “find record” step after your automation’s trigger, and use that step to search for all records in the “Urgent and Incomplete” view.

Next, you would just need to add a “repeating group” step to repeat an action for every item in a list. In this case, you would use all the records retrieved in the “find record” step as your list. 

Finally, you would just need to add whatever actions you’d like to repeat for every item in the list, like sending a Slack message for every unfinished task. 

This example took a bit of work to set up, but with the scheduled trigger, it will now run automatically every Monday without requiring any additional work on our end. 

Scheduling automations is an easy way to set up an automated routine without needing to worry about particular events occurring. 

When a webhook is received

Every trigger we’ve discussed so far is firmly in the no-code camp, but this one is a little more technical. 

With the “when a webhook is received” trigger, you can prompt your Airtable automation to run whenever it receives a webhook. 

A webhook is an HTTP request that contains URL-encoded data. 

When you send a webhook to a web application like Airtable, you can have it perform certain actions based on the data attached to your request. 

Triggering an airtable automation with a webhook is a bit more advanced than the other triggers we’re looking at today, so we’ve made a separate tutorial covering it, which you can check out here

In general, a webhook trigger is great if you want to send data to Airtable from another app, and immediately perform automatic actions with that data, like creating a new record. 

Webhook triggers are a little trickier to learn than the rest, but they’re great for building a comprehensive automated infrastructure for your team. 

When an interface button is clicked

The final trigger we’ll look at today is “When a button is clicked”. 

This trigger will let you run your automations on demand with a single click. 

Right off the bat, it’s important to note that this automation only works with buttons created in an Airtable interface, and not with buttons created in a data view. 

To use the “button clicked” trigger, you’ll need to create an interface first. If you want to learn more about creating interfaces, you can check out the last section of our Airtable Beginner’s Guide post. 

Once you’ve created an interface, you’ll need two elements to make the button-triggered automation work. 

First, you’ll need a “record picker” element connected to a table that you want to reference in the automation. 

Second, you’ll need a button element, set to “Run an automation”.

With both of those elements in place, you can attach your button to your automation, and the automation will run with the selected record from the “record picker” element.

For instance, we could set up another automation to send reminders about urgent tasks.

But instead of sending reminders to everyone, we can pick an individual employee with the record picker.

Then, when we click on the button, the automation will send them a personalized reminder about their urgent, unfinished tasks. 

Automated buttons are a relatively new feature and might be a little awkward to set up, but they can be very useful for creating automations that only run when you choose to run them.

Choose the right trigger for your circumstances

With eight different ways to trigger your automations in Airtable, there’s something for every circumstance. 

Whether you want to schedule your automations to run in the background, connect them to a form or a view, or even launch them with the click of a button, Airtable’s got you covered. 

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

Tutorial
June 21, 2023
How to Build a No-code AI Chatbot in Zapier

How would you like to build your own AI Chatbot without writing a single line of code?

With Zapier’s Interfaces tool, you can get a fully functional chatbot up and running in a matter of minutes. 

In this post, we’ll walk you through the process of building and configuring an AI Chatbot in Zapier step by step. 

Unlocking new possibilities with Zapier Interfaces

Until recently, it wouldn’t have been possible to create a chatbot like this with Zapier. But now with their new Interfaces feature, Zapier is evolving from an automation provider to a full-stack application development platform. 

There are some serious technical limitations with this Zapier chatbot, as many of the underlying features are still in beta, but it will only get better and more functional from here. 

How it works

Building a no-code Chatbot in a Zapier interface is very simple and only takes a few minutes. 

We’ll give you a quick overview of how it works now, then we’ll walk you through the whole process with a detailed step-by-step guide.  

• First, you’ll create a new interface in Zapier. 

• Then, add a Chatbot component to one of the interface’s pages. 

Configure your Chatbot’s settings to your liking by providing a title, a directive, and other useful options. 

• Open up your live page to test out your Chatbot

• Once everything is all set, copy the link to share it with anyone on the web. 

Now, let’s take a closer look at each of these steps. 

Getting Started with Interfaces in Zapier

As we’ve already alluded to, building an AI Chatbot in Zapier will lean heavily on Zapier’s recently added Interfaces.

So what is an interface in Zapier?

An Interface creates a simple UI where users can interact with several Zapier automations or other tools that you’ve built through a web page. 

You can add chatbots, forms, links, and other components to your Zapier interfaces. 

Interfaces are a great option if you’ve been looking for a simple way to package and share your Zapier automations with coworkers. They’re especially useful if you're not already using an app like Airtable that can offer similar features. 

The core features of interfaces are accessible with any Zapier account. However, some features will require a premium interfaces plan, which is in addition to your main Zapier subscription. 

For instance, if you want to use custom URLs and remove Zapier branding for your interfaces, or even have your chatbot provide longer responses, you’ll need a premium plan. That said, everything we cover today can be done with a free interfaces plan, so you can explore these new features without having to spend anything upfront. 

Creating an Interface for your Chatbot

To get started with making a custom AI chatbot in a Zapier interface, log in to Zapier, and select “Interfaces” in the menu on the left. 

Create a new Interface, and choose “Start from Scratch”. 

The interface will start with a blank page simply titled “Page”.

Interfaces, pages, and components 

Just to clarify some of the structure and terminology used here, an interface consists of one or more pages. Every page will have its own URL, and can hold several components, such as a chatbot, a form, or a table. 

To start creating your chatbot, add a new component to your first page, and scroll down to “Chatbot”. 

When you select Chatbot, you’ll get this pop-up warning you that the Chatbot component is an experimental feature that’s subject to change. 

That’s fine; just keep in mind that any interface you build with a chatbot may change as Zapier updates the beta features. Click on “Yes” to continue. 

Configuring your chatbot

Now, you’ll see a new chatbot component configured with Zapier’s default settings.On the right, you’ll have a panel where you can customize our Chatbot’s functionality and display settings. 

For our example, we’re going to configure this Chatbot to be an automation brainstorming tool. When a user gives it the names of a few apps, the Chatbot should provide a list of ways to automate those apps with no-code tools like Zapier. 

Setting the chatbot’s name, directive, and greeting

First, you can set a name for your Chatbot. We’ll call ours “Automation Brainstormer”. 

Next, let’s skip ahead to one of the most important parts of the Chatbot: the directive. The directive is where we can tell the Chatbot what to do. We can tell it what kind of answers it should give, the tone it should use, and the overall identity that it should assume. 

In general, the more detail you can provide in your directive, the better the Chatbot will perform to your specifications. Filling out the directive right away will make it easier to configure your other settings and test your Chatbot as you continue building your page. 

Here’s a directive we’ve already written up for our Chatbot: 

“You are a workflow automation ideas bot. You help knowledge workers to brainstorm ways that they can automate their work to create time, produce more reliable results, and become more confident in their day-to-day work. When users give you a list of two more app names, such as ‘Hubspot and Slack’, you suggest a list of 5-10 ways that they could automate those applications using no-code tools like Zapier.

You also suggest ways they might build automations using native automation features in those applications. 

Your suggestions are focused on professional use cases. 

You provide your suggestions with a friendly and helpful tone.”

If you’d like to use that directive as a starting point for your own Chatbot, just copy and paste it into your configuration menu. 

Next, you can choose a default greeting for your chatbot to use. You can either provide a static greeting that will be used every time, or you can open up this dropdown and select “Generated” to use an AI-generated greeting instead. 

Here’s a good example of why you should fill out the directive early on. With the directive already provided, you can ask the Chatbot to describe what it does, and it can actually give an answer based on its directive. 

For instance, we’ll have our chatbot greet users based on the prompt “Greet the user and describe what you can do.”

Let’s take a peek at our live page to see what that looks like. If you want to look at your live page at any time, just click on the page’s URL in the top left. 

As soon as we open the page, the chatbot greets us exactly as we asked it to. It describes what it is and what it can do, and tells us to list some apps to get started. 

And if we refresh the page, we get a similar but slightly different response. 

Using a generated greeting can help to easily add a little more personality and detail, but it does run the risk of being a bit inconsistent. Just choose whichever you think is more appropriate for your use case. 

In our example, we’ll stick with the generated greeting; we want to show off what the chatbot can do right from the get-go. 

Now let’s go back to the interface editor. 

Setting placeholder texts, language models, and your bot’s temperature

To resume editing any component, like your chatbot-in-progress, just hover over the component and click “Edit”. 

The next setting we need to configure is the “prompt placeholder”. This is just the static placeholder text that the user will see before they start typing a prompt. 

You can enter whatever you’d like here. For our automation brainstormer bot, we'll just add a message that says: “List two or more apps to get some automation ideas.”

We’ve already entered a directive, so next let’s look at “Model”. 

If you subscribe to the “Interfaces Premium” plan, you’ll be able to choose from different language models for your Chatbot to use. On the free plan, you’ll have to stick with OpenAI GPT3.5. 

Upgrading to the premium plan will also let you increase the max response length. On the free plan, you’re limited to responses of 2048 tokens, which is equivalent to about 1,500 words. 

Next, you’ll see a slider that lets you control the “creativity” of your chatbot. This setting is also often called the model’s “temperature” in other AI tools. 

The higher the number, the more creative the bot will try to be in its answers. That also means that you’re more likely to see hallucinations, or instances where the chatbot provides factually incorrect answers. 

Ultimately, if you want to build a Chatbot that’s more likely to provide reliable, factual answers, you should really set the temperature or “creativity” to 0. But whenever you’re dealing with a Chatbot, hallucinations are always a possibility. 

Since this bot is all about brainstorming, and we’re mostly just demonstrating the setup, it’s OK if it comes up with some ideas that aren’t totally accurate, so we’ll leave it at the default of 0.7 for now. 

Adding a disclosure message and editing your bot’s layout

Next, there’s a simple toggle that lets you choose whether or not to display a disclosure message. Zapier provides a default disclosure, which you can edit if you’d like. 

When you toggle it on, the chatbot will include this disclosure message at the bottom of every message it sends. 

If you want to be absolutely sure that your users know they’re interacting with an AI bot, including the disclosure is a good way to go. 

The last options in this “Content” tab are just a couple of settings to control the visual layout of the Chatbot component. With these options, you can change the width and alignment of your chatbot. 

Building a chatbot with specific data sources

You’re nearly finished configuring your chatbot. Let’s just take a quick look at the other tabs in your interface.  

Under “Data”, you’ll just see a “Coming soon” message (note: this will likely be updated after this blog’s original publishing date of 06/21/23). 

This feature isn’t finished yet, but at some point, you should be able to provide data that your Chatbot can use to inform its answers. 

This will help your chatbot to give more specific answers about your company or your product without having to write an extremely long, detailed directive. 

A current leader in chatbot storage is called Pinecone - but you’ll need to build a non-Zapier chatbot to leverage Pinecone. Chatbase.co might also be worth a look if you’re looking to create a Chatbot with an external data source right now. 

Alternatively, you can reach out to XRay if you’d like to build a chatbot for your company using custom data like your blogs, about us pages and more. We could even help you to build a bot for internal company use that leverages specific portions of your company’s data to assist your team in financial planning, project management, and more. 

Embed your chatbot and add automated actions

Under “Embed”, you can grab the HTML embed code for your page, but only if you have a premium interfaces subscription.

Finally, under “Actions”, you can connect your chatbot to some automated actions. For now, all of the actions have to be triggered with a button, and there are only two choices. 

You can configure the button to copy the text of the Chatbot’s message, or have it launch a Zap. 

For instance, you might want to build a Zap that will let the user send the Chatbot’s response to a Slack channel with a single click. 

For our automation brainstormer, we’ll just add a “Copy Message” button to our chatbot. 

To add a “copy message action”, just add an action and provide some text for the button and notification. 

Then, click “Create action” to add it to your chatbot. 

Test and share your chatbot

Now, you’re all set to test our Chatbot on the live page. Click on the URL to open up your page. 

In our example, our Automation Brainstormer Chatbot immediately introduces itself with a generated message. 

We’ll ask it how to automate Pipedrive, Shopify, and Microsoft Teams.

In just a matter of seconds, it comes up with a list of 8 ideas for automating these apps. 

Let’s see how it handles a follow-up question. We’ll ask for more information about Automation #1. 

Now, it provides a more detailed set of instructions for building the first automation it described. Not bad. We’ll click on the “Copy message text” button that we added to save that answer for later. 

Explore automation possibilities on XRay.Tools

If you’d like to try out a real automation brainstorming chatbot, just go to XRay.Tools and search for the apps you’d like to use. 

Select any app to view a detailed list of its available triggers, actions, and searches on Zapier and other platforms. On that page, you can also ask a dedicated chatbot for more information about the app’s capabilities, and API documents.

Build a simple no-code chatbot in Zapier

Building a no-code AI chatbot with Zapier Interfaces is a fast and easy way to leverage a helpful AI assistant for your team. It only takes a few minutes to get started, so try it out today. 

Just bear in mind that we’re working with a lot of experimental and beta features here! You’ll probably see lots of updates to these tools over the next few months, so be ready to adapt. 

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

Tutorial
June 14, 2023
Airtable Beginner’s Guide Part 2

When it comes to organizing data for your team, Airtable is one of the best apps available. With features like linked records, customizable filters and views, workflow automation, and visual interfaces, Airtable can completely transform the way you work. 

In this second part of our Airtable Beginner’s guide, we’ll give you a closer look at all of those features so you can start building and sharing more advanced databases. 

Creating 2-way associations with linked records

Let’s continue our deep dive into Airtable with a look at linked records and lookups. Linked records are a handy feature in Airtable that allow you to associate records between two different tables. 

This makes it easy to build complex relationships between your data, and ensures that your records stay organized and connected.

Here’s a quick overview of how linked records work:

1. Create two tables that you want to link. Both must be in the same base. 

2. In either table, create a new field. 

3. Choose “Link to another record” as the field type. 

4. Select the table you want to link to. 

5. Save your new Linked Record field. 

6. (Optional) Add lookup fields to display additional data from the linked record. 

Linked record example: associating clients and project managers

Let’s dive into further detail with an example. 

Let's say you have two tables in your Airtable base: "Clients" and "Project Managers". You want to be able to associate each Client with the Project Manager who is assigned to them. 

Here's how you can use linked records to accomplish this. 

In the "Clients" table, add a new field called "Project Manager". Set the field type to "Link to another record".

In the "Link to" section, select the table that you want to link to. In this example, that will be the "Project Managers" table.

When you save the field, you'll see a new column with the title "Project Manager" appear in your "Clients" table. This column will be a link to the "Project Managers" table.

To link a Client record to a Project Manager record, click on the cell in the "Project Manager" column for that record. 

A pop-up menu will appear, allowing you to select the Project Manager record you want to link to. Note that the dropdown menu displays each record using the Primary field as the label. 

This is another reason why we like to use a formula to populate the primary field, as we mentioned in the first part of this guide

By using a formula to name the primary field, we can ensure that the naming conventions are consistent, making it easy to find the record we need when we’re creating linked records. 

We can also quickly update those naming conventions by simply editing the formula, instead of renaming every record manually. 

Adding lookups to linked records

Once you've linked a Client record to a Project Manager record, you can access information from the linked record using lookup fields. 

To create a lookup field, add a new field to the table that already contains your linked records, and set the field type to “Lookup”. In our example, we’ll add a Lookup field to our Clients table. 

Under the “Configuration” section, select the linked record that you want to add a lookup to. In our example, we’ll choose the "Project Manager" field. 

Then, choose the field you want to look up. Note that you’ll need a separate lookup field for each attribute that you want to look up. We’ll start with Email in our example. 

Now we can see the Project Manager’s email address in the clients table whenever we add a PM to a record. 

Using linked records and lookups like this can help to prevent redundancies. You’ve already entered the data once in your other table; with a linked record, you don’t have to enter all the same data again. 

Plus, it lets you put the same data in multiple places without having to worry about inconsistencies. Whenever you update a record, the update will be reflected automatically in any record that links to it. 

Linked records vs. select fields

In many cases, you might not be sure whether you should use linked records, or just use a single- or multi-select field instead. 

In general, you should use linked records whenever you need to access additional attributes from the associated record, and not just a single label or value. 

If you only need that one piece of data, using a select field will probably be quicker and easier. 

Overall, linked records are a powerful tool that can help you organize and connect your data in Airtable. By linking records between tables and using lookup fields to pull in related data, you can create a robust database that is tailored to your specific needs.

Sort and manage your data with filters and views

With the addition of linked records and lookups, our base is becoming much more robust and useful. Now, let’s take it even further by adding some custom filters and views. 

Filters help you narrow down the records that are visible in a particular view, while views allow you to create different perspectives on your data. 

We’ll start with creating a filter.

Adding a filter to your table

You can add a filter to any Airtable view with a few quick steps:

1. Click on the “Filters” button at the top of any Airtable view

2. Add at least one condition

3. Save your filter. Any data that doesn’t match your condition(s) will be hidden from the view, but not deleted. 

To further illustrate these steps with an example, suppose you have an Employees Directory table which contains information about all the employees in your company. You want to create a filter that only shows new hires – employees who joined within the last month. Here's how to create that filter.

Open the Employees Directory table in Airtable, and click on the "Filter" button in the toolbar. In the window that appears, click on “Add condition” to add a new rule to your filter. 

Configure your filter condition. You have extensive options to filter for field contents and values which will vary based on the field type. In our example, we want to only display employees who have a “Date Hired” value that’s a month old or less.

We’ll set our condition to:

where “Date Hired” is on or after “1 month ago”.

Once you’ve configured your filter condition, click outside of the filter window to save your changes, and you'll see the filtered results in your table.

Now that you've created a filter to show new hires, you may want to create a new view that only shows those results.

Creating a new view for your filter

In Airtable, a “View” is a customizable way to display the data from a table. Each view can use its own type, such as Grid or Kanban, and can have specific filters and sorts that determine which data is displayed.

Here's how to create a new Grid view that uses the filter you just created. 

Under the “Create…” section in the left hand menu, click on “Grid”. Give your new view a name, and click “Create new view”. 

In your new grid view, click on “Filters” to add the same filter as before to this new view. 

Then, go back to the original grid view, delete the filter, and give it a name like “View All”. 

Now, you can just switch back and forth between these two views to see all employees, or just new hires. 

Note that filters and views will never delete data: they just sort or hide data temporarily based on your configured settings. 

Other view types: Kanban, Timelines, Forms, and more

These two views are pretty convenient, but grid views are just the start. 

Airtable also offers several other types of views that you can use to visualize and organize your data. Read on for a brief overview of each type. 

Kanban views

A Kanban view is a board-style view that displays records as cards, which can be dragged and dropped into different columns. 

The columns can be mapped to any single-select field, like a “Status” or “Priority” field. 

A kanban board is useful for visualizing workflows and progress, and is great for managing a tasks database. 

Timeline and Gantt views

A Timeline view is a chronological view that displays records as events on a timeline. This view is useful for tracking deadlines and high-level milestones.

Similar to a timeline view, a Gantt view is a view that displays records as bars on a timeline, and shows dependencies between tasks. 

Because of the dependencies, this view is useful for more granular project management and scheduling compared to a “Timeline” view. 

Gantt views and Timeline views both require a Pro account. 

NOTE: to use Timeline and Gantt views correctly, each record will need to have at least two date fields that can be mapped to “Start date” and “End date”. 

Calendar views

A calendar view is a view that displays records as events on a calendar, and allows you to filter by date range and other criteria. 

Calendar views are ideal for scheduling and planning, and can be a great way to make a content calendar or high-level schedule. 

Gallery views

A gallery view is a view that displays records as cards in a gallery, and allows you to customize the card layout and fields displayed. 

Using a gallery view lets you focus on an image attached to each record, and could be a great way to review design assets or media.  

List views

A list view is a view that displays records as a list, and allows you to customize which fields are displayed and in what order. 

A list essentially looks and works like a simplified grid. Lists are a convenient way to just display a title and basic info for each entry instead of a long list of fields. 

Of course, you could always just hide fields in a grid view, but list views feature a simpler UI which makes it easier for non-technical people to view a curated subset of a larger database. 

Form views

Finally, a form view is a view that allows you to create a custom form for adding new records to your table. 

Airtable forms are a great way to collect data from external sources and simplify data entry. They can also be a useful tool when you start building automations in your databases. 

Many automations will trigger whenever a record enters a specific view, or whenever a record is added to a database. If you add the record directly into any other view type, an automation may trigger while you’re still populating fields, which could result in the automation trying to run with incomplete data. 

With a form, a record isn’t created until you click “submit”, so you can ensure that all of the data you need is there before the record is added. 

Pick the right view for your scenario

Each type of view is designed to serve a different purpose, so it's important to choose the right view for your specific needs. 

Just make sure to always keep a simple grid view with all of your records displayed. Even though filters and views don’t delete any of your data, they can make it hard to find certain records or fields if you don’t have a convenient “view all” option. 

Building workflow automations in Airtable

Airtable is one of the best database apps available for building no-code and low-code workflow automations. 

The granular control afforded by filters and views makes it easy to choose when your automations run, and which records they process. 

You can easily set up an automation to run whenever a new record is added to a specific view, so essentially, you can prompt an automation to run based on any data that’s available to you in Airtable. 

Many automations can even be built directly in Airtable, although third-party providers like Zapier and Make will definitely give you a more extensive list of integrations with other software you already use. 

To give you an idea of how Airtable automation works, I’ll show you how to build a simple automation using Airtable’s native automation tools. 

First, here’s a brief overview of how to build an automation in Airtable in a few quick steps:

1. Click on the “Automations” tab at the top of your base. 

2. Click “Create automation” in the bottom left hand menu. 

3. Choose a trigger, such as “When a record enters a view”. 

4. Configure your trigger. For instance, you may need to identify the base and table you want to watch. 

5. Add an automated action. Choose an Airtable action, or an integration with another app. 

6. Authorize the integrated app, if required. 

7. Configure your automated action. Include dynamic data from Airtable when applicable. 

8. Click on “Test automation” to run a test. 

9. Once your automation is performing correctly, turn it on, give it a name, and save the URL to the related view. 

Automation example: creating automated Slack alerts for an Airtable view

Now let’s explore those steps in more detail. 

Every automation consists of a single trigger event that prompts the automation to run, and one or more automated actions that will occur whenever the trigger is activated. 

For our example, we’re going to send an automated Slack message whenever a new hire is added to the “Onboarding” view. 

The onboarding view has a filter so that it only shows employees with a ‘Status’ equal to ‘Onboarding’. 

When you’re building an automation in Airtable, the easiest way to control when the automation runs is to pair your automation with a dedicated view like this.  

Creating a new automation and configuring the trigger

To get started, just click on the "Automations" button in the toolbar, and select "Create automation".

You’ll then see several options for your automation’s trigger. Choose “When a record enters a view.”

Then, we need to select the table and view that we want the automation to watch. We’ll choose the “Employees” table, and the "Onboarding" view as the view we want to watch for new records.

Then, under the “test step” section, click “Choose record” to pick a record that you can use to test the automation as you’re building it. You may want to add a dedicated “test” record with mock data to be safe. 

If the test was successful (i.e., if the trigger retrieved the record), you’ll see a small success message under the “Test Step” section. 

Adding automated actions

With a successfully tested trigger, you can click the “Add advanced logic or action” button to add a Slack step. 

In the window that appears, scroll down to “integrations” to find the application you want to use. In our example, we’ll select ‘Slack’, and choose “Send message”. 

When you’re using an Airtable automation to send data to other apps for the first time, you’ll always need to sign in to the relevant apps and authorize Airtable. 

Click on “Select [app name] account”, and choose “Connect new [app name] account”. 

Review Airtable’s required permissions and click “Allow” to continue. 

Now, you can configure the new action. Any required fields will be marked with a red asterisk.

In our Slack example, we need to provide the message that we want to send, and the user or channel that we want to send the message to. 

We’ll send the message to our “Tutorials” channel, and add a message that provides some basic information about the employee. 

Adding dynamic data to an automation 

Any text that you enter directly into the “Message” field (or similar fields for other apps) will be used exactly as written every time the automation runs. 

If you want to include dynamic data retrieved from the record that triggered the automation, you’ll need to click on the blue plus sign to access data from the trigger (or earlier actions). 

In our example, we can directly enter the initial message (“A new employee is ready for onboarding!”), as well as the labels for the employee’s information. However, we’ll need to access data retrieved in the trigger to include the employee’s actual name, department, and start date. 

The remaining fields are optional, but we’ll go ahead and give our Slack bot a name and an emoji. 

Testing your automation

Once your action is fully configured, you can click on “Generate a preview”. 

The preview will show you the content that your action will create (more or less), but won’t actually perform the action. 

Even if everything in the preview looks good, it’s always a good idea to give the automation a real test just to be sure. Click on “Test automation”. 

Then, select a record and click ‘Run automation’. 

The action you configured should now run with your chosen record. In our example, we got a Slack message, exactly as we configured it in the automation. 

Finalizing your automation

Once you’ve got a successful test, you can turn your automation on and give it a descriptive name. 

Once your automation is on, it will run whenever the trigger condition is met. 

At this time, it’s also a good idea to copy the URL of the automation itself and copy it to the description of the related view. 

That way, you’ll always know that the “Onboarding” view, for instance, is connected to this specific automation. 

Overall, Airtable's automation features make it easy to automate repetitive tasks and streamline your workflow, saving you time and effort in the long run. 

With a little bit of planning and experimentation, you can create powerful automations that help you get more done with less effort.

This is just the beginning of what you can do with automations in airtable. There is full support for API calls, custom javascript, and more that can help even the most sophisticated product and tech teams to stay connected with external databases and apps. 

Building automations in third-party providers

For more complicated automations, or automations that use apps not supported by Airtable, you can use third-party providers like Zapier or Make. 

Zapier and Make support thousands of popular web apps, and offer extensive options for building everything from simple two-step automations to sophisticated workflows with loops and branching paths. 

If you’re a no-code builder, Airtable is a great app to use as a centralized database that supports all of your automations across several different platforms. 

You can use it to control when all your automations run, and to collect and process the data your automations create. 

If you’d like to explore Airtable automation with third-party providers, we have tons of tutorials on our blog for both platforms, like our comprehensive Beginner’s Guide to Zapier

You can also check out our automation search engine, XRay.Tools, to quickly discover what you can automate with Airtable and the tools you already use. 

But for this walkthrough, we’ll be sticking with what you can do in Airtable itself, so let’s finish up this beginner’s guide with a quick look at Airtable interfaces. 

Creating customized, interactive interfaces in Airtable

Let’s wrap up this Airtable deep dive with a quick look at interfaces. 

Interfaces are a feature that lets you distill any table into a simple visual interface or dashboard. Interfaces can help you to create a visually engaging summary of your data, or build a simpler layout for your team to interact with. 

While interfaces have much more aesthetic customization options than standard tables, they’re still not suited to creating customer-facing products. 

In other words, if you want to build a website out of your Airtable data, you’ll need an app like Softr to create a polished, user-friendly UI. 

You can learn more about Softr in this post about building a complete no-code product

There’s a lot you can do with interfaces, and we won’t be able to cover it all in this post. 

But to help you get started with Airtable’s interfaces, we’ll show you how you can build a simple Dashboard interface to get a visual summary of your tables. 

Creating a simple dashboard interface in Airtable

To begin, just click on “Interfaces” in the toolbar next to “Automations”. Then, choose “Start building”. 

Now, you can give your interface a name. We’ll call ours “Employee Dashboard”. 

Next, you can choose a layout type to get started with for your first page. You can add several pages to your interface with different layouts, so feel free to experiment.  

On the right, you’ll see a preview of your selected layout. 

Most of the layouts are pretty similar to Airtable’s various view types, but one that’s a little more unique is the “Dashboard”, which is what we’ll select for our first page.  

A dashboard displays statistics derived from your data, like the total number of records in a specific view or a table, and a visual breakdown of records based on specific fields. 

Select the Dashboard layout, click “Next”, and pick a table that you want to use as a source for your dashboard. In our example, we’ll choose the “Employees” table we created earlier. 

By default, the dashboard includes a filter, three high-level numbers, a bar chart, and a pie chart. 

You could customize these figures a little bit on the “Add elements” screen, but you’ll have more granular control once the dashboard is created, so just click “Next” for now.  

Then, give your page a name and click “Finish” to create your initial dashboard. 

Customizing your dashboard

This first number with a green background is configured to count all records in the table, so we’ll update the label to reflect that. 

Click on the element itself, then click on the “Appearance” tab in the right hand menu. 

Then, enter a new title to replace “Count”. 

The next two numbers are also just counting the total number of records. We don’t need to see that same number three times, so let’s update those. 

Select the second number, then under “records”, choose “Specific records” so that the element will only count records that match certain conditions. 

In our example, we’ll have this element count how many employees are marked as “Onboarding”. 

We can also change this element’s title just like we changed the first element’s. 

We only want these two numbers for now, so we’ll delete the third.

 

Then we can just drag the remaining elements to resize them.

Editing the charts in a dashboard

To edit the charts in your dashboard, just select them and configure your options in the panel on the right. You can change the chart type, the data source, and the appearance of the charts. 

Just like the number elements, you can also resize these charts however you’d like. 

Adding new elements to your dashboard

Clicking on the “Add Element” button in the bottom left will let you add a new element to your page. 

For instance, we added a button that links to our “Add a New Employee” form. 

To wrap things up with this quick interface overview, let’s edit the filter that you see at the top of the page. 

When we select it, we can see that there currently is no filter under the “Data” section. 

We’ll add a filter, select “Department is”, and leave the selection blank for now. 

Now we can click on “Preview” to see what the published interface will look like. 

When a user is looking at the interface, they’ll see all the data you configured, but they won’t be able to edit anything in this specific dashboard. 

However, the user will be able to change this filter at the top to choose which departments they’d like to see. 

Once you’re happy with your interface, click on “Publish” to configure permissions and create a shareable link for your dashboard. 

Using an interface is a great way to share reports or specific data without giving direct access to your database. 

Configuring interfaces can be a little tricky, but you’ll get the hang of it with a little trial and error. 

Once you’ve learned the ropes, you’ll be able to create some great new pages for displaying, summarizing, and sharing your data.

Organizing your data and workflows with Airtable

Airtable is a versatile tool that can be used in a variety of contexts, from personal organization to project management and beyond. 

By following the walkthroughs in this guide, you can get started with Airtable and begin to see the benefits of using a flexible, customizable database to manage your data.

From creating your first table to adding automation and creating interfaces, Airtable offers a range of features that can help you streamline your workflow and improve your productivity. 

Whether you're a beginner or an experienced user, there's always more to learn with Airtable, and we hope this guide has provided a solid foundation for your journey.

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

Tutorial
June 7, 2023
Airtable Beginner’s Guide Part 1

Do you want to transform the way your company tracks and organizes data? Are you ready for a serious upgrade to your day to day workflows?

If your databases aren’t helping you to get work done, you need to check out Airtable. 

Airtable is a powerful tool that combines the simplicity of a spreadsheet with the functionality of a database. 

With Airtable, you can organize your data in a way that makes sense to you, and create customized workflows to automate repetitive tasks and streamline your processes.Whether you're a freelancer, a small business owner, or aparat a larger organization, Airtable has something to offer. 

In this two-part beginner’s guide, we’re going to show you everything you need to know to get started with Airtable. 

What This Guide Covers

In this beginner's guide, we'll cover the basics of using Airtable, from creating your first table to adding automation and creating interfaces.

By the end of the two-part guide, you'll have a solid understanding of how to use Airtable to manage your data and improve your workflows. 

• First, we’ll explain what Airtable is, and what sets it apart from apps like Google Sheets, Excel, Monday.com, and Asana

• Next, we’ll show you what you’ll see when you first open up Airtable, and we’ll quickly explain how bases, tables, and views are structured, so you’ll understand everything you’re looking at. 

Then, I’ll walk you through the process of setting up your first base and table in Airtable. We’ll keep things very simple to start, but as we go, I’ll demonstrate some of Airtable’s key features for viewing, sorting, and utilizing your data. 

• Finally, we’ll wrap up part 1 of the guide with a look at some useful formulas and functions that you can add to your tables. 

In the second part of this guide, we’ll cover linked records, customizable filters and views, powerful no-code automations, and building your own custom interfaces for your data. 

What is Airtable, and what sets it apart?

First, for those who might not be familiar, what is Airtable?

Airtable is a flexible database app. You can use Airtable to organize, filter, and sort your data, run calculations, and pretty much do anything else that you can do in spreadsheet software like Google sheets and Microsoft Excel. 

However, Airtable also includes several unique features that make it an ideal no-code or low-code database for you and your company. 

By leveraging these features, you can use Airtable to do a lot more than just storing and managing your data. You can even use Airtable to build your own custom systems for task and project management, content creation pipelines, and managing your network like a CRM.

This gives Airtable the flexibility to replace apps like Monday.com, Asana, Hubspot, Pipedrive and more. 

You can use Airtable as the backbone of your team’s digital infrastructure; making it a singular source of truth for every piece of data your company creates. 

You can even use it to power no-code and low-code automations to simplify and supercharge your workflows in other applications. 

We’ll give you a quick overview of some of the key features that set Airtable apart. Then, we’ll take you through the process of creating an Airtable base step-by-step so you can see these features in action firsthand. 

Sort your data however you’d like with filters and views

Airtable’s customizable filters and views are a great way to sort data for humans and software alike. By applying filters and choosing an appropriate view type, you can control the data you see and control how it’s displayed. 

You can then share specific views with clients or other collaborators to ensure that they only see the data you want them to see. 

And if you want to start automating your work with no-cod and low-code tools, you can easily set up automations that run whenever a record enters a specific view. 

This is just scratching the surface of what you can do with filters and views; we’ll go into much more detail in the second part of this guide. 

Create 2-way associations between data with linked records

Next, let’s take a brief look at linked records. Linked records let you create associations between records in two different tables. 

This can be a great way to associate each client with a project manager on your team, or each item in a customer’s order with predefined products in your inventory. 

Then, with lookup fields, you can automatically include additional data from the associated record. By simply adding a linked project manager to your client, you can also instantly see the PM’s email address and phone number. 

Or, by adding a linked product to a customer’s order, you can instantly see the price and description of the product. 

Linked records and their lookup fields let you see the same data in multiple places without the manual effort and errors that come with duplicating the data. 

Linked records are a great example of the kind of simple, out-of-the-box features that Airtable offers which would require complex formulas to replicate in something like Google Sheets or Excel. 

Just like with filters and views, we’ll go into more detail on linked records in the second part of the guide. 

Easily support no-code and low-code automation

Between its native automation tools and its extensive integrations with third-party automation providers, Airtable is an indispensable tool for any no-code builder.

As you can see in Airtable’s page on XRay.Tools, Airtable is supported by virtually every popular automation app, like Zapier, Make, Workato, n8n, and Bardeen. 

Even if you aren’t using apps like Zapier, Make, or similar automation providers, you can build no-code automations directly in Airtable itself. 

While Airtable’s native automation tools don’t support as many integrations as third-party apps, you can still use Airtable to automate actions in dozens of popular apps like GMail, Slack, Microsoft Teams or Github. 

With features like automation, filters, views, and more, Airtable is an ideal database app for no-code and low-code builders. 

We’ll cover all of these features in depth in the next part of our guide. Now, we’ll walk you through building your first base. To follow along, just go to www.airtable.com and create a free account. 

What you’ll see on Airtable’s home screen

First, let’s take a look at what you’ll see the first time you open up Airtable.  

When you first open up Airtable, you’ll have one default workspace called “My First Workspace”. 

You can see three options here for creating your first base: Start from scratch, Quickly upload, and Start with templates. 

You’ll also see a few options down in the bottom left-hand corner: Templates, Marketplace, and Universe. 

Templates

With “Templates”, you can browse a library of premade layouts that you can use to quickly build your Airtable bases. Templates are a great timesaver, but we’d recommend starting from scratch first so you can develop an understanding of how Airtable really works. 

Marketplace

If you click on “Marketplace”, you can explore a variety of free and paid extensions. Extensions are essentially add-ons that extend the functionality of your Airtable bases. 

Extensions can be extremely useful tools, but we won’t really be covering them in this beginner’s guide. For newcomers, there’s more than enough to explore with Airtable’s native features alone. 

Universe

Under “Universe”, you can find a bunch of case studies and other articles exploring how you can use Airtable in hundreds of different industries and use cases. 

There are lots of great resources that you can explore later, but for now, let’s focus on setting up your first base and table. 

Airtable’s basic structure and hierarchy

As you’re getting started with Airtable, it’s important to know how everything is structured so you can build databases that suit your unique needs. 

Airtable follows a simple hierarchy of Workspaces, bases, and tables

A workspace is essentially a folder for your bases. 

If you click on “Create a workspace”, you can add a new workspace to your account. 

When you click on “All workspaces”, you’ll see your new workspace right alongside the default space created by Airtable. 

A base is a database that can hold multiple tables, and a table is where you can store individual records. 

Each individual record can contain several fields displayed as separate columns, and each field can have its own unique type. 

We’ll explore field types in more depth later on. For now, let’s create a base in our new Workspace. 

Building your first base and table in Airtable

When you create a new base, Airtable will automatically add a new table (called “Table 1”) with a few default fields and three blank records. You’ll see this same setup every time you create a new table. 

Airtable will provide fields for Name, Notes, Assignee, and Status. You can edit these fields, delete them, or add more. 

For our example, we’ll turn this base into a team directory. Follow along to explore some of Airtable’s field types and other features. 

Label your records with the “primary field”

The first field on the left (labeled “Name” by default) is called the primary field. It’s the field that’s used to identify each record. 

As a general best practice, we at XRay like to populate the primary field with a simple formula - but we’ll get back to that later. First, we’ll walk you through editing your other fields and adding new field types. 

Editing fields in Airtable

Instead of this “Notes” field, we want a “First Name” field to start building our Team Directory.  

You can click the arrow next to any field name to edit that field. This will let you access a menu where you can change the field’s name and type. 

Change the type to “Single line text”.

Change the name to “First Name”, and click “Save” to save your changes. 

Then follow the same process to change the “Assignee” field into a “Last Name” field.

Use unique field types to suit your data

Next, let’s add some basic contact info to our directory. 

Change the Status field into an “Email address” field. 

When you choose the “Email” field type, any email address entered will be formatted as a “mailto” link, so you can start composing an email by clicking on the address. 

Choosing an appropriate field type for your data in Airtable can add a lot of convenient features to your base. 

Creating new fields in Airtable

We’ve used up all of the existing fields in Airtable’s default template, so we’ll need some new fields for phone number, department, start date, and notes. 

To add a new field, just click on the plus sign at the right of all your current fields. 

Then choose the name and type of your field.  We’ll add a phone number field with the phone number type.

Then we’ll add a single select field for “Department”. 

Create a list of options with single select fields

With a single select field, you can add a list of preconfigured options for a user to choose from whenever they add or edit a record. 

In our example, we’ll add options for a few key departments, like Engineering, Design, HR, Accounting, and Marketing. 

You can change the color for any of these options by just clicking on the color and picking the one you’d like to use. 

You can also set a default option to use for every new record, but we’ll leave that blank. 

Note that Airtable also has multi-select fields that work in largely the same way, but will allow you to choose multiple options in the same record. 

To finish setting up our Team Directory’s fields, we’ll add a “Start Date” field with the “Date” type, and we’ll add a “Notes” field with the “Long text” type. 

Then, quickly fill in a few records with data so that you’ll have something to work with - but leave the primary field blank for now.

Populating the primary field with a “concatenate” formula

As we mentioned earlier, we always fill in the primary field with a formula at XRay. In this Team Directory, we’ll use a simple “Concatenate” formula to display each team member’s name in a “Last, First” format. 

First, change the primary field’s type to “Formula”. 

A formula field will be automatically populated with the result of the formula you enter. You won’t be able to edit the contents of any specific formula field manually.

To add the “Concatenate” function, start typing “concat” in the “formula” field. You should see the “Concatenate” function appear. 

You can just click on the function to insert it into your formula field.

The concatenate formula will combine, or concatenate, multiple strings of text. 

Each separate piece of text that you want to combine needs to be separated by a comma. 

Search for the “last name” field, select it from the list, add a comma, and then add the “first name” field. 

Then save the field. 

This formula works, but note that it smooshes the last name and first name together. That’s because the concatenate formula will only include any text or data we explicitly enter into it. 

We need to add another piece of text to the concatenate formula to separate these two strings. 

Edit the formula, and add a comma and space in quotes (“, “) to give this field better formatting. 

Your “Name” field should now be properly formatted.

Using ampersands instead of Concatenate

Alternatively, you can also combine fields and text by using an ampersand between each item, like this: Last Name & “, “ & First Name

Functionally, it’s the same thing as the concatenate formula, so you can use whichever you’d prefer. 

Maintain consistent records and enable quick updates with formula fields

But why go through all that trouble? Why not just enter the full name manually?

Using a formula field as the primary field ensures that all of your records are named consistently. 

For a directory like this, you don’t want to have some people labeled as “Smith, John” while others are “Jane Doe”. 

And if you want to change how each record is labeled, you can just change the formula once instead of updating every single record individually. 

For instance, try updating the formula to put the surname last. 

Instantly, all of your records should reflect the new formula and formatting: “first name” first, “last name” last. 

And if you change the formula back, your records will once again be updated instantly. 

Making these changes manually for every record could take hours with a large database, so using formula fields can be a huge time saver. 

Automation best practice: Label formula fields with emojis 

Just a quick note for no-code builders: if you’re using Airtable for automation with providers like Zapier, another best practice to employ here is to add a specific emoji to any formula field, like a lightning bolt or robot face. 

This will let you identify this field as a formula field when you’re working in an automation provider like Zapier. 

While Airtable will prevent you from entering data directly into formula fields, third-party apps like Zapier will often let you try to enter data into them, which may cause the automation to run with unexpected results. 

Using an emoji is a simple way to remind yourself to leave the field blank when you’re building in Zapier. 

That’s just a quick aside for any automators out there; now let’s get back to Airtable. 

Importing CSV data into Airtable

Now that we have all of our fields configured, this is a decent table to get started with, but we need some more data to really explore Airtable’s features.  

Let’s quickly add some existing data by importing a CSV. 

If you want to create some mock data to work with while you’re exploring Airtable, we’d recommend checking out Mockaroo. That’s what we used to instantly generate the mock data in our example.

To start importing a CSV, click on the arrow next to the table name, scroll down to the first option that says “Import data”, and select CSV from the menu. 

Choose the file you want to import, and click on “upload”. 

When you import a CSV, Airtable will try to automatically map each field in the CSV to an appropriate field in the table, but it will often make some mistakes or even just skip fields (as you can see in the example below). 

Don’t worry if Airtable didn’t assign your fields correctly; you can map the fields manually in the “Adjust your import” section. 

Just select the field in your CSV that matches each field in your Airtable base. 

Note that you can’t map anything to the formula field, since that field will be populated automatically by the formula we entered. 

In many cases, your CSV will include a title for each field as the first entry. While this can be helpful for initially mapping your fields, it’s not something that you need to keep in your final database. 

To exclude that row, just click on “other settings”, and choose “Exclude first row in import”. 

Now that all of the fields are matched up, you can just click on “import” to add the data to Airtable. 

Note that your formula should instantly populate all of the primary fields for your newly imported records.

 

Next, let’s take a look at a couple of simple features that immediately make Airtable more accessible. 

Sorting and grouping data in Airtable

Right now, like any spreadsheet, all of this data is not especially easy for a person to read. It’s just row after row of data. 

But by sorting or grouping this table, you can instantly make it easier to parse. 

Click on “Group”, and group by “department”. 

Now, all of the records will be split into a visually distinct group for each department listed in the “department” field. This makes it much easier to scan the data and find the entry you want. 

To add even more organization, you can add a sort to display every record in alphabetical order. 

Click on “Sort”, and sort by the “Last Name” field, A-Z. 

Now, every record is sorted alphabetically within each group. Anyone can look up a team member in the directory in seconds, and it just took a few clicks. 

You can even save these different sorts and groupings as unique “views” within the table, but you’ll have to wait for Part 2 before diving into views. 

Now that we have the basics in place, let’s go further and start exploring some of Airtable’s more powerful features. 

An introduction to Airtable formulas and functions

Next, let’s go into some more depth with formula fields. 

Formula fields automatically generate the contents of a given field by running a simple calculation. 

We already showed you how to use a simple concatenate formula for the “Name” field, but there’s so much more you can do with Airtable formulas. 

If you’re familiar with writing formulas in other spreadsheet apps, Airtable’s formulas will be very easy to use. 

But even if you don’t have any experience with formulas in other software, don’t worry; Airtable uses a simple syntax that’s easy to learn. Just explore the official formula field reference guide for more info.

Transform and reformat your data with Airtable functions

Formula fields are useful in countless different contexts. 

You may want to create a due date field that’s 3 weeks after a start date field. You may want to simply reformat some data to capitalize names, convert dates to a specific format, or concatenate several fields together like we did earlier. 

There are nearly 100 different functions that can be combined for thousands of use cases, so we can’t cover them all in this guide. 

But for now, we’ll give you a few quick examples to help you get started with Airtable formulas. 

Display every record’s unique ID with RECORD_ID()

One very simple but extremely useful function will let you retrieve and display the unique ID of every record. 

Just add a new formula field, and enter “Record_ID()”. Name the field “Record ID”, and save it. 

Now, every record displays its unique ID, which will make it easy to find, update, or delete any record with an automation. 

Record ID is a simple but convenient function for any no-code builder, as it will let you easily and accurately reference the record ID in automation platforms like Zapier and Make. 

Hiding fields

If you don’t want to show this field all the time, you can just click on the arrow next to the field name and select “Hide field”. That will hide the field in this view, but won’t delete it. 

As a helpful reminder, Airtable lets you know that you have one hidden field in this view with a button at the top of the view.  

Formulas with multiple inputs

Adding the record ID is very simple, but most Airtable formulas will require a little bit more information. 

You’ll usually need to provide two or more pieces of data called “arguments” to have the function run properly. 

For example, let’s take a look at formatting dates with an Airtable formula. 

Format dates in Airtable with DATETIME_FORMAT

When you’re working with automation and other no-code tools, you often end up with dates that are pretty difficult for a human to quickly read. 

For instance, in the screenshot below, we’ve added the kind of date-time that Zapier will often produce in the new “Ugly Date” field. 

It includes the time and time zone in a single long chain of characters, like this: 2023-05-09T15:14:26-04:00. 

Let’s add a new formula field to reformat this into something that’s a bit easier to read. Just be sure to create a new “Ugly Date” field first, and copy and paste the datetime above into one of the records. 

Create a new formula field, and call it something like “Date - Formatted”. 

To find an appropriate function to add to the formula, just start searching for “Date”. Once you start typing “Date”, you’ll notice a list of options appears. 

If you’re building a formula in Airtable and you don’t know the exact name of the function you want to use, you can just search for a relevant keyword and it should appear. 

Click on the “DATETIME_FORMAT” function to insert it into your formula. 

Providing the required inputs in the DateTime function

When you add a function to a formula field in Airtable, a helpful tooltip will explain everything you need to enter into your function. 

The first argument needs to be the date that we want to reformat, so you can just reference the {Ugly Date} field. Add a comma after the field’s name to complete the first argument. 

For the second argument, you need to specify the date-time format you’d like to use. 

For example, if you want to include the month, day, and year with 2 digits each, all separated by hyphens, you can enter MM-DD-YY in quotes. Then, close out your formula with another parenthesis, and save the field. 

Now you should see the reformatted date in the “Date - Formatted” field for the record that included an “Ugly Date”. 

However, you’ll also notice that all of your other records say #ERROR!

This is because the “Ugly Date” field referenced in “Date - Formatted” field is empty for all of these records. There’s nothing to reformat, and that causes an error.

Once you enter a date into the “Ugly Date” field for another record, the “Date-Formatted” field will be populated correctly. 

Building flexible formulas with IF statements

However, if you want to ensure that every record looks nice whether a date is provided or not, you could use a simple “If” statement instead. 

With an If statement, you can use different functions when certain conditions are met. 

To construct an If statement, add the “IF()” function to your formula. 

Then, you’ll need to provide three arguments to complete the IF function. 

First, you need the logical condition that the function will assess. In this case, we want the function to determine if there’s any content in the “Ugly Date” field. We can do that by simply entering the “Ugly Date” field as the first argument. 

The next argument will specify what the formula should do if the condition is true. In our case, that will simply be the DateTime formula we already entered.

So we’ll add a comma after that formula and enter our final argument: the formula that should run if the condition is false. 

In that case, we just want the field to say “No date provided”, so we can enter that text in quotes. Now we’ll close out this If statement with a parenthesis, and save it. 

Now, every record with an empty “Ugly Date” field just says “No date provided” in the Date - Formatted field. 

Using formulas in Airtable can be a convenient way to format your data, run calculations, and retrieve vital information automatically. Try exploring Airtable’s formulas on your own to discover ways you can turn your spreadsheets into a dynamic database. 

Begin organizing your team’s data with Airtable

With some specialized field types and a couple formulas, you should be well on your way to discovering what Airtable has to offer. In the second part of this guide, we’ll go even further and cover linked records, filters and views, workflow automation, and customizable interfaces. 

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

Tutorial
May 31, 2023
3+ Ways to Share Your Airtable Bases

Airtable is a fantastic app for organizing your team’s data, and with Airtable’s extensive options for sharing and syncing specific views, it’s easy to collaborate with coworkers or people outside of your organization. 

In this post, we’re going to take a deep dive into Airtable’s Share and Sync settings, and we’ll show you three different ways you can share your Airtable bases: Sharing views with a link, syncing data between tables, and using form views. Along the way, we’ll also cover creating HTML embeds with your Airtable data, and the new “Data Libraries” feature. 

With all of these options, you can easily configure your Airtable bases to start collaborating with your team, your clients, or anyone on the web.

Note: All of the sharing options that we’ll go over today can be accessed by clicking on the “Share and Sync” button at the top of any view. 

Sharing Views with a Link

To get started, let’s take a look at creating shareable links and embeds for specific views.

Sharing a view with a link will let you share the data from a specific view in a “read-only” format. You can allow users to copy data from the shared view, but you can’t allow people to edit records from that link. If you’d prefer to add the data directly to your site, Airtable will also provide an optional HTML embed. 

Shared views and embeds work for all view types except for lists, and they’re a useful way to share data for simple reports, demonstrations, and reference. They’re especially helpful if you need to share data with someone who doesn’t use Airtable. 

In this tutorial, we’ll demonstrate view sharing using a basic grid, but all of the options are essentially the same no matter which view type you’re using. 

Creating a shareable link for your view

To get started, open up the view that you want to share. Then, click on the “Share and Sync” button in the toolbar.

The first option in the menu will be “Create link to view”. When you select this option, Airtable will create a shareable link for the view that you currently have open. 

There are several options you can configure here, but first, let’s just see what the shared view looks like. 

Preview your shared link

We’ll copy this link, and open it up in another browser so we can see exactly what everyone else opening this link will see. 

All of the data from our view is visible here, and we can filter, sort, or group the data however we’d like.

But with the shared view link, we can’t edit or delete records, and we can’t add any new ones either. 

Now we’ll go back to our Airtable base to explore our options for configuring our shared view.

Disabling or regenerating your shared link

Immediately, you should note that the “Share and Sync” button is now highlighted in pink. This indicates that the view has been shared. It’s basically just a reminder that any data in this view may be visible to others. 

If you want to disable or reconfigure the sharing link, click on “Share and sync” and select “Link settings”. 

At the bottom of this menu, you’ll see a couple relevant settings. 

First, there’s “Generate new link’. This will create a new URL where people can access your shared view. This is useful if you want to keep sharing the base, but remove access for anyone who only has the old URL. 

Next, you’ll see “Disable link”. This option will disable the existing link, and won’t create a new one. This is helpful if you just want to stop sharing the view altogether. If you disable the link, you’ll see the “Share and sync” button is no longer highlighted, since this view isn’t being shared anymore. 

Allow users to copy data from your shared view

At the top of the “Link settings” menu, the first option you’ll see is “Allow viewers to copy data out of this view”. After creating a shared view, this setting is enabled by default.

When “copy data” is enabled, anyone with the link will be able to easily duplicate the data in your view into an Airtable base of their own. 

When opening a shareable link with copying enabled, users should see a button at the top of the view that says “Use this data”. 

When someone clicks on it, Airtable will let them make a copy of this view in another Airtable account. Any copy that users make won’t be synced to the original table in any way, but they will see any data that was in the view when they made their copy. 

If you disable this option, users won’t see a “Use this data” button, but they could still copy the data manually. However, if they try to copy multiple records at once, Airtable will prevent them from doing so. 

Ultimately, this setting is just about providing a convenient way for users to copy the data if you’d like. 

Displaying hidden fields in shared views

Next, there’s an option that says “Show all fields in expanded records”. Although you might see a different word instead of “record” - we’ll explain why at the end of this section. 

Essentially, this option will determine if users can see your view’s hidden fields or not. If you leave the option disabled, users will have no way to see this view’s hidden fields. 

If you enable the option, users still won’t see hidden fields in the main layout of the shared view, but they will be able to see these fields when they expand the record. 

In our example, “Record ID” is a hidden field in this view. We’ll enable “Show all fields in expanded records” and see what that looks like in the shared view. 

We can’t see the “Record ID” field in the grid view, but when we expand any record, we can see an option to view hidden fields. 

Why does my Airtable base say “Show all fields in expanded people”?

You might see some unusual or unexpected verbiage in this option. This is because the “hidden fields” option will use whatever term you’ve provided for ‘records’ in your table. 

So if the records in your table are called “People”, this option will say “Show all fields in expanded people”. If the wording looks a little strange, Airtable is probably just using your custom term for “record”. 

Adding password protection to your shared view

Going back to the link settings, the next option we see is to “Restrict access with a password”. Enabling this will require users to enter a password before they can access the shared view.

Once you enable the option, you’ll be prompted to create a password for the view. This is the password users will need to enter to see your shared view.

Once the password is set, you can click on “edit” to change the password. Just note that once you change the password, the old one won’t work anymore. 

Here’s what a user will see when they open up a password-restricted link. 

Once they enter the correct password, they can see the shared view. 

If you’d like to go back to allowing unrestricted access to your shared view, you can just disable this option at any time. However, you will need to set the password again if you re-enable the option. 

Limit your shared view to users with a specific email domain

To finish out the “Link settings” options, we see a setting to “Restrict access to an email domain”. 

When this setting is enabled, users will have to log in to Airtable before they can see the data in your shared view. They’ll only be able to see it if they use an email address from the domain that you specify. 

For example, we could limit access to a view to users with an XRay.Tech domain.

When we open up the view, we’re prompted to sign in to Airtable. 

If we use an “@gmail.com” account,  we won’t be able to access the view. 

Just like with passwords, you can disable this setting at any time to remove the domain requirement. 

Creating an HTML embed for shared views

Finally, before we explore synced tables, let’s take a look at embedding your shared views.

If you’d like to add your shared view to a page on your website, or as part of a slide deck, Airtable provides an embed code with shared links. 

The embed will use all the same settings as the shareable link. It just adds an iFrame wrapper so you can embed the view into your site’s HTML.

To embed a shared view, start by opening the view you want to share and click on “Share and Sync”. 

Click “Embed this view”. Airtable will open up a new tab with a few options for configuring your embed, and a preview of what the embed will look like on desktop and mobile. 

The first option is “Use card layout on desktop”. 

Embedded views always use a card layout on mobile, as you can see in the preview. When you enable this option, you’ll also see a card-based layout on desktop. If you select it, you’ll see the layout updated in your preview. 

 The next option is “Show view controls”. As the tooltip says, enabling this will let users filter and sort data in your shared view. 

Once you’ve configured your settings, you can view, edit, and copy the embed code in the panel on the right hand side. 

Creating synced tables and using the new data library feature

Next, let’s go over creating synced tables in Airtable. 

With synced tables, the contents of your selected view will be automatically synced to another table that you choose. 

The two tables can be in different bases, and in different workspaces. However, they both need to be within the same organization. 

Additionally, you can only create syncs using grid views. Once you’ve created a sync, you can then create additional views with different types for the same data. You just have to create the initial sync with grid views. 

1-Way and 2-way syncs

By default, Airtable sets up 1-way syncs, and until recently, this was the only option for synced tables in Airtable. 

With a 1-way sync, you can edit the source table, and all of your edits will be reflected in the synced table. However, you can’t edit any synced records in the synced table. You can only make edits to the source table.  

Recently, Airtable has added beta support for 2-way syncs, which allows you to edit synced fields directly. Your changes will then be synced to the original source table. 

Configuring a 1-way sync

To get started with syncing your tables, open the view that you want to use as a source and click on “Share and Sync”.

Then, select ‘Sync data to another base’. Check “allow data in this view to be synced to other bases”. Then click on “Sync this view”.

You’ll be prompted to choose a workspace and base that you’d like to sync this view to. Here, you can choose whether to copy the data or sync it. Copying the data will just duplicate the data in its current state, and won’t sync any changes made in the future. 

Once you’ve finished your initial configuration, click “Create Table”. 

Airtable will open up your new synced table, and a new settings window will pop up. 

In this window, you can rename the sync by clicking on the three dots next to the sync name. In this same sub-menu, you can also change sync source, or choose which fields that you want to include in the sync. 

Back in the main settings menu, you’ll see an option called “Edit source records”. Selecting this option will enable a 2-way sync, but you’ll have to reconfigure the source base as well. 

We’ll focus on setting up a 1-way sync for now, but we’ll revisit the 2-way sync later in this post.

Configuring automatic or manual syncs

The next option will let you choose how and when your synced table is updated. By default, this is set to “Automatically sync changes at regular intervals”, but you have two other options as well. 

If you choose “Only sync changes when requested”, the synced table will never automatically retrieve updated data from the source table. Instead, you’ll have to run a manual sync whenever you want to update the data. 

If you choose “Stop syncing changes and convert to unsynced table”, the synced table will just become a regular table. Whatever data was in the table will remain, but it won’t be synced with the source anymore. 

In most cases, you’ll probably want to use “Automatically sync changes at regular intervals” so your synced table stays up to date on its own. You can expect a sync about every 5 minutes or so, but the exact interval will depend on your Airtable pricing plan. 

Handling deleted records

Finally, our last option in this menu is to “Delete records when they are deleted or hidden in source”.

When a record is deleted in the source table, you can choose whether or not to have it deleted in the synced table as well. 

If you’d like to revisit any of these options later, you can reopen this menu at any time in your synced table by clicking on the table name and selecting “Update sync configuration”.

Reviewing your finished sync

In your fully configured synced table, you should see all of the data from the source table. Every field will have a lightning bolt symbol, indicating that the data comes from a sync. 

Since this is a 1-way sync, you can’t edit any of these fields or add new records. However, you can add new fields, such as formula fields that reference data from these synced fields. 

To see how the sync works in action, return to your source view and make a couple quick edits. Your synced table should update shortly after without requiring any additional input. 

But what if you want the sync to work in both directions? 

Configuring a 2-way sync

For anyone working at large organizations, enabling 2-way syncs can be a huge boost to productivity and collaboration. 

To enable a 2-way sync, go back to your source view. Click on “Share and Sync”. 

Select “Sync data to another base”, and enable “Allow edits from other bases”. Choose which fields you’d like to include in this sync, or just use all fields.

Once you’ve configured the fields you want to use, close this settings menu and return to your synced table. 

Click on the table name and select “update sync configuration”. 

Enable the option that reads “Edit source records”, and close this settings menu. 

Now, you can make edits to either the source or the synced table, and those edits will automatically be synced to the other table. 

However, you can’t add or delete records in the synced table. You can only edit records that already exist in the source table. 

Note that the synced table still includes the lightning bolts, while the source doesn’t. That should help you to tell the two apart at a glance. 

Syncs in Airtable are great for sharing data with your team without having to share an entire base that may include sensitive information, or information that’s just not relevant to that department. 

However, syncs aren’t a viable way to share data with outside organizations like clients and customers. 

Using data libraries in Airtable

To finish up with Airtable syncs, let’s take a look at a closely related feature: your Airtable Data library.

The data library is essentially a way to create a templated synced table. It will enable your team to create a synced table referencing your selected view whenever they want. 

Under the “Share and sync” menu, you’ll see an option to add your view’s data to your organization’s “Data library”.

When you’ve added a view to your data library, users in your organization will have the option to quickly copy any data shared to the library whenever they make a new table. 

To add a view to your data library, click on “Share and Sync”. Select “Publish to data library”.

Airtable will prompt you to provide a name and a description. It will also give you the option to lock the current table, which it will enable by default. 

You can’t edit the share and sync settings of a table when it’s locked, but you can unlock the table later just by clicking on the view title.

Once you’ve configured all your settings, click on “Publish”. 

Your view is now part of your Data library. 

To access it, create a new table. Any views that you’ve added to your Data Library will be visible near the top of the menu. 

If you select a Data Library option, your new table will be a synced table using the original view as the source. 

Your new table will use a 1-way sync. You won’t be able to edit any synced fields in the synced table. 

Currently, 2-way syncs aren’t compatible with the Data Library feature. If you enable a 2-way sync in a table synced to a data library, the dataset will be set to “Inactive”, and won’t be accessible when creating a new table. 

Data libraries are a bit of a niche feature for small companies, but could easily become an indispensable tool for larger organizations . 

If you’re managing data for a large publisher or marketing agency, using data libraries will be a great way to streamline your sources of truth and let every department reference critical data with just a couple of clicks. 

Collecting data with form views

Finally, let’s take a look at the last option that you’ll see in the sharing panel: Form views. 

In Airtable, a form view creates a survey that includes a question for each field in the table. As the owner or editor of the base, you can remove questions from the survey to skip certain fields, edit the field labels into questions, and add descriptions for further context. 

Once your form is configured however you’d like, you can send it out and gather data from anyone with the form link. 

This is a great way to let people contribute to your Airtable bases without needing any direct access to your data. 

To get started, click on Share and Sync, and click “Create a form view”. 

Alternatively, you can create a new view in the left hand panel by clicking on the plus sign next to “Form”. 

By default, your new form view will include every field in the table. If there are any fields you want to skip in your form, you can just drag and drop them out of the form. 

Taking a field out of the form won’t hide or remove the field in other views; it will just skip the field in the form. If you’d like to add any fields back in, you can just drag and drop again. 

Every field will start with its original label from your table, but you can edit these into more verbose questions and prompts. 

Editing the titles or adding descriptions won’t affect the fields in your other views either. 

Opening the form and submitting data

While you’re in the form builder, you can’t actually complete the form and submit data. 

You can enter text into the boxes, but there’s no way to submit that text and create a new record from this editor. 

Once you have all the questions you want, you can click on “Open form” to see the live form and test it out. 

When accessed through this link, you should be able to fill out the form and create a new record with your responses. Note that the new record will not be created until the form is submitted. 

After you’ve given your form a preview and a test, it’s time to share the form. Return to the form view in your Airtable base and click on “Share form”. 

Here, you can copy the form’s URL to share it with others, and configure key sharing settings. 

Configuring your form’s sharing settings

The form sharing settings are all pretty straightforward, but let’s go through those options one at a time. 

With “Restrict access with a password”, you can set a password that users must enter before accessing the form. 

If you enable “Restrict access to an email domain”, you can limit access to users with an email address from a specific domain. This is a good way to limit responses to people from your organization. 

“Stop accepting new responses” will prevent people from submitting new data without getting rid of the link. When you enable this option, you can also provide a custom message to give further context. 

For instance, in this screenshot, we’ve updated the message in this task creation form to say “The task maker is down for maintenance! Check back on Monday.”

If you open the form after selecting “Form is not accepting responses”, you’ll just see a message like the one pictured below. 

The “stop accepting new responses” option is a good way to temporarily pause data collection on a form. 

When you’re ready for people to start using the form again, you can just disable the option. No need to make or share a new link.  

The last couple options will be helpful if you want to make a new link or delete the one you’ve created. “Generate new link” will let you disable the current link and create a new one, while “Disable link” will disable the current form URL without creating a new one. 

Ultimately, forms are a convenient way to let anyone contribute to a base, even if they’re not part of your organization - or even if they don’t use Airtable. 

Form views are the only way to create a publicly accessible URL where anyone can contribute data to your bases. 

Just remember to be careful about when and how you use form views. In many cases, you might not want anonymous users contributing data to just any base. 

But with Airtable's sharing options, you can make sure that the form is only accessible to the people you want to share it with. 

Share and collaborate with Airtable

By configuring a few simple settings, you can share any airtable data you’d like with your team, your clients, or anyone on the web. Just follow along with this tutorial and choose the sharing format that works best for you. 

If you’d like to learn more about no-code/low-code tools like Airtable, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
May 24, 2023
The Rise of the Workflow Designer

Have you ever heard of a workflow designer? Chances are, you probably haven’t yet. It’s a role that’s only beginning to emerge right now.

But over the next few years, it’s going to become extremely important for any business that wants to leverage the latest technology and get the most out of their software. 

In this post, we’re going to explain what a workflow designer is, and why workflow design will become a critical discipline for every industry in the coming years. 

Operations managers: precursors to Workflow design

First, let’s address the circumstances that have built up to the rise of the workflow designer, and the circumstances that many companies are dealing with right now. 

While you probably aren’t familiar with any workflow designers yet, you likely are familiar with some operations managers who work in specific departments.

For instance, your company may have people on your team working in sales operations, marketing operations, finance operations, or even no-code ops. 

These roles have emerged as talented salespeople or marketers switch their focus to helping others in their department determine the best way to get their work done. 

Operations managers help their team to establish consistent, reliable processes that achieve the results the business is looking for. But even with great operations managers, companies often continue to face the problem of siloed data. 

Struggling with siloed data

At many companies, each department will frequently struggle to get the data they need to truly make informed decisions. 

Sharing data across teams is a critical issue, since many processes are not confined to a single department. For instance, simply engaging with a new lead will involve efforts from marketing, sales, finance, and your product team. 

In many cases, your finance ops manager can’t always get the data they need from the other departments. 

A handoff between the sales team and finance department is a great example of how the specific price and package purchased might get lost in communication. And they won’t always be able to share the data that they create with the rest of the team either. 

Since Salesforce licenses are so expensive, you might not want to pay for your accounting team to have access to the deal pipeline. 

This forces you to move the data out of Salesforce so your accounts team can access it.

Most often, this data transfer is handled through messages, emails, or conversations between team members in different departments. 

Without a well-designed workflow in place, you’re likely going to see lots of manual work in exporting and processing that data as it gets handed off from one department and their software to another department and their different software.

A chief operations officer or a general operations manager can try and create systems to bring together data from every department, but this can be difficult when every team is relying on different apps and the COO or Ops Manager may not be familiar with most of them. 

They could potentially consult with IT or engineering, but we all know how overburdened tech teams usually are. Grabbing more of their time for internal operations tends not to be a great use of your resources. 

This is where a workflow designer comes in. 

What workflow designers do

A workflow designer designs and implements better ways to work using automation, AI, and other no-code tools.

They find ways to connect and improve the software your company already uses, and find ways to streamline the way that your team works. 

Designing the way you spend your time at work

A workflow designer’s main responsibility is to optimize your time. 

Much of modern app development is focused on maximizing the amount of time that you spend in that app. To that end, popular SaaS tools have been introducing all sorts of add-ons and new features that go beyond the original core functionality of the app. 

For instance, this is why you’ve seen Zoom add email and calendar, while Google Calendar adds Hangouts to each meeting by default. The lines are getting blurrier and blurrier between application feature sets. 

Just consider how many different ways you and your team take notes. Nearly every app used in the workplace wants to offer meetings, and chat, and notes, and more, so that you stay in their ecosystem from 9 to 5. 

Workflow designers are uniquely positioned to push back against all of the apps that want to eat up your time and attention. 

With no-code automation and AI software becoming more prevalent and more accessible every day, workflow designers now have the tools they need to build systems that connect every department in an organization. 

Using strategies like no-code automation, Workflow designers can help you to leverage the most useful pieces of each app while minimizing the amount of time you have to spend in each one. 

Simplifying your workflows with no-code tools

In many cases, a workflow designer can refine your business process so you just have to fill out a form or click a button, prompting an automation to move your data through every relevant app in the background. 

With less time devoted to menial tasks, you and your team can direct your attention to where it has the greatest impact: on creative, analytical, strategic, and thoughtful work. 

Well-designed workflows will improve the employee experience for everyone at your company. 

Without getting bogged down in tedious, repetitive tasks, your team can focus more on the work that actually requires their unique skills and insight. 

And with the consistency created by standardized and automated workflows, your team will be more confident in their work than ever. 

Perhaps most importantly of all, a workflow designer will enable you to spend more of your time on making key decisions, and less time on the execution of your decisions. 

Spend more time making decisions and less time processing data

Fundamentally, a workflow designer is someone who increases your capacity to make decisions. After all, you can only make so many decisions in a day, because it takes time to gather the data and implement your ideas. 

A workflow designer will analyze the way you’re working now, and find ways to get the right information faster.They’ll also make sure the data you get is accurate, and consistently formatted so you can actually trust your source of truth. 

With better data delivered to you in less time, you’ll have more time every day to make critical decisions. 

Going beyond workflow automation

But workflow design is not just about automation. Connecting tools together to automate tedious, repetitive work is a big part of implementing a workflow designer’s insights, but it’s certainly not their only approach. 

Ultimately, a key part of a workflow designer’s job is to understand every facet of your company’s processes. By understanding how work gets done now, they can discover opportunities to improve your processes without getting rid of everything that already works great. 

And critically,  it’s important not to skip the step of asking why you would build the automation, and if you should build it in the first place.

In many cases, you can optimize your workflows by simply reorganizing your data in Airtable, Notion, or whatever app you’re using. 

In other cases, simply documenting a standard process to follow will help your team to be more efficient. 

And with AI becoming more sophisticated and more accessible every day, the best solution is often to just send a quick prompt to ChatGPT. 

A good workflow designer will never jump straight to building a complex automation when a simpler solution is a better fit. 

Retaining control over your automated workflows

Even when a workflow designer decides to implement an automation, they can still ensure that your team retains critical oversight over the entire process, with the ability to confirm automated work at key moments. 

For instance, they might build a workflow that sends automated responses to your inbound leads.

Instead of just sending that automated response right away, the workflow designer might ensure that your team can check the message first, and edit it if needed. 

That way, you can be confident that you’re always sending your leads contextually appropriate responses, while still drastically reducing the amount of time you have to spend drafting personalized responses for similar inquiries. 

Regardless of the specific strategies and systems they implement, a workflow designer understands that your most valuable resource is the people at your company.

Their time and their attention are limited. 

Designing better workflows that save time and get more reliable results will let you get the most out of your team’s time. This will enable you to scale your processes by removing the bottlenecks that limit your capacity.  

How to start leveraging workflow design today

Workflow design is quickly emerging as an important discipline for any industry. But how can you start leveraging the benefits of workflow design today?

To get started, you can always check out the posts on our blog. We’ve published lots of tutorials and deep dives to help you think like a workflow designer and give you the tools and knowledge you need to optimize workflows for yourself and for your team. 

Our tutorials are often focused on the nuts and bolts of automation, but our upcoming workflow design course will take a more holistic approach to workflow design. We’ll share our own strategies for analyzing a workflow, discovering the best opportunities for optimization, and implementing critical improvements.

This course won’t just help you to streamline your own day-to-day work; it will show you methods you can use to improve workflows for your entire team.

If you and your team aren’t looking to take on the additional responsibilities of being workflow designers yourselves, you can always reach out to XRay instead. 

Our workflow consultants will help you to uncover areas to improve in your workflows, and build the automations, AI tools, and other resources you need to streamline your processes. 

Just click on “Contact” to schedule a 15-minute discovery meeting, or explore our site to learn more about what we do. 

Putting more focus on how we work

Far too often, we put too much focus on slogging through our work, and we don’t stop to reflect on how and why we do what we do. Workflow designers can help to answer these key questions, create more scalable processes, and improve your employee’s experience at your workplace.

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

Tutorial
May 17, 2023
Make Modular Automations with Sub-Zaps in Zapier

Are you tired of building the same actions repeatedly in Zapier? Do you find yourself duplicating similar Zaps for different purposes? Well, there's a solution for you! Let's explore how you can use Sub-Zaps in Zapier to create modular and reusable automations, saving you time and effort.

Why Use Sub-Zaps?

Sub-Zaps allow you to repeat commonly used sets of automated actions without having to build all the same steps in multiple Zaps. Let's take a look at a few use cases where Sub-Zaps can be particularly beneficial. 

Create consistent data from different apps

Sub-Zaps are a great way to ensure that you create consistent, reliable data from any number of different sources. 

Imagine you need to create new tasks and alert the assignee. Instead of creating multiple Zaps with the same actions, you can build a Sub-Zap that contains the steps for creating tasks and assigning them. This way, you can establish multiple avenues for creating tasks, such as using a simple form or sending a message in a dedicated Slack channel.

Or, suppose you want to add new leads and clients to your CRM from various sources like your website, third-party channels, emails, or in-person meetings. By using a Sub-Zap, you can ensure that all leads are added to your CRM in the same standardized manner, regardless of the source.

Quick and easy updates to your Zaps

Sub-Zaps are particularly useful when it comes to updating frequently used actions. Instead of updating these actions in multiple Zaps, you can update a single Sub-Zap. For example, if you switch your CRM from Copper to HubSpot, you can simply swap out one step in your Sub-Zap, instead of replacing that step in every Zap that funnels leads to your CRM.

It's important to note that Sub-Zaps are currently in beta, so the user experience may not be as polished as other features in Zapier. Nevertheless, they are functional and definitely worth trying out if you've built several Zaps that perform similar actions. Using Sub-Zaps appropriately will help you build more efficient and easily maintainable automations.

Overview: How Sub-Zaps work

Let's take a quick look at the broad strokes of how Sub-Zaps work and how you can incorporate them into your workflow. 

Sub-Zaps are built as separate Zaps that can be called from other Zaps. A Sub-Zap always starts with the trigger "Start a Sub-Zap" and ends with a "Return from Sub-Zap" step. This ensures that Sub-Zaps won't run unless called upon by another Zap.

Note: in this tutorial, we’ll refer to the Zap that calls on a Sub-Zap as the "parent Zap." There's nothing inherently different about parent Zaps, and it’s not a term you’ll see in Zapier; it's just a term we’re using to describe any Zap that calls on a Sub-Zap.

In the Sub-Zap trigger, you can include a list of inputs to collect data from the parent Zap. These inputs will gather relevant data for the Sub-Zap from the parent Zap.

In the "Return from Sub-Zap" step, you can include a list of outputs to send back to the parent Zap. These outputs are the data returned from the Sub-Zap to the parent Zap.

To call a Sub-Zap, you need to add a "Sub-Zap" action to your Zap and choose the "Call a Sub-Zap" event. Select the Sub-Zap you want to use and include any required inputs. You can then add additional actions to the Zap and turn it on to start using it. 

It's important to ensure that both the parent Zap and the Sub-Zap are published and turned on for the automation to work correctly.

Detailed Walkthrough: How to build and call a Sub-Zap

Let's go through a step-by-step walkthrough of how to create and use Sub-Zaps in Zapier. 

For our example, we’ll build a Sub-Zap that creates tasks in our Notion tasks database. 

Then, we’ll call on our Sub-Zap in one parent zap that watches for Airtable records.

And we’ll call on it again in another automation that watches for Slack messages in a dedicated “Tasks” channel. 

Creating a new Sub-Zap

First, create a new Zap. Immediately give it a descriptive name. Having a descriptive name is important when building a Sub-Zao, because you need to be able to find this Sub-Zap easily later. 

For the trigger, search for “Sub-Zap”. 

Choose “Start a Sub-Zap” as the event. This will indicate that Zapier should consider this Zap a Sub-Zap, which is required for it to be selectable in your parent zap. 

Then, fill in any inputs or “arguments” you want the Sub-Zap to collect from the parent Zap. 

The Sub-Zap won’t automatically have access to any of the data gathered in the parent Zap’s trigger and actions. 

Any data that you want to use from your parent Zap needs to be included in these inputs. 

In our example, there are a few fields we’ll need in order to create a complete task, like task title, assignee, due date, project, Notion ID, and Slack ID. 

When you create your inputs, you’re just providing labels; you don’t need to provide any values for these inputs yet. 

Testing Sub-Zaps: a tricky (but workable) process

Once you’ve added all the inputs you want to collect, you can click “Continue” and test the trigger. This is where you’ll first run into the main downside of Sub-Zaps. 

Testing is a bit clunky in Sub-Zaps, to say the least. 

When you run your test, the trigger will almost certainly succeed, but every one of your inputs will simply say “Missing Sample Data”.

Don’t worry! As bad as this may look, it’s actually fine. You’ll be able to add test data in a moment. 

Since the Sub-Zap is a fully separate Zap, it can’t gather any dynamic data from your Parent Zap unless you’ve already sent a call to this Sub-Zap from your parent Zap. 

Since you’ll probably want to use real data while we’re building and testing our Sub-Zap, go ahead and create a new Zap that you can use as a “parent Zap" in a new tab. 

In our example, we want our parent Zap to create tasks in Notion by filling out a short form in Airtable, so we’ll use a “New record” trigger in Airtable.

Once your trigger is configured, add a new action, and search for “Sub Zap”. 

Choose “Call a Sub Zap” as the event, and select the Sub-Zap you created earlier. 

Next, you can fill out all of the inputs that you configured in your Sub-Zap. Make sure to use dynamic data from your parent Zap wherever appropriate. In our example, we’ll fill out all of our inputs with data from the retrieved Airtable record. 

After providing data for all of your inputs, you can test the “Call a Sub-Zap” step. 

When you test the step, you’ll get an error because you haven’t added a “Return” step to our Sub-Zap yet, but this is fine. You can fix that later. 

Your sub-Zap received the call from the parent Zap anyway, so you’ll have the test data you need to build the rest of the Sub-Zap. 

Finishing your Sub-Zap with test data

Now you can switch back to the Sub-Zap and test the trigger again. 

This time, you should be able to see the call you just made from the parent Zap, and it should include all of the data you entered into the inputs. 

You can now add the actions that you want to include in your Sub-Zap. Adding actions in a Sub-Zap will be exactly the same as adding actions to any other Zap. Just make sure to only include the actions that you want to repeat every time you call on the Sub-Zap. 

In our example, we’ll add a Notion step to create a new database item in our “Tasks” database. We’ll fill in the fields with the data sent by the parent Zap. 

We also want to send a Slack message to the task’s assignee, so we’ll add a Slack action and choose “Direct message” as the event. We’ll fill out the message and include the Notion URL where the assignee can see their new task. 

Just like building any other Zap, you’ll want to test each step as you add them to your Sub-Zap. 

Once you’ve added and tested all of the actions you want your Sub-Zap to perform, you just need to add a “Return” action so that Zapier knows that the Sub-Zap is complete. 

Add an action, search for “Sub-Zap”, and choose “Return from a Sub-Zap” as the event. 

In the “Output/Return values” fields, you can include any data that you’d like to send from your Sub-Zap to any parent Zap that calls on it. We’ll just include the Notion task URL in our example. 

Test your return step, then publish the Sub-Zap and turn it on. 

Testing and calling a finished Sub-Zap

Now, you can go back to your parent Zap and test the “Call a Sub-Zap” action again. This time, the test should succeed. 

However, when you test a Sub-Zap call from the Parent Zap, the Sub-Zap won’t actually run any of its actions. Like we mentioned before, testing your work with Sub-Zaps is clunky. 

To make sure that the whole setup works, ensure that both the parent Zap and the sub-Zap are on, and run a live test. 

For our example, that means we’ll have to fill out the Airtable form to trigger the Parent Zap, which should in turn call on the Sub-Zap, which will create a Notion task, and send a Slack message. 

First we fill out the form.

Then, after we wait a few minutes for the Zap to trigger, we see a new Slack message.

The link takes us to the newly created task in Notion. 

So to sum it up, here’s how you can create a new Sub-Zap:

1. Create a new Zap

2. Choose “Start a Sub-Zap” as the trigger

3. Add the inputs you want your Sub-Zap to collect

4. The first time you test the trigger, you won’t see any sample data

5. Create a new Zap to send the data (a “parent Zap”)

6. In your parent Zap, add a “Sub-Zap” action and choose “Call a Sub-Zap”. Call on the Sub-Zap you created earlier, filling in all of your inputs 

7. Return to your Sub-Zap. Test the trigger again, and load the recent call from your parent Zap. 

8. Add actions to your Sub-Zap, using data from your parent Zap as needed

9. Add a “Return from Sub-Zap” action to complete your Sub-Zap. 

10. Test your Sub-Zap, turn it on, and publish it. 

11. Return to your parent Zap, and test the sub-Zap again. 

12. Publish and turn your parent Zap on. 

13. Run a live test of your parent Zap. It should run all of its own steps, as well as the Sub-Zap. 

Then, you can just call the Sub-Zap from any other Zap by adding a “Sub-Zap” step and choosing “Call a Sub-Zap”. 

Make your Zaps easier to maintain with Sub-Zaps

Sub-Zaps are a useful tool for building more efficient, easily maintainable Zaps. Since it’s still in beta, there’s still lots of room for improvement, but it’s well worth the effort if you’re building for a team and find yourself constantly duplicating your automations for each team member. 

Give it a shot today, and start saving some time while you’re building! If you’d like to see more tips about no-code automation and productivity, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
May 10, 2023
Fighting Back Against the Attention Economy

Every app that you use wants to eat up as much of your time as possible. It’s no secret that social media apps like Twitter or entertainment apps like YouTube want to keep you in an endless scroll of recommended content. 

But it’s not just social media that wants to monopolize your time. 

Even the software that you use for work, the software that is supposed to help you to be more productive, often wants to use up as much of your time and attention as it possibly can. 

But there are ways to fight back and reclaim your time for yourself. 

In this post, we’re going to explain how and why the software you use every day for work is trying to monopolize your time. 

We’ll also show you how you can take control of your time with tools like no-code workflow automation. 

Why your software monopolizes your time

First, let’s talk about why these apps want to take up all of your time. 

When it comes to social media, entertainment, and other general purpose apps, the motivation is pretty clear. They want to turn your views into advertising dollars. The more time you spend scrolling, the more money the app owner makes from advertisers. 

But business apps have a different aim. After all, most of them don’t run ads, so they clearly have a different goal in mind. 

Apps that you use to do your work every day, like CRMs and task management platforms, are focused on user retention. They want to have as many users as possible month after month, year after year, because that translates to subscription revenue. 

They might do that by creating a great product that solves an important problem for your industry. 

They might also create a large, recurring user base by making their users reliant on their product. 

Becoming reliant on a single app

If all of your contacts, all of your clients, all of your sales metrics, all of your inbound and outbound marketing and more are all inside of a single CRM like Hubspot or Copper or Pipedrive, then you’re pretty much stuck with that CRM. 

If updates to the app, or changes to your business make it so that it’s no longer a great fit, you may feel forced to keep using the software anyway, since making a switch could cost a great deal of time and effort. 

Ultimately, though, switching from one ordinary SaaS tool to another will always be possible, if at times frustrating. 

The worst examples of getting stuck with software always come from ERPs. 

The danger of ERPs

ERPs, or enterprise resource planning software, are typically consolidated applications that include features for running nearly every aspect of a business. 

If you’re running a growing business, you may have already considered switching to an ERP to try and boost your efficiency and start gathering more data about your company. 

ERPs offer some great benefits, but it’s not a decision to make lightly. You’ll have to abandon nearly all of the apps you’re using right now and switch to the ERP software instead. 

While switching away from a CRM or an Ecommerce platform might be difficult, switching away from an ERP - which might include lead handling, task management, human resources, purchasing and more -  will be a significant transformation for the business. 

And ultimately, the exorbitantly priced ERP will dictate how you get your work done 

So with all of these different applications trying to grab your attention and make you reliant on them, what’s the answer?

Whether you’re using everyday SaaS tools or an ERP, how do you get what you want from your software without becoming dependent on a single tool? How can you create systems that can grow and change as your company evolves?

Reclaiming your time with workflow automation

One solution that works for many companies is workflow automation with no-code and low-code tools. 

Workflow automation lets you connect the software you already use to take the best aspects from each, without having to spend all of your time manually switching from one app to another.

If you’ve been following our blog for a while, then you’re sure to be familiar with workflow automation already.  

But for the newcomers, workflow automation automates repetitive tasks in the software that you use every day

Here’s how it works: when a triggering event occurs in one app, that prompts an action, or series of automated actions, in other apps. 

Automate your workflows at any scale

An automated workflow can be very simple, or highly complex. 

For instance, a simple workflow might run whenever someone signs up for your newsletter on your website. The automation will then add the new subscriber to your contacts directory in Airtable, and subscribe them to your newsletter in Mailchimp. 

A more complex automated workflow might perform dozens of different actions.For example, you might have an onboarding workflow that triggers whenever you mark a deal as “Closed Won” in your CRM. 

The automation could then create a record in Airtable for the client, a project in your task management app, some basic onboarding tasks within that project, new folders in Google Drive to share deliverables, and a shared Slack channel for communication with your team. 

It could also send a welcome email to the new client with a scheduling link for your kickoff meeting, along with a form to fill out with basic information about their company. 

All of this could happen with the click of a button. 

Where to build automated workflows

Automated workflows can be built in thousands of popular web apps, and typically come in two distinct forms. 

First, you have native automations built into the app as an added feature.

Second, you have automation providers that are focused solely on moving data between any application that you’d like - as long as it has an API. 

Native automation features

You can find native automations in many popular apps that aren’t specifically dedicated to automation. Slack, Hubspot, and Mailchimp all feature automation capabilities, for instance. 

But these automations tend to be somewhat limited in scope, and will generally be related to the app’s main purpose - like sending messages in slack, or creating and managing campaigns in Mailchimp. 

Third-party automation providers: Zapier, Make, Workato, etc. 

If you want to exercise total control over your workflow and access complex logic to build sophisticated automations, then you’ll need to check out dedicated automation providers like Zapier and Make. 

These providers have thousands of integrations for the web apps you already use every day, and can build everything from simple two-step connections to intricate workflows like the onboarding example we discussed earlier. 

Controlling how you work with automation 

Whichever approach you choose, workflow automation is a great tool for gaining control of your time. It lets you define your processes as efficient, repeatable tasks.

Instead of opening up Mailchimp, Hubspot, and other apps to add a new contact, where you may easily get distracted with all of your campaigns, analytics and other data, you can just fill out a brief form, and use an automation provider to add the contact to every relevant app at once. 

You can spend one minute focused on completing that form, then get back to what you’re doing. And when you start using new apps, you can have that same ‘new contact form’ populate those apps as well with a quick update to the underlying automation.

Getting started with workflow automation

So how do you start implementing automated workflows at your company?

If you’d like help from the workflow consultants at XRay just reach out to us today and tell us about the processes you’d like to optimize. We help companies every day to build custom automated workflows to control the way they work, and the way that they spend their time. 

For the builders out there, we’d encourage you to seek out some of the thousands of automation tutorials that are available online. You can check out this resources board to see our in-depth beginner’s guides for Zapier, Notion, and Make. 

Organize your processes and resources with XRay Workflow

We built that board in XRay Workflow, an app that we’ve created to help people organize, maintain, and perform workflows.

While it might seem counterproductive to add another app to the mix after everything we’ve been talking about, the goal of XRay workflow is to let you keep using the apps you want, and to let you use them how you want. 

On an XRay Workflow board, you can use pins to save and access any content that you want from the web. You can embed or link to your most frequently used pages, save text snippets that you’re always copying and pasting, and a lot more. 

With XRay Workflow, you can curate the perfect workflow that lets you maintain focus from start to finish. 

You can include app embeds for the specific tables, pages, or views that you need to use for a specific task and ignore the rest. 

Curating workflows with a Stitch

When it comes to organizing your team’s workflows, one of the most useful pin types is the versatile “Stitch”. You can create Stitches from several pins to build practical walkthrough guides. 

The step-by-step documentation will be presented right alongside the apps where you actually accomplish the task. 

Building Stitches for your processes is a great way to refine your workflow, and even delegate it to someone else. Saving your workflow in a Stitch even allows you to train someone new, since you’ve documented the entire process step by step. 

By gathering all of the resources you need for each task into a dedicated stitch or board, you can reduce all of the time and focus you lose every day on context switching. 

Every board you create can also be shared with your entire team, so you can be sure that everyone is looking at and accessing identical, up-to-date information. 

If you’d like to try out XRay Workflow, just go to www.xrayworkflow.com. 

XRay Workflow is currently in beta, and is totally free to use.

Privacy and security in XRay Workflow

As the creators of XRay Workflow, we take privacy and security very seriously. Even though the beta for XRay Workflow is free, you and your data are not the product. 

We have plans for a premium version of XRayWorkflow to do things like Version Control for your processes, publicly publishing your process for other people to buy and adopt, and a lot more coming later on.

But the basic features of XRay Workflow will always be free. Our goal with XRay Workflow is to help teams maintain focus, consistency, and context, when performing repeated workflows.

If you’d like to organize your daily work, give it a shot, and let us know what you think. Our team is always working to make XRay Workflow a better experience for our members, and your feedback is extremely valuable. 

Staying productive in the attention economy

It’s always a struggle to stay productive in a world where every app wants your attention. But with workflow automation, you can carefully design the way you want to work to avoid wasting time in your software. Start exploring tools like Zapier and Make, or reach out to XRay today to get started. 

If you’d like more tips on productivity and workflow automation, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
May 3, 2023
Trigger Your Make Scenarios with Webhooks

Are all of your scenarios putting you too close to your operation limits in Make? Are you looking for a better way to build modular scenarios?

In this low-code tutorial, we’re going to show you how to use webhooks to trigger your automations in Make to reduce the number of operations your automations use and save some money on your monthly bill. 

At XRay, we build automated workflows to help people save time and create more reliable processes. 

We often use webhook triggers in Make to help reduce the number of operations consumed by each scenario, and to create modular automations that are easier to trigger, update, and maintain.  

In this tutorial, we’ll show you how we set up webhook triggers with a custom script in Airtable, and how you can accomplish something similar with a pin in XRay Workflow. 

Why use webhooks as triggers?

To get started, let’s explore why you may want to use a webhook trigger in Make. 

First off, your plan in Make places a limit on the amount of data that you can process, and the number of “operations” you can run. 

Cut down on wasted operations

Every time any module runs in one of your scenarios, that counts as an operation - even if the scenario doesn’t process any data or run completely. 

For instance, if your scenario has a “Watch” module as the trigger – like “Watch records” in Airtable – the trigger module will run every 15 minutes (or at what interval you’ve set it to). 

Even when it doesn’t find any new records – because there aren’t any new records for it to find – it still adds an operation to your total operations used.

One or two operations won’t make much of a difference, but it adds up fast. If you’ve left your “Watch” trigger to the default of 15 minutes, your scenario will use up 96 operations a day based on the first module alone.

You could set the interval to be slower, but this often won’t suit your circumstances. Scheduling a slow interval might mean that vital information comes to you hours later than you needed it.

Even if you only expect to have one or two new records a day, you might still need the automation to run promptly when those records come in. 

Instead, a more efficient and scalable approach is to replace your Watch module with a webhook trigger.

What are webhooks?

A webhook is, per Wikipedia, “a method of augmenting or altering the behavior of a web page or web application with custom callbacks.”

Essentially, a webhook lets you control actions in your app by sending a simple HTTP request.

With a webhook trigger, your trigger module won’t run at all and won’t use up any operations unless it catches a webhook.

However, it still will run instantly when it does receive a webhook. 

Building modular automations with webhook triggers

In addition to reducing your operation usage, you may want to use webhook triggers to build more modular automations. 

For instance, let’s say you have an automation that runs whenever you launch a new project for a client. 

This automation would create several relevant project folders, create tasks in your project management app, and send a message to the client. 

Instead of managing it all in one gigantic automation, you might want to split it into several different pieces: one for the project folders, one for the tasks, and one for the message. 

You could then trigger each piece as needed with webhooks. If you’re familiar with the concept of sub-Zaps in Zapier, this will allow you to achieve a similar modular effect in Make. 

Using a modular setup would make it much easier to maintain each piece of the workflow, and to call on them as needed. 

You could even re-use each scenario for other automations that might require a new folder, a new task, or a message to the client. 

Creating webhook triggers in Make

Whatever your use case is, setting up a webhook trigger in Make is pretty simple. 

To set up a webhook trigger in Make, create a new scenario or duplicate the scenario that you want to edit.

Add a “Webhooks” module. 

Choose “Custom Webhooks”. 

Then, add a new hook.

Be sure to give it a descriptive name so that you can keep track of it later in your list of webhooks. Then, click “save”.

To test the webhook, we need to configure another app to send data to the webhook’s URL. 

Copy the webhook to the clipboard, then open up the app you’d like to use to send the webhook. 

Configure another app to send data to your webhook

There are many apps that you can use to send webhooks. If you’re a developer, you can use an app like Postman.

But for all the no-code and low-code builders out there, we’ll show you how it works with Airtable. Then, we’ll walk you through an even easier way to send webhooks with our own app, XRay Workflow.

Sending data to a webhook from Airtable 

Airtable is an ideal app to use as a no-code or low-code database for your automations.

It’s a great place to store the data you create, look up data to use in your automations, and create some native automations as well. 

To send a webhook from Airtable, start by creating a new automation in your base. 

For example, we’ll just configure a simple automation that runs whenever a new record enters a specific view. You can use any trigger you’d like here, but using a “When record enters view” trigger will be a direct replacement for a “Watch records” module in Make. 

Note: Airtable doesn’t bill based on tasks or operations, so you don’t need to worry about how this trigger will impact billing. 

Then, add a “Run Script” step. This is where we’ll configure the automation to send data to our Make webhook. 

Don’t worry; all you’ll need to do is replace a couple of lines of text. Even if you’re not familiar with coding, you should be able to just follow along with this tutorial. 

We’ve included a code snippet on the resources board for this tutorial that you can copy and paste to get started. Just click here to access the resources board

In the screenshot below, you can preview the code snippet that you’ll find in the resources board. 

This script will get the record ID of each new record, the name and value of each field associated with that record, and then send all of that data over to our Webhook. 

Insert your webhook’s URL

Replace everything up to the question mark in “webhookUrl” with your webhook’s URL that you copied earlier from Make.

In other words, this line in the template…

const webhookUrl = `ADD WEBHOOK NAME?RecordID=${recordId}`;

Becomes something like…

const webhookUrl = `https://hook.us1.make.com/abcd123def456fghi789abcd123def456fgh?RecordID=${recordId}`;

In our snippet, the value for this variable should already be enclosed in backticks, but make sure to add them back if they were accidentally deleted. 

Provide your table’s name

Replace the value for the “tableName” variable with your table’s name or ID, once again enclosed in quotes or backticks. Write the name exactly as it appears in Airtable. 

In our example below, we’ve updated the table name to “Employee Onboarding”

Add an input variable for the Record ID

On the left hand panel, add an input variable. Name the input variable  “recordId”, and set the value to “Airtable record ID”.

Testing the webhook trigger

Return to your Make and run your scenario to make sure it’s listening for new data. 

Then, back in Airtable, go ahead and click on “Test” to run your automation’s script. 

You should see a success message in Airtable (Status 200). 

In Make, your trigger module should have retrieved some data from your Airtable script. Confirm that all of the data you need is present, then configure the rest of your scenario in Make.

In our example, we’ll just add a simple Slack step that will demonstrate that Make received data for every field in our Airtable base. The automation will send a quick DM that includes the record name and a couple of other fields. 

When we test the automation again by running the Make scenario followed by the Airtable script, we see a new message appear in Slack. 

With a webhook trigger, the scenario runs instantly when the webhook receives data, but doesn’t use any operations while it’s waiting. 

Sending data to webhooks with XRay Workflow

Now let’s take a look at using webhooks with XRay Workflow.

XRay Workflow is an app we’ve developed that lets users gather resources from around the web into simple, contextualized boards. 

XRay Workflow includes several different ways to “pin” content from anywhere on the web:

Doc pins, which feature real-time editing and collaboration on rich text documents;

Text pins, which let you copy and paste snippets of text with a single click;

Embed pins, which allow you to embed nearly any web app or web page;

Link pins, which let you save and quickly open any URL or local file path;

• And push pins, which let you send URL-encoded data on demand with a single click. 

Push pins are a great method for setting up automations with webhook triggers, and launching them whenever you’d like them to run. 

In this section, we’ll show you how to configure a push pin in XRay Workflow to trigger an automated scenario in Make. 

Downloading XRay Workflow

To get started, go to xrayworkflow.com to download XRay Workflow. Right now, the app is in beta and totally free to use on Mac, PC, and mobile devices.

If you use a webhook from XRay Workflow to trigger your automation, your initial Make module will essentially be the same as before. 

Once again, you’ll create a Webhooks module, choose “Custom Webhooks”, and add a new hook with a descriptive name. 

You can prompt the webhook to start listening for data by running the module. 

To provide that data, just copy the webhook URL, and open up XRay Workflow. 

In XRay Workflow, you can view all of your boards on the left hand panel. You can click on the + symbol to create a new board. 

Each board is divided into sections, which hold pins. You can add as many sections as you’d like to each board, and provide an optional description to give some more context for each section. 

Then, click on the + symbol in any section to create a new pin. In our example, we’ll add a new pin in the “Webhook Demo” section of our board. 

Give your new pin a name and a color, and choose “Push Pin” as the type.

Now, it will ask for a URL. Paste in the URL that you copied earlier from Make. 

Click on “Add Pin” to save this pin to your board. 

Now, you can click on the pin to send data to the webhook trigger in Make. Clicking on a push pin will trigger a 3-second countdown before actually sending the data. 

If you want to cancel your request, just click on the pin again to stop the countdown, and no data will be sent. 

If you let the countdown finish, you’ll see a brief confirmation that your data was sent. 

When you go back to Make, you should see that your webhook module has received data. 

Currently, XRay Workflow doesn’t support sending dynamic data through webhooks. You can add URL-encoded variables to the pin’s URL, but they’ll always have the same values. 

However, if you want to supplement your automation with additional information, you can always add a search step to your scenario in Make to  find data in Airtable, Smartsuite, or any other app you can see in XRay.Tools that has a Find or Search Step.  

Building efficient automations with webhook triggers

Building your Make automations with webhook triggers can help to reduce your operations usage and keep your monthly charges in check. It also makes it easier to maintain and update your automations as you look to build more complex workflows.

If you’d like to learn more about building no-code and low-code workflow automations, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Tutorial
April 26, 2023
How to Use the New Notion Buttons

Template buttons in Notion just got a whole lot better. 

Now, in addition to adding any content blocks you’d like with a click, you can create new pages, update database items, and even create content with AI. 

In this post, we’ll walk you through all of the latest features in Notion buttons, including new AI prompts, adding and editing pages in databases, and a couple of great new UX additions. 

Let’s get started!

Creating quick templates with AI features

Adding a new button

To access buttons, you can just pull up the content block menu on any page. 

Type “/button”, and click or press “enter” to add a button to your page. This will immediately open up a module where you can create and configure your button. 

The module will instantly open up the “add a step” menu, which will let you add an automatic action that will occur whenever you click on your finished button. After you’ve added your first step, you can just click on “add a step” again to add another step to your button. 

Currently, Notion gives you five different options for steps: “Insert blocks”, “Add page to…”, “edit pages in…”, “Show confirmation”, and “Open page”. 

Let’s go through these options one at a time. 

Use “Insert blocks” to create convenient templates

“Insert blocks” will be very familiar if you were using Notion template buttons before the recent update. It will allow you to define a set of blocks to use as a template. 

Then, whenever you click on the finished button, Notion will add the blocks in your template to the page. 

For instance, we’ll quickly put together a meeting notes template with a few headers to serve as section titles, and a couple of bulleted lists for notes. We’ll name our button “New Meeting Notes”, and click “Done” to save it. 

Now, when we click on “New Meeting Notes”, the template is instantly duplicated on the page. 

Again, this is nothing new if you’ve been using template buttons for a while. 

Using AI features in buttons

What is new is the suite of AI features that Notion has added, which work very well with the “Insert blocks” function in buttons. 

Notion has added some fantastic new AI features to their app, which we covered in a recent post

Now, they’ve created some convenient AI blocks that you can add to your buttons, so you can run prompts with a single click. 

Let’s edit our Meeting Notes button to see how these AI features work. 

In the same “insert blocks” step, we’ll type “/ai” to bring up a few AI blocks. 

These first two options – Summary and Action Items – are preconfigured buttons themselves. 

Clicking on them will prompt Notion’s AI to summarize the contents of the page, or generate a list of action items from the page’s content.

Buttons nested within buttons can be a little confusing, so we’ll show you how this works step by step. 

We’ll add an “Action Items” button to our “New Meeting Notes” button template, and click on “Done” to save our changes. 

Now, we’ll click on the New Meeting Notes button.

The button generates the same template as before, but now it includes an AI prompt at the bottom. 

We’ll fill in the meeting notes with some actual content, then we’ll click on “Generate” to create a list of action items from the page’s contents. 

And in a couple seconds, Notion generates a pretty good list of tasks. 

The summary button works in exactly the same way as the Action items button, so we don’t need to go through that step by step. 

Using custom AI blocks

However, “Custom AI block” is a little different. With “Custom AI block”, we can create a block with a prefilled prompt of our own. 

For instance, let’s add a “Key Questions” section to the meeting notes template. 

Then, we’ll add a custom AI block with the following prompt:

Create a two-column pros and cons list assessing each question listed under “Key Questions”.

We’ll click on “Done” to save the button. 

Then we’ll click on the meeting notes button to generate the template.

We’ll manually add some content into each section, including key questions, so that the AI prompt will have something to work with.

Then, we’ll click on the AI prompt. 

In a matter of seconds, we have a neatly organized 2-column layout with some legitimate pros and cons for each question. 

Combining AI prompts with buttons can help you to complete repetitive work or get insights from AI in much less time. 

Now let’s take a look at the other new features in Notion buttons. 

Adding and editing pages in databases

Automatically adding pages to a database

“Add page to” will let you add a page to a database of your choice whenever you click on the finished button. 

Just choose the database you want to add pages to, then configure how the page will be set up. 

First, choose “Add page to” from the button menu. Then, choose the database you want to add pages to. In our example, we’ll choose the “Meeting Notes Database”. 

You can add content to any field that’s already in the database, or just leave them blank. In our example button, we’ll fill in the title and the meeting notes date by adding properties for both, but we’ll leave attendees blank. 

We’ll give our button a title, and click “Done” to save our changes.

Now, when we click the “Add meeting notes to DB” button, a new page is instantly created in our database.

In the pop-up at the bottom of the screen, there’s a handy link that will take us to the newly created page. 

Automatically editing pages in a database

“Edit pages in” will let you automatically update pages in a database based on your own custom filters and configuration.

You can use this function to instantly update dozens or hundreds of records at once instead of making the same changes over and over again manually. 

For example, you might want to move the due date for every task that’s currently due on a company holiday.

Or you might want to remove every task that’s assigned to your recently promoted Project Manager and reassign them to your new hire. 

The “Edit pages in” function works with any field type, including “relation” fields.

In our example, we’ll update all of the HR tasks in our “Tasks” database with a relation to our employee handbook from 2023, replacing all of the relations to “Employee Handbook 2022”. 

First, add an “edit pages in” step to your button. Then, pick a database to edit pages in.

You can edit all pages in the database, or click on the dropdown to add a filter to identify the specific pages you want to edit.

In our example, we’ll set up a filter to only edit the tasks which have their “Department” set to “HR”. 

Then, we’ll click on “Edit a property” to update the “Related Documents” field. We’ll select the “Related Documents” property and “Replace with” Employee Handbook 2023. 

When you click your finished button, all of your updates will happen automatically. Once the automation starts, there’s no way to stop the changes.

The pop-up at the bottom of the screen tells you how many pages were updated, and gives you a link. 

If only one item was edited, then the pop-up will link directly to that one page. If the button updated several items, then the message will link to the edited database instead.

Utility steps: adding confirmation buttons and automatically opening pages

The last two steps we’ll cover today are focused on improving the user experience of your buttons. 

With these features, you can add a confirmation dialogue to your buttons, and automatically open a specified page. 

Let’s start with Show confirmation. 

Show a Confirmation before launching your automations

It can be pretty risky to let users make extensive changes to your databases with a single click. After all, anyone might click it by accident and run hundreds of changes that shouldn’t have happened. 

With a Confirmation step, you can easily add a simple safeguard that will prompt the user to confirm their action a second time before running the automations in your button. 

To add confirmation to any button in Notion, just edit the button and add a new step. Then, choose confirmation. 

You can customize all of the text in the confirmation dialogue, including the labels for both buttons, but we’ll leave them to their defaults in our example. 

Then, move the confirmation step up to the top of the list, so it’s the first action that the button performs. 

Always make sure to place the confirmation step before the action that you want to include confirmation for. 

Click “Done” to save your changes.

Now when you click on the button, a modal pops up asking whether you want to continue or cancel. Clicking “Cancel” will prevent the automation from running. 

Automatically open any page

Finally, let’s take a look at “Open page”. 

With “Open page”, your button will automatically open up whichever page you choose. This can be a useful function to add to any button that adds new pages or edits existing ones. 

The built-in pop-up dialogue will include links to whatever was edited or created, but that message is easy to miss, and opening the page automatically will save you a click.

To add an open page step, add or edit any button in Notion, add a step, and select “Open page”. 

Choose the page you’d like to open. We’ll set it to open up the Meeting Notes Database in our example.

You can choose to have it open up in side peek, center peek or full screen. 

We’ll choose center peek, and click “Done”. 

Now when we click the button, the new page is created, and the database is opened up automatically. 

Automate your workflows with Notion’s buttons

Notion’s new button features preserve everything great about template buttons, and add new automated actions to let you be more productive.

With the ability to create new pages, update database items, and even use AI to create content, these buttons have become surprisingly powerful little tools for workflow automation.

Try them out today, and start saving time on all your tedious tasks in Notion. 

If you’d like to explore more tips and tutorials about no-code workflow automation, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.

Understanding Automation
April 19, 2023
Stop Switching to New Apps

Are you and your team struggling to get the most out of your software? Do you feel like you’re paying way too much money for what you’re getting? Are you thinking about switching tools for the hundredth time? 

If your software isn’t living up to expectations, swapping it for something new is a tempting solution. 

But in many cases, the issue isn’t the app itself or its features. The issue is how you’re using the app. 

In this post, we’re going to explain why, more often than not, you don’t need to switch software to get the results that you want. Instead, using automation to connect your tools together will create consistency, trust, and confidence among your team. 

My Experience with finding the right task management tools

Any modern company uses lots of SaaS tools.

And no matter how many you’re using, it’s always tempting to add more to the stack, or to try and switch out your tools for better ones. 

Before I launched XRay.Tech, I founded, ran and eventually sold a digital design agency called Checkmate. At Checkmate, we went through just about every single task management app there is. 

We used Basecamp. We used Asana several different times. We tried Monday.com for a while. We used apps that I can’t even remember anymore. 

In the end, none of them really made a difference. 

Now, don’t get me wrong. My team at Checkmate was a group of talented, motivated people. They had no problem getting their work done. But the task management apps we kept cycling through had very little to do with that. And ultimately, the apps didn’t give us what we were really looking for. 

Me and my leadership team weren’t just trying to get people to stay on task or stay busy. 

We wanted to get a high-level view of every project. We needed to see how work was getting done so that we could capacity plan and quote upcoming projects. 

We wanted to give clients realistic timelines, and we wanted to prevent our team from having to crunch to get things done. 

We always struggled to find that balance, and switching tools really didn’t help. 

Building a project management system to fit our strategic goals

Today, at XRay, we’re using a custom task management system in Notion, based on Thomas Frank’s ultimate task template. 

And now, we’re able to get those exact insights that I was always looking for at Checkmate. 

But the key difference here is not that we’ve switched to Notion instead of Asana or Basecamp. What really matters is how we create and manage tasks, and the systems we’ve built around task management. 

It’s not the app that really matters; it’s how we’re using it as an organization, and how we make it fit into our workflows.

3 Questions to ask yourself before making a switch

Before you make a switch - before you ask your team to migrate all of their data and to start over from square one - consider these questions:

• What do you want to get from the app that you’re not getting now?

• What process do you and your team use the app for?

• And could you build any no-code systems to support consistent use of the app?

Exploring these questions will often prevent you from needing to make yet another switch that will cost your team’s time and resources. 

You really don’t know how green the grass is on the other side of a tool transition. And if you do need to try a new app, getting the answers to these questions will help you to actually pick the right one for your goals. 

Let’s take a closer look at each of these questions, and how they can guide you to the right decision.

What do you want to get from your app? 

First, what do you want to get out of the software in question? Try to go beyond just the basic functionality of the app. 

For instance, with our task manager, we obviously want our team members to be able to create tasks and track their progress. But the larger goal was to be able to gather data on how our team works. 

How long does it take to complete a project? How much of our time and resources are we devoting to each of our clients and members? Are we able to meet our projected timelines for project completion? 

These were the data points we were really looking for. 

Ultimately, most task management apps offer the features to track projects and tasks, and to sort them by client, project, and status. 

So the real issue is less with the tool that we were using, and more with the way we’re using it. 

How does your team use the app now?

At XRay, we’ve made sure to create a standardized process for task creation and management. We’ve made a clear distinction between tasks and projects, and we’ve made an extremely simple way for anyone on our team to create a task. 

Because ultimately, the biggest problem I encountered with task management apps at my old company wasn’t missing this feature or that one. 

It’s that team members wouldn’t know if the work they were about to do constituted an entire new project, or if it was just a new task within a project. 

It was often too much of a hassle to just make a task, so they wouldn’t always track the work they were doing. Which, in the end, undermined our big picture goal of tracking how our entire team works. 

Making sure our team knows exactly how and when to create tasks at XRay has made our task management system much more successful. 

Example: getting the right data from a CRM

For another example, with a CRM, you certainly want to be able to track the progress of every lead and deal that you interact with. But the real strategic purpose of having a CRM for your company is likely more about the metadata that the CRM can gather for you. 

You want to know how many of your leads are closing, so you can see if your team is meeting your sales targets. 

You want to see the source of each lead, so you know which channels are giving you the best referrals. 

Virtually any CRM can do this, but the key is to ensure that your team is entering every lead correctly and promptly. 

Otherwise, you’ll end up in the same situation my old company faced with task management: your app might be just fine, but it will be missing the data that you want it to collect. 

This topic of data creation - whether that data refers to tasks or leads or something else - takes us neatly to the last question I want to address today. 

Building no-code automations to support your app

What no-code systems can you build to support your team’s use of the app?

This can certainly be a trickier question, but it’s the sort of thing that we specialize in at XRay. 

There are a few different ways our team can create tasks, but the primary method that we encourage actually starts in Slack. 

All we have to do to create a new task is to write a message in a relevant channel.

 

Then, we just react with a custom emoji that corresponds to the team member we want to assign the task to. We even have a backlog emoji if the task isn’t ready to be assigned yet. 

We’ve set up an automation in Make and Airtable that will then take that message and create a task with it in Notion.

It will automatically add it to the project that we’ve associated with the channel, and it will assign it to the correct person. It will also fill in other fields with our preconfigured defaults, like setting a due date 7 days after the current date.

We like this system because it’s quick and easy to use, and it keeps everything visible for our whole team.

The automation also ensures that all of the vital information is present for every single task that we create. It dramatically reduces the number of uncategorized or miscategorized tasks that would make our data meaningless.  

Creating consistent, reliable processes with workflow automation

Workflow automation tools like Zapier, Make, and Airtable aren’t just about saving time. They also help you to create standardized, reliable processes like our Slack task maker. 

They ensure that your team creates complete and useful data, and they let you use your apps the way you want to. 

To revisit our CRM example, you might want to create a simple Airtable form that your team can use to enter leads. This way, you can ensure that every lead is created with all of the required information, and none of the essential fields are skipped. 

To make things simpler, you can also exclude any fields or attributes that you aren’t interested in tracking. 

Simple automations for tasks like data entry can help to make sure that your team is using each app correctly, which in turn can help you to accomplish your big picture goals with the app. 

Before making a switch, try rethinking the way you use your software

We all use a long list of software every day to do our jobs. As we start to get frustrated with the apps at our disposal, our first instinct is often to switch to something new. 

But in many cases, you just need to rethink how you’re using your software. What do you want to accomplish with it? How is your team using it? Can workflow automation help them to use it more consistently and correctly?

More often than not, answering these questions will save you and your team from a costly software switch. 

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

Tutorial
April 12, 2023
How to Write API calls in Zapier

When Zapier doesn’t have the integrations or features that you’re looking for, you don’t need to give up on building the automation.

Instead, you can just use an API call to create the functionality yourself. 

In this post, we’ll show you how to write an API call in Zapier. 

We’ll walk you through some strategies you can use to write API calls in your Zaps, even if you’re not familiar with coding. 

You can use these techniques for both the “Webhooks by Zapier” action, or Zapier’s new “API Request” actions, which are currently in beta. 

When and Why to Use an API Call

First, let’s explore when and why you should use API requests or webhooks in Zapier. 

In most cases, you’ll want to use an API call whenever Zapier doesn’t natively support the functionality that you want to access. 

There are three main use cases for writing API calls in your Zaps:

• If Zapier doesn’t have an integration for the app you want to automate, you may be able to build your Zap with webhooks instead. 

If Zapier does support the app you want to automate, but doesn’t support the specific action you want to perform, then you can try to add that action with a webhook action, to make a custom API call. 

• Finally, if Zapier supports your app and your desired action, but doesn’t have all of the configuration settings that you want to use, then webhooks with an API request may be able to help. 

Discover what you can automate with XRay.Tools

Since using webhooks in Zapier is mostly about compensating for the things Zapier can’t do, we’d always recommend doing a quick search on XRay.Tools before you commit to writing an API call. 

Just enter the name of your app, and you’ll see every trigger, action, and search that you can automate with it in Zapier, Make and Workato. 

Even if you’re pretty sure Zapier doesn’t support what you want to do, it’s always worth a quick check first.  Zapier updates support for their apps weekly, so you never know what may have changed since you last tried building your workflow. 

Zapier’s new “API Requests” actions

Checking XRay.Tools will also show you if your app has support for Zapier’s new “API Requests” feature. 

API requests are in beta at time of writing. Right now, they offer somewhat similar functionality to the “Webhooks by Zapier” action which we’ll be using first in this tutorial, but they let you skip a few steps by including authorization, which is often one of the trickiest parts of API Calls. 

On the other hand, you will need to write the body of your request as code, and won’t be able to structure it as a simple form, so it may be easier for low-coders to stick with the “Webhooks by Zapier” action. 

If your app has support for API Requests, you’ll see the action right alongside all the app’s other available actions in XRay.Tools

If you don’t see an “API Request” action, or if you just don’t want to write out your request with code, then you can just use the “Webhooks by Zapier” action instead. 

Writing an API Call with “Webhooks by Zapier”

Now let’s go through the process of creating an API call in Zapier step by step. 

Before we start building an API call, we’ll first take a moment to confirm that we can’t do what we want with Zapier’s prebuilt actions. 

For our example, we want to automatically create projects in Harvest. This is something we can do in Zapier.

However, we also want to make sure that every project created by this automation is set to a fixed fee of $750.

“Fixed fee” isn’t an option that Zapier gives us, so we’ll need to go with an API call instead. And since “API request” isn’t available for Zapier’s Harvest integration, we’ll need to use the dedicated “Webhooks by Zapier” integration. 

Our example Zap already has a trigger to watch for new records in Airtable, so we’ll add an action by searching for “Webhooks by Zapier”. 

The webhooks action will prompt you to pick an event type. If you’re not familiar with writing code, or API calls specifically, this might already seem a little confusing, but don’t worry; there’s an easy way to make sense of it. 

Your options are Custom Request, GET, POST, and PUT. 

• GET will let you search for existing data in your app. 

• POST will allow you to create new data.

• PUT will allow you to create new data, or update existing data. 

Custom Request will let you choose other methods, like PATCH or DELETE. 

NOTE: Zapier does not natively support any DELETE actions across any application, so Custom Requests will be your only option if you’re trying to automatically delete something. If you choose to write an API call to delete data, be very careful; any errors in your API call might end up deleting data you didn’t intend to destroy. 

You can probably figure out which will suit your needs just based on those descriptions, but this is as good a time as any to check your app’s API docs to be sure. You’ll be referencing the API docs a lot as you’re building, so you may as well start early.

If you Google “[your app] api docs”, the official API documentation should be one of the first results. 

Harvest’s API docs are very well organized, and include lots of useful examples to help us get started. 

Unfortunately, not every app will keep neat and tidy documentation like this, but if you’re struggling, you can always search for support from other users or leave a comment below and we’ll try to help you out. 

Since we want to create a project in our example, we’ll scroll down to the “Projects API” section, and click on “Projects”. 

Here, the docs explain all of the attributes that make up a “project” object in the app. These are all the settings that we have access to via Harvest’s API. If it isn’t listed here, then we can’t add it, update it, find it, or delete it. 

Under “Create a project”, we’ll see more specific information about actually creating a project. Right at the top of the section, we can see the type of request we’ll need to use: POST. 

So we’ll choose POST as our event back in our Zap, then continue. 

Building and configuring a basic API call in Zapier

Start with the bare minimum

When you’re creating an API call in Zapier, the best approach is to start with the bare minimum, and build up from there. 

Your first goal should be to successfully create an object with the webhooks step. Just provide the required fields, and type in static data for now. 

Once you’ve done that, you can go back and configure more specific settings, or add dynamic data from earlier steps in your Zap. 

URL and payload type 

Every API call needs a URL to send your request to. Your app’s API docs will specify the required URL for your desired action. 

In the Harvest API docs we can see an example of a full API call that will create a new project.

In the first line, after “curl”, we can see the URL we need to use. Once you’ve found your URL, just copy and paste it into Zapier, without the quotes. 

If you’re primarily a no-code builder, we’d recommend sticking with “form” for the payload type. 

That will let you enter all the data you need into each form field, similar to any other step in Zapier, instead of needing to mess around with specific coding syntax. 

If you’re more comfortable with coding, you can choose another option like “json” or “raw”, but we’ll stick with “form” for our example.

Technically, these three formats are equivalent, so it's up to you and what you’re comfortable with. 

Filling in the data fields

Under this data section, you’ll need to fill in information for each attribute of the object you want to create (or update, or find). 

In our case, that means we’ll need to define several attributes to create our “project” object. 

Going back to Harvest’s API docs, we can see that several parameters are bolded. These are the parameters that are listed as “required”, so these are the ones we’ll start with. 

Again, it’s always best to start with only the required fields. Even though the optional parameters include settings that we want to access, we can add those once we know that our API call is working as intended. 

Once you’ve determined which fields are required, create a key-value pair for each of them in your Zap.

In our example, we’ve added key-value pairs for client_id, name, is_billable, bill_by, and budget_by. These labels are the “keys” - essentially, the name of each pair. Next, we’ll fill in the “values” - the setting or content it includes. 

The client ID attribute will tell Harvest which client we want to create the project for. We’ll grab the ID from the URL bar of the client’s page in our Harvest account, and paste it into Zapier.

This is a common trick for finding IDs for objects in your apps. Logging into your SaaS tool will often show your object’s ID inside of the URL bar - whether that object is a client in Harvest, a page in Notion, or a task in Trello. 

Next, we need a name for our project. The API docs indicate that this parameter accepts a “string”, which basically means that it just needs text.

We can give our Project any name we want. We’ll enter it without any quotes or other special characters. 

“Is_billable” is a boolean parameter, which means it accepts values of “true” or “false”. Since we want our project to be billable, we’ll enter “true”. Again, we’re not including any quotes or any other special characters. 

“Bill_by also accepts a string, but in this case, the string has to match one of the four options indicated in the description. We’ll bill by “project”, and enter Project exactly as it appears in the documentation. 

Budget_by is similar to bill_by. We’ll enter “person” to set our budget based on hours per person. 

The remaining options can be left to their defaults for our API call. In most cases, you won’t need to edit these. 

Adding headers for authentication and more

All of the data we want to create is in place, but we need to fill out the headers first. Headers are often used in API calls to identify and authenticate the user making the request. 

Just as a reminder: if you’re using an “API Request” action instead of a webhook, you won’t need to include any additional headers for authorization.

If we go back to the example API call that we found in the Harvest docs, we can see three lines of code flagged with an “H”. These are the headers that we need to include in our API call. 

We’ll add each of them as keys under Headers, leaving out the colon and quotes: Authorization, Harvest-Account-Id, and User-Agent.

For the value associated with  ‘Authorization’, we need to enter the term “Bearer” and a space, then provide a personal access token from Harvest. 

We can just go to the developers section in Harvest to create a token and copy it. We can also see our Account ID in this same section, which we’ll need next. 

Sensitive data like access tokens and account IDs can generally be found under a “developers” setting, or elsewhere in your app’s preferences. Your API docs may contain information specific to your app, or you may need to search through their other support docs. 

Once we’ve pasted both of these into Zapier, we just need to provide a User Agent. This simply identifies the user making the API call. Their API docs don’t appear to include any specific information about what’s required here. 

Harvest suggests using your email address, but it appears that you can put anything in this field; the API call will work anyway. 

This is an area of API calls that will differ for every application. The requirements in your header can be tricky, so be patient and test one thing at a time. 

Now that we have our data and headers all set, we can test the step. 

Success! We’ve created a project. If we check Harvest, we can see the project, complete with all of the options we configured. 

Adding optional parameters and dynamic data

Now that we’ve built our bare minimum API call, we can go back and add the optional parameters we want to use, and dynamic data generated by Zapier. 

Building up from a simple API call and testing your changes one step at a time will be a huge help when you inevitably run into some errors.

It will make it much easier to isolate the change that’s likely to have caused the error in the first place. 

First, we’ll go back to the data section of our API call and add key-value pairs for “is_fixed_fee”, which we’ll set to “true”, and “fee”, which we’ll set to 750. 

Then, we’ll add some dynamic data to one of the other data fields. We’ll replace the project name with the “Name” field that Zapier retrieved from Airtable. 

We’ll test the Zap again, and confirm that a project was created in Harvest with a fixed fee of $750. 

Writing an API call with Zapier’s new “API Requests” actions

Next, we’ll take a quick look at the other method of creating API calls in Zapier.

As mentioned earlier, the API request action is only available for a select list of apps right now. You can check the whole list in this Zapier support page, or you can search for your app in XRay.Tools to see if “API request” is supported. 

For our example, we’ll use the API request action to send a message in Slack, since we can see here in XRay.Tools that Slack has an “API request” action available. 

We’ll pull up Slack’s API docs for reference, and create a new Slack action. We’ll choose “API request”. 

The API Request options are somewhat similar to our earlier Webhooks steps, but there are some key differences. 

As Zapier notes, authentication is handled automatically, so we don’t need to include any headers for authentication. 

You can also only pass along raw data with the API requests action; you currently can’t enter key-value pairs into convenient text fields like before. 

But just as before, you’ll need to provide a Method and a URL, which you can find in your app’s API docs. 

By default, this action will send URL-encoded data. URL encoding is a bit of a pain to work with, so in our example, we’ll add a header to change the Content type to application/JSON. 

That will make our body much easier to read, and we won’t have to include characters like “%20” for every space. 

Like most API docs, Slack’s includes full examples of API calls. We’ll just copy and paste an example of a simple Slack message into the body of our API call, and update it with our own channel ID and text. 

NOTE: make sure that your code syntax matches the content type specified in your header. Since we’ve set the content type to JSON, our body must be formatted as a JSON object. 

With our API call configured, we’ll test the step. Note that when you use the API Request action, your Zapier test may be considered “successful” even if your API request failed. 

If you were able to send a request and get a response, Zapier usually considers that to be a success, even if it returns an error. 

So make sure to review the output of the step, and check your tool directly, before continuing. 

When we check Slack, we can see the message sent exactly as we set it up. 

All in all, we’d recommend that most low-coders stick with Webhooks by Zapier for now. API Requests still have a lot of bugs to work out, and they’ll require you to write out the entire body of the request.

If you’re struggling to get authentication to work in a Webhooks step, then you can try out API requests. Otherwise, I think Webhooks is the way to go, especially since “requests” are still in beta and limited to a few dozen tools.

Understanding and troubleshooting error messages

Before we wrap up this walkthrough, let’s quickly go over the kinds of error messages you’re likely to see as you’re building API calls in Zapier.  

If you get an error when you test your “Webhooks by Zapier” or “API Requests” action, you’ll likely see either a 400 response, or a 500 response. 

400 Errors

If you see a 400 error, like 404, that means there’s an error in your configuration. Check your API docs again and make sure you’ve configured everything correctly. 

Look for misplaced commas, or extra quotes, or any other small typo in your syntax that might have broken your API call.

If you still keep getting a 400 error, try searching on a resource like Stack Overflow for the issue to get more information. 

Again, keeping your API call simple to start with will make it much easier to find the problem. There will be far fewer variables that you need to test and control for. 

500 Errors

If you see a 500 message, like 503, then there’s an error in the app itself. Wait a moment and try again to see if the issue resolves itself. 

If you keep getting a 500 error, check to see if the app’s servers are down at a site like downdetector.com.  

You may have to wait a while for the app’s dev team to address the issue, but there’s nothing that you can do to fix it. If the tool is down, the tool is down. You’ll just have to wait. 

Ultimately, building API calls will often require a lot of trial and error as you figure out what’s working and what isn’t. 

Just take your time, read the docs carefully, and look for help when you need it, the comments section below is a great place to start. There are also thousands of people on Zapier’s forums, StackOverflow, and other communities building similar things who can give you great advice. 

Create any automation you want with API calls

Tools like Zapier provide thousands of integrations for popular apps, but sometimes, the solution you need won’t be available right out of the box. 

Even if you consider yourself a no-code builder, making the jump to a little low-code with API calls and webhooks will unlock a ton of new possibilities. 

So when you want to create an integration that Zapier doesn’t have, don’t be afraid to open up the API docs and start reading. 

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