The XRay.Tech Blog
Case Study & Tool Belts
"This is incredible. The robots are doing so much of this work, and it's way better than we could have done it ourselves. The documentation is also amazing – we’re ready to start training our staff how to perform this workflow right away!"
For brick-and-mortar businesses looking to expand into digital payments, Stripe offers a reliable and trusted solution. While Stripe is incredibly powerful, getting started can feel overwhelming if you're new to digital payment processing.
Here are five essential tips to help you make the transition smoothly, based on our experience helping traditional businesses embrace digital payments.
1. Prepare Your Business Documentation First
Before diving into Stripe's technical setup, gather all your business documentation. You'll need:
• Your business's legal name (exactly as it appears on IRS documents)
• Employer Identification Number (EIN)
• IRS letter 147C or similar verification document
• Business bank account information
• Business owner's Social Security number and other personal info
Pro tip: If you need a 147C letter from the IRS, call them directly to request it. While they may not explicitly offer a "147C letter," they will send you official documentation containing your EIN and legal business name, which Stripe will accept for verification.
2. Understand the Difference Between Products, Prices, and Payment Links
Stripe organizes your offerings in a hierarchy:
• Products are the base items or services you're selling
• Each product can have multiple prices (perfect for different tiers or variations)
• Payment links connect your products to customers without requiring any code
Start by creating your products first, then set up your prices, and finally create payment links.
This structured approach will make it easier to manage your digital offerings, especially if you're converting physical goods or services into digital payments.
3. Take Advantage of No-code Payment Links
Payment links are your best friend as a no-code business owner. They allow you to:
• Accept payments without writing any code
• Collect customer information like shipping addresses and phone numbers
• Add custom fields for business-specific needs (like license plate numbers for parking services)
• Enable multiple payment methods including Apple Pay and Google Pay
• Implement promotional codes and discounts
The best part? You can easily embed these payment links into any website builder platform, from WordPress and Wix to Squarespace and Softr. They’ll also work great on XRay Workflow.
To create a payment link, just select “Payment links” under the “Shortcuts” menu, and click “New”.
4. Set Up a Testing System Before Going Live
Before accepting real payments, set up a testing system to safely verify that everything works correctly:
1. Create a 100% off coupon code for internal testing
2. Use this code to run complete transaction tests
3. Verify that customer information is collected correctly
4. Check that confirmation emails and receipts work as expected
5. Test the customer experience from start to finish
This approach lets you validate your setup without risking real money or creating confusion in your accounting.
To create a new coupon, open up your product catalog, select the “Coupons” tab, and click “New”.
5. Consider Additional Features for Better Customer Experience
Once your basic setup is running, consider enabling these helpful features:
• Two-factor authentication for account security
• Automatic tax calculations based on your location and product type
• Climate contribution options (contributes 0.5-1.5% of your transactions to C02 removal)
• Custom receipt and invoice generation
• Address collection for customer records
These features can help create a more professional and trustworthy experience for your customers while making your business operations more efficient.
Start collecting payments with a hassle-free system
While transitioning from brick-and-mortar to digital payments might seem daunting, Stripe's no-code options make it entirely manageable. The initial setup might take some time – our recent parking lot client took about a month to complete verification – but the result is a professional, reliable payment system that can help grow your business.
Remember, you don't need to be a technical expert to accept digital payments. With these tips and Stripe's payment links, you can create a professional digital payment system that works alongside your existing business operations.
If you’d like to learn more about optimizing and automating your business, be sure to check out the other posts on check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Notion is a great app for organizing your team’s data and documentation, but compared to a platform like Airtable, it has always been rather lacking when it comes to automation.
And while they still haven’t closed that gap, Notion is making some impressive progress with their internal automations.
In this post, we’re going to show you how to use the latest database automation features in Notion to help you save time and get more out of your Notion workspace.
We’ll start with a very quick Slack automation that you can build with a free Notion plan. Then, we’ll show you some of the more advanced features that require a Notion Plus account.
What you’ll need to follow along with this tutorial
- Notion - free account (for the first automation)
- Notion Plus account (for the second automation)
- Slack - free account
- GMail - free account
Building a simple automation: Slack alerts for new pages in a Notion database
To begin, we’re going to build an easy automation that just sends a Slack alert whenever a new page is added to a database in Notion.
This is an automation that you can build with free plans in both Notion and Slack.
Summary of steps:
Create a new automation
Choose a trigger: “Page Added”
Pick an action: “Send Slack notification to…”
Connect your Slack account to Notion
Select a Slack channel
Test the automation
Creating a new automation
To get started with database automations in Notion, just open up the database you want to automate. Then, click on the lightning bolt up in the top right next to the search icon.
This will immediately create a blank automation canvas that you can configure with custom settings.
Under “When”, you’ll need to choose a trigger. In workflow automation, a “trigger” is an event that prompts an automation to run.
For this workflow, pick “Page added”. That means this automation will run whenever a new page is added to this database.
If you’d like to restrict the automation so that it only runs for new pages that appear in a specific view, you can select that here where it says “for all pages in”.
However, for this example, we’ll have the automation watch the entire database for new pages.
Adding an automated action: Send a Slack message
Under “Do”, you can pick an automated action to perform.
On the free plan, you’ll see that only one option is available: “Send slack notification to…”
This will automatically send a precomposed Slack message to a channel of your choice whenever your trigger event occurs.
There’s not much to configure in this action. The only setting you can customize is the channel that the message will be sent to.
Connecting Slack and Notion
When you click to select a channel, you’ll be prompted to connect a Slack account to Notion if you haven’t done so already. Click “Connect” to add a Slack account.
You’ll then see two pop-up windows appear in succession. The first pop-up will let Notion access Slack.
And the second one will let Slack access Notion.
Choose a channel for your notification
Now that Slack and Notion are both authorized, you can pick the channel you want to use.
For our example, we’ll choose a “tutorials” channel.
For this action, there’s nothing else to configure, so you can proceed to testing the automation.
Testing your automation: using forms to add pages to a Notion database
Whenever you create an automation that runs for new pages in a Notion database, we’d strongly recommend using forms to add new pages rather than adding them directly to the database.
If you create a new blank page and then fill in the info one field at a time, the automation might run before you can finish providing the necessary information. Consequently, the automation might not run correctly, as it could be missing critical information.
You can click on the plus button to create a new view, and select “Form”.
This will automatically create a form for every editable field.
Under “Share”, copy the link for your form and open it in a tab.
Fill out the form to create a new page with all of its information already in place.
Notion automations run every few minutes, so the Slack message won’t appear right away. However, within a couple minutes, you should see the Slack alert with Notion’s preconfigured message, which includes links to the database and the new page.
This automation is all set. If you want to edit it or turn it off, you can find those options by clicking on the automation icon, and selecting the three-dot icon next to the automation’s name.
Expanding your database automation with Notion Plus
Next, let’s take a look at what Notion Plus unlocks for database automation.
We’ll build a similar but more advanced automation. It will still trigger when a new page is created in this database, but instead of sending a Slack message, we’ll have it compose an email in Gmail.
We’ll also include a custom variable that uses a formula to dynamically retrieve the URL of the new page.
Create a new automation and choose a trigger
To begin, open up a database, and click on the lightning bolt automation. Create a new automation, and choose “Page added” as the trigger again.
Add an action: Send mail
For the action, you’ll see that there are now several more accessible choices. you can edit properties in a database, create new pages, edit pages, send Notion notifications, or define custom variables.
For this first action, choose “Send mail to…”.
Just like with Slack, you’ll need to connect a Gmail account before you can complete your setup.
Now that Notion is authorized to use Gmail, you can compose the message you want to send.
For the recipient, you can either choose to send the email to a specific account attached to your Notion workspace, or dynamically pick an address from an email field in the table.
In our example, we’ll just send all of these alerts to our XRayTutorials email.
For the subject line and message, you can enter static text directly, and insert dynamic data retrieved in the trigger.
In our example, we’ll begin typing a simple subject line - “A new contact was added to the Directory database on…”
Then, we’ll insert some dynamic data for the date and time. You can type @ to pull up data retrieved in the trigger.
You’ll see all of the page’s attributes, as well as some metadata like the date and time the automation was triggered.
For our example, use “time triggered” to display the date and time the new page was created.
In the message, we’ll provide some more detail about the page, like its title, and the email address of the new contact that the page represents. We’ll also include the URL of the page.
Add an action: using a formula to update a property with conditional logic
The Gmail step is all set, but let’s add one more step here before we finish and test the automation.
Let’s use Notion’s formulas with the “Edit property” step to update a field to a different value based on the value in another field. In our example, we’ll change the contents of the “Language” field based on whatever’s in the “Country” field.
Add a new step at the end of the automation. Choose “Edit property”.
Choose the field you want to edit. For instance, we’ll be updating the “language” field.
Then, click on the sigma symbol (Σ) to write a formula.
We’ll start with an ifs statement, because we want to change the value of this variable based on different conditions.
First, we need to specify a condition to evaluate. We’ll check if the “Country” field equals “UK”. You can see the syntax for that condition in the screenshot below.
Then, we'll provide the value to use for the “language” attribute if that condition is true – that is, if the country is UK. We’ll enter “English”.
You can add as many conditions as you’d like to an ifs statement. We’ll add one more for “France” and “French” using the same syntax.
Finally, we’ll wrap it up with a default choice - “No language provided”.
If none of the other conditions are true, then Notion will use this default choice, so we don’t need to provide a specific condition to test – just the value to use.
Learning more about formulas in Notion
Formulas can do a lot to expand the functionality of Notion automations, so we’d recommend checking out Notion’s docs to learn more about how they work.
Testing the finished automation
This formula’s all set, so we’ll click on “Save” to save the step.
Then, we’ll click “Create” to complete the automation.
Once your automation is finished, give it a few tests to make sure that conditional logic in the formula works as intended.
For instance, we’ll submit three form responses: one from the UK, one from France, and one from India, which should trigger the default condition.
After waiting a moment, you should see some email alerts for each new contact.
And if you check the database, you should see that their languages are all configured correctly.
Improved automation features for Notion power users
Ultimately, Notion’s automation tools are still not much to boast about in contrast to Airtable – and they certainly can’t compete with dedicated automation providers like Zapier, Make, or Pipedream.
If you’d like to take your no-code automation game to the next level, we’ve prepared a beginner’s guides for all three:
However, for Notion power users or organizations who are already storing their data in Notion, these updated automation features will be a quick and convenient way to automate simple tasks in an app you’re already familiar with.
If you’d like to learn more about automating your work with the software you use every day, be sure to check out the other check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Are you a software developer or a low-code builder looking for a fast and functional way to build automations?
While providers like Zapier and Make are great for connecting supported apps together with a simple visual interface, their options for adding your own custom code are pretty limited.
If you’d like to use an automation provider that gives you the freedom to enhance your automations with custom code, sync your projects to Github, and easily write any API call you’d like, then you should explore Pipedream.
In this comprehensive guide, we’re going to show you everything you need to know to get started.
We’ll begin by explaining what Pipedream is, and showing how its unique features stack up to competitors like Zapier and Make.
Then, we’ll show you how to build your first automated workflow in Pipedream. After we’ve built the basic, 2-step workflow, we’ll give it some enhancements with a formatting step, some custom code, and conditional logic.
What is Pipedream?
Pipedream is an advanced automation provider that lets you build automated workflows by connecting web apps together.
When a triggering event occurs in one web app, the automation will start running, and will perform actions in one or more other web apps.
For seasoned no-code builders, this probably sounds very similar to Zapier or Make. In many ways, the comparison is appropriate, as you can certainly use Pipedream as a no-code platform if you’d like. They have pre-built integrations for over 2,000 apps and counting, and you can automate your work with these integrations without needing to write any code at all.
Advanced technical features
However, Pipedream includes many technical features that distinguish it from its competition. On their site, they promise “code-level control when you need it and no-code when you don’t”.
In our experience using the app, that claim rings true.
Pipedream gives you the speed and convenience of a no-code platform, with everything being deployed and hosted on Pipedream’s servers.
However, it also gives you the flexibility of adding custom code when you need it, and their options for custom code go far beyond providing a plain text editor to paste in a function or two.
Extensive support for custom code and engineering best practices
The code editor in Pipedream features syntax highlighting and suggestions, so you can write JavaScript, Python, Golang or Bash with many of the same features you’d expect from your favorite IDE.
On top of that, you can also sync your Pipedream projects to Github for robust version control. This is a really nice feature for keeping track of your changes.
Additionally, if an app that you want to automate isn’t natively supported in Pipedream, you can always write custom API calls to perform the actions your workflows need.
Features like environment variables make it easy to securely use API keys for authorization when you write your API requests.
Customizable timeout settings
Another unique and extremely useful feature in Pipedream is the ability to adjust the timeout window for each automation.
By default, each workflow will wait up to thirty seconds to run each step, but you can raise that all the way to 12 and a half minutes on a premium plan.
Your workflows will consume more credits if they use a longer timeout window, but this can be an indispensable feature if your automation relies on lengthy actions.
For instance, you might need to wait a while for an AI to process a long prompt, and there’s simply no way to do that on Zapier or Make, which have hard timeout limits that you can’t adjust.
An ideal platform for low-code engineers
If you’re a software developer or low-code engineer looking for a fast way to build an automation without compromising on functionality, Pipedream is a great pick.
It’s the perfect tool for connecting your internal or legacy systems to modern, commercially available web apps.
Pipedream is also an ideal choice for low-code builders who just want more control over their automations.
Additionally, for anyone looking to build a HIPAA-compliant workflow automation, Pipedream is an option. They will sign a BAA, provided that you speak with their team and explain your use case.
Building your first automated workflow in Pipedream
Now that we’ve covered the basics, we’re going to show you how to build your first automated workflow in Pipedream.
This process will be very straightforward to follow for everyone, regardless of your technical background.
To begin, we’ll create a very simple automation. When a custom label is added to an email in Gmail, the contents of that email will be automatically sent to Slack as a channel message.
Once we’ve built that initial automation, we’ll add some additional features, like conditional logic to automatically summarize long emails with OpenAI.
However, we want to note that the focus of this tutorial is not on these specific apps. Instead, our goal is to show you how Pipedream works using this software as an example. Automating other apps will follow very similar principles.
Follow along for free
You can follow along with us on a free Pipedream plan. You will need a paid plan to deploy the finished workflow, but you can still build and test it without starting a subscription.
There’s also a free trial available if you’d like to explore Pipedream’s premium features.
Create a new project and workflow
To begin, sign in to Pipedream, and create a new Project. Give your project any name you’d like.
In Pipedream, every workflow needs to belong to a project, which can include multiple workflows, as well as file stores and variables.
In the “Resources” tab, click “new” to create a new item, and select “Workflow” to make a new automation. Be sure to give your workflow a descriptive name.
For the sake of this tutorial, you can leave all of the other settings to their defaults and just click “Create Workflow” to get started.
Add a trigger to your workflow: Watching for newly labeled emails in GMail
Every workflow in Pipedream needs to begin with a trigger. Click “Add trigger”, then choose an app where your trigger will occur.
For our example, that will be Gmail.
Then, choose the specific triggering event you want. That will be “New labeled email”, so the automation will run whenever a label is added to an email. If you’re not sure which event to choose when building your automations, just check the provided descriptions for more detail.
Authorize the trigger app
Next, you’ll need to authorize the app used in your trigger. The authorization requirements will vary based on the app in question.
For Gmail, you’ll just need to sign in with a simple OAuth portal.
In other apps, like OpenAI for instance, you’ll need to provide an API key.
Configure your trigger settings
Once you’ve authorized your trigger app, you can configure your trigger’s settings.
Different triggers will have different settings, but they’ll typically let you set filters and limits on what data to watch for.
For this “New labeled email” trigger, you can choose a specific label that Pipedream will watch for. The workflow will only run when that specific label is applied to an email.
For our example, create a custom label in GMail named something like “Send to Slack (Pipedream)” label.
Be sure to apply the label to at least one email in your inbox, as well. This will be used as test data soon.
Return to Pipedream, and select the “Send to Slack” label in your GMail trigger. You may need to refresh the data first by clicking “Load More” to see your newly created label.
In Pipedream triggers, you can also change the “Timer” setting to choose how often your workflow will search for new data. Note that some shorter intervals will require a paid plan.
Once you’ve configured your trigger, click “Save and continue”.
Testing the trigger
With your trigger configured, you’ll need to load some test data into your workflow.
You can either use real data retrieved from your trigger app, or automatically generate mock data with Pipedream.
We’d generally recommend creating your own test data so that you can control exactly how it’s set up. To create test data for our example workflow, just apply the “Send to Slack” label to an email in your GMail inbox if you haven’t already.
If Pipedream has found a relevant piece of data, you’ll see an alert about a new “Event”.
Click on the dropdown to see more details about the event and select it as your test data.
After a successful test, you can see all of the data that the trigger retrieved for use in your automation under the “Exports” tab
Clicking on the toggles will display additional information. For instance, under “decodedContent”, you can see the email’s body.
And under “parsedHeaders”, you can find the email address and name of the sender, among other data.
Add an action to your workflow: Sending a message in Slack
With a properly configured trigger and test data in place, you can now add additional actions to send this data to any other app you’d like.
For our example, we’ll take this email data and send it to Slack.
Click “Continue”, and choose an app for your next action. Search for the app you want to use (in this case, Slack).
Next, choose an action.
Note that if you don’t see the action you want to perform in your chosen app, you can always choose to build a custom API request instead, or use AI to generate a custom action.
But that won’t be necessary for this workflow, since you can just use the pre-built “Send Message” action.
Authorize the app used in your automated action
After choosing an app and event, you’ll need to authorize the app just like you did for the trigger app.
For Slack, that will just require signing in to your Slack account, and clicking “Allow” to grant the appropriate permissions.
Configure your action
Just like with triggers, the settings for any action in Pipedream will depend on the app and action in question.
But typically, you’ll need to specify where you want to create or update data, and what the data is that you want to create or edit.
If you’re not sure what the settings are for, or what your options are, you can just read the provided help text (highlighted in the image below).
For Slack, you need to pick the channel type – direct message, group, private channel or public channel. In our example, we’ll be sending a channel message. You may prefer to send a direct message to make your automation a bit less “noisy”.
Then, you need to specify a channel, or direct message recipient. For example, we’ll send our message to a dedicated “tutorials” channel.
Using dynamic data retrieved from earlier steps
Finally, you need to compose your message in the “text” field. In most data fields in Pipedream, you can enter text directly, and you can provide dynamic data retrieved from previous steps in the workflow. Try using both dynamic data and directly entered text in your message.
You can access dynamic data from the window that pops up. The data all be sorted under “Event”, and other headings specific to each app.
For instance, you can find the sender’s email address from the GMail trigger under the “parsedHeaders” toggle.
Just click on “Select path” to insert any variable into a field.
By inserting the “from.email” path into your message, you’ll ensure that the Slack message displays an address retrieved from the email that triggered the message in the first place – not just a static email address.
In our example, we’ll also include the send date and time, along with the email body - that’s the “decodedContent” variable.
Optional settings
That takes care of all the required fields for this action, but there are also a few optional settings that are worth checking out.
For instance, with these optional settings, you can configure the workflow to use a custom bot name and emoji. We’ll call ours “Email Assistant Émile”, and use the :email: emoji.
Additionally, you can also choose whether or not to “unfurl” links. We usually set this to “FALSE” to make sure that links don’t take up too much space in messages.
Testing the automated action
Once your message is fully configured to your liking, click on “Test” to run your action. In this case, that will send a message in Slack.
After a successful test, you’ll see details about the message sent in the “exports” tab.
You can open up your Slack to see the message that was sent.
Your first automated workflow in Pipedream is all set, and you can click on “Deploy” to start using it.
Once it’s deployed, the automation will run on your chosen schedule to check for new emails with your custom label.
Enhancing your workflow with formatting, custom code, and conditional logic
The automation that we’ve just built works fine, but it’s a very basic setup.
There are a few things we can do to make it better, and these quick improvements will also introduce you to a few key features and concepts in Pipedream.
In this section, we’ll explain how to add formatting, custom code, and conditional logic to your workflow.
Formatting a date/time value
The formatting of the date and time in our example Slack message is a bit awkward and overly long. In a context like this where we’re optimizing for human readability, we don’t really need a timestamp that includes seconds and the timezone.
Thankfully, Pipedream has built-in features for easy data formatting.
Pause the deployed workflow so it doesn’t run while you’re making edits, and start editing it.
After the trigger, add a new action, search “format” and choose the “formatting” app.
This is a built-in utility created by Pipedream. It includes several options for converting to JSON, comparing dates, extracting URLs and much more. For this automation, choose “Date/Time format”.
With this action, you can just enter the date/time value you want to format. Then, you can choose the format you want to use instead. If you’re not sure of the syntax to provide, just click on the link in the help text for more info.
In our example, we’ll use the {long} preset, which will display the date like this:
October 6, 2024 2:38 PM
Give your formatter step a test to make sure the output matches your desired format.
Finally, make sure to update the Slack message to use the reformatted date/time value instead of the original.
Conditional logic and custom code
Next, while the Slack message looks good overall, this particular email is awfully long.
Let’s update this automation so it will give us an OpenAI summary of any email that’s longer than 1,000 characters.
To begin, we’ll need a way to determine the length of each email.
There are two ways you can do this - either with custom code, or with an expression built into the conditional logic.
Finding the length of a text string with custom code
Even though it’s not the ideal way to do it, we’ll begin with custom code, since this will be a good opportunity to demonstrate how custom code works in Pipedream.
After the formatting step, add another action, and choose “Run custom code”.
The custom code step will default to JavaScript, but you can also choose Python, Golang, or Bash.
If you have some experience with web development, this custom code module will seem pretty straightforward and familiar.
If you’re not experienced with JavaScript, just know that the “run steps” line is importing all of the data from the previous steps in the automation so you can easily reference it in your code.
Add one line to create a variable called “bodyLength”, and set it to be equal to the character length of the email body:
let bodyLength = steps.trigger.event.decodedContent.length
Then, add another line to return the value of that variable in this step’s output:
return bodyLength
You can refer to the screenshot below to see the full custom code that we’re adding.
Note that helpful suggestions come up as you type in the custom code editor, making it easy to find what you’re looking for.
Give this step a test, and you’ll see the returned character length. In our example, we can see that our email is definitely over 1,000 characters.
Adding conditional logic to a workflow
Now let’s add conditional logic to evaluate that number.
Add a new action, and under “control flow” choose “If/else”.
First, you’ll need to specify the condition to evaluate. Use the condition pictured below to check if the bodyLength variable is greater than 1,000.
When you test this condition, you’ll see whether or not the processed data would pass the filter.
In our example, the body length is greater than 1,000, so the automation would continue along the first path on the left.
If the number was not greater than 1,000, then it would continue along the second path on the right.
Using an inline function to calculate the length of a string
You can also insert the same conditional logic without using a custom code step.
Instead, you can just enter the “decodedContent” path in the condition itself, then append the .length function before the curly brackets.
Most simple actions can be performed in Pipedream without code, so you’ll likely only use custom code for more complex tasks, like array comparisons, or complicated loops.
However, we still wanted to give you a brief example of how it works to get a little practice with it.
Now, let’s quickly finish up this workflow.
Adding an OpenAI step to the workflow
In the first path for data that passes our condition – in other words, for long emails – we’ll add a ChatGPT step that sends a prompt asking to summarize the email.
You can see the final configuration of this step in the screenshot below.
Note that you’ll need to be set up with an OpenAI API billing plan to use a ChatGPT step like this. You can learn more about using ChatGPT and OpenAI with no-code automation in this tutorial.
Give the ChatGPT step a test, and check the output.
Copy and paste the Slack message action into this path, and update it to include ChatGPT’s summary instead of the original message.
Finally, you can move the original Slack message into the second path for shorter emails.
In its updated configuration, this automation will run every 10 minutes to check for emails with the “Send to Slack” label.
If the email’s body is longer than 1,000 characters, it will get an AI summary from ChatGPT and send us the summary in Slack.
If it’s a shorter email, then it will just send us a Slack message with the original email body.
With these changes, this automated workflow is all set.
You can click deploy to commit your changes, but since this workflow uses some conditional logic, you will need a paid plan to complete deployment.
If you haven’t yet, it's time to kick off that free trial!
Pipedream pricing
While we’re on the subject of a premium Pipedream plan, let’s wrap up this beginner’s guide with a quick look at Pipedream’s pricing.
Credits in Pipedream
First, we’ll explore how credits work, since they’re a key part of Pipedream’s pricing scheme.
Your workflows’ data and bandwidth usage is measured in “credits”.
When you create a new workflow, it will use a 30-second timeout window and will include 256 MB of memory. With these settings, your workflow will consume 1 credit when it runs, regardless of how many steps are in it.
Longer timeout windows and more memory will require more credits. You can see how many will be used when you adjust the settings.
This is quite a bit different from Zapier and Make, which charge you for a “task” or “operation” for most steps in your workflow.
Both models have their pros and cons. With Pipedream’s setup, you’re not punished for making long, complex automations. However, with Zapier’s approach, you can process an unlimited amount of data. The better choice will depend on your specific use cases and priorities.
Pricing plans
Now that you understand how credits work, let’s take a look at the available pricing plans. You can also refer to Pipedream’s pricing page for more info.
Free plan
The free plan will give you everything you need to try out Pipedream and build a few workflows.
However, you’ll be limited to three active workflows, 3 connected accounts, and just 10 credits per day.
Like with most automation providers, the free plan won’t be a suitable long-term choice for business-critical automations.
Basic plan
For $45 per month, the basic plan will let you build 10 active workflows and will provide you with most of Pipedream’s core features, along with 2,000 credits each month.
Advanced plan
However, you’ll need the Advanced Plan at $75/mo to unlock “premium” apps like Jira, Shopify, Stripe, and Zendesk.
You can find a full list of Premium apps here.
The advanced plan also includes conditional logic like the if/else action we created in this tutorial, as well as unlimited active workflows.
For both the basic and Advanced plans, you can get a considerable discount by paying on an annual basis instead of monthly.
Business plan
The business plan enables syncing with Github, as well as a long list of advanced technical options. You’ll need to contact Pipedream’s sales team to get a quote for a business plan.
Fees for credit overages
If you ever exceed your monthly allotment of credits, you’ll just need to pay an additional fee based on how many credits you use.
The more credits you need, the better your rate will be.
So you don’t really need to worry about your automations stopping suddenly if they’re running a lot in a given month. However, if you want to stick to a specific budget, you can enforce a credit limit in your account’s billing settings.
Pricing compared to Zapier
Pipedream’s pricing is essentially comparable to or better than Zapier.
The basic plan is a bit more expensive than a similar Zapier option, but an Advanced Pipedream plan is $30 a month less than a Zapier team plan.
Beyond their base pricing, Pipedream offers additional credits at a more affordable rate when compared to Zapier’s tasks.
Adding 100,000 tasks to a Zapier team plan costs $600 a month, compared to $450 a month for the same number of credits in Pipedream. And that gap only gets wider as you purchase a higher volume of credits.
It’s also worth remembering that a task in Zapier is just one automated step, while a credit in Pipedream can potentially represent an entire workflow, depending on your timeout and memory settings.
So if you’re automating at a large scale and using millions of tasks or credits each month, Pipedream will be the more affordable choice.
Build low-code automations with all the technical features you need
With Pipedream, building flexible low-code automations is fast and easy. And for more technical users adding custom code to extend the functionality of your workflows is just as simple.
If you’re looking for implementation support to get your team started with Pipedream, just schedule a free discovery call right here on our website. We can help you to automate and streamline even the most complicated workflows.
If you’d like to learn more about automating your work with software like Pipedream, check out the other tutorials on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Loops are one of the most powerful tools available to low-code builders. They allow you to process every item in a dataset individually—whether you're working with 5 items or 500—without adding redundant actions to your automation. In this guide, we'll walk through everything you need to know about creating and using loops in Zapier.
Prerequisites
Before we dive in, note that you'll need:
• A Zapier Pro plan or higher to publish Zaps with loops
• At least one trigger step in your Zap (loops can't be used as triggers)
• Optional: Any additional actions or search steps to collect data for your loop
Creating a loop from line items
Summary of steps
1. Add a new action to your Zap
2. Select "Looping by Zapier"
3. Choose "Create Loop from Line Items"
4. Add your value sets:
• Select the fields you want to loop through
• Give each value set a descriptive title
• Add as many value sets as needed for your automation
5. Optional: Set a limit for iterations (maximum 500)
6. Test your loop to preview the structure
Adding a loop to your Zap
To add a loop to your Zap, add a new action, and select “Looping by Zapier”.
Choose how you want to create the loop. You can choose to create a loop from line items, text, or numbers.
We’ll explain how text and number loops work later in this tutorial, but we’ll begin with a line item loop.
Understanding Line Items
In Zapier (and JSON), line items are objects that contain arrays (lists) of other objects. You'll find line items in many common applications:
• Shopping cart items in Shopify orders
• Database records with multi-select fields
• Linked records in Airtable
Many datasets that you work with will be formatted with line items already, but you can also convert data into line items if needed. You can learn more about converting data into line items in Zapier’s help docs.
Add value sets to your loop
Whatever you choose as your data source, you’ll need to provide at least one value set to loop through. A “value set” represents a field that your loop will process.
Click on “Add value set” to add a new set to your loop.
In our example, we’ll create value sets for the “Name”, “Task Count”, and “Slack ID” fields. All of these fields will be retrieved from the Airtable search step that precedes our loop.
You can also set a limit for how many iterations your loop should run through. Each loop can run up to 500 times, but you can also set a lower limit if you’d like.
Once you’ve added all the value sets that you want to loop through, and configured your other settings, click continue. Then, test your loop.
In the test results, under “prevew_loop_values”, you’ll see the structure of your loop.
Each iteration will include one instance of each value from your value sets. So in our example, each of our loop iterations includes a name, a task count, and a Slack ID, since those are the three value sets we created.
Each iteration also includes an iteration number by default.
The data that you see in the loop preview will be all of the data that your loop will retrieve and process as it runs, so make sure that you see the data you want to use in your loop before continuing.
Once your step is all set up, it’s time to add actions to your loop.
Adding actions within your loop
Any action that you add after a loop step will be repeated once every time the loop iterates (unless the iteration stops at a filter first - we’ll cover filters in the next section).
Every action before the loop will only run once, just like actions in any other Zap. In our example, the search step that we run after the trigger isn’t part of the loop, so it will only run once each time the automation runs.
A rectangle starting at the loop step will give you an easy visual reminder of which actions are included in your loop.
In our example, we’re going to use Slack to send a direct message to each person referenced in the loop. In the Slack message, we’ll include a personalized greeting for each user and a notice with the number of tasks that are currently assigned to them.
When you’re using dynamic data from a loop, be careful about which variables you pick. The variables that start with “Preview Loop Values” will include data from several iterations.
If you want to reference the data that belongs to a specific iteration, just use the variables that don’t start with “Preview Loop Values”. For instance, we’ve used the “Name” and “Task Count” variables in this Slack message.
Testing a looped action
Once you’ve finished configuring your action, give it a test.
When you test an action in a Zapier loop, it will only process test data for the first iteration in the loop. It’s not going to run test actions for every item.
So even though our first step retrieved three records to loop through, testing the Slack step in the loop only sent one message, which is what we expected.
Using a filter to add actions after your loop
Every action that you add after your loop step will be included in your loop. However, if you’d like certain actions to only run once after your loop, you can add a filter step.
By configuring the filter so that only the final iteration passes, you can ensure that any actions added after the filter only run once, even though they’ll still technically be considered part of the loop.
To add actions to your loop that only run once:
1. Add a "Filter by Zapier" action
2. Set the field to "Loop Iteration is Last", and set the condition to "(Boolean) Is True"
3. Add any actions that should run after the loop completes.
This setup ensures your post-loop actions only execute once, regardless of how many iterations your loop processes.
In our example, we’ll add another Slack action that sends a channel message. The message will include a list of everyone who received a direct message about their tasks.
Running a live test of your loop
To see your full loop in action, publish the Zap and turn it on.
Then, fulfill your Zap’s trigger condition. For our example, we just need to wait until the scheduled time in our trigger, which we’ve adjusted to occur in a few minutes.
When your Zap runs, the loop will iterate for each item in your chosen data set. Every action in the loop will run once per iteration, except for any actions that you added after the filter.
When our example automation runs, the Airtable search step retrieves three records in the “People” table. Each of the three people is sent a direct message.
On the final iteration, the filter is cleared, and a single Slack channel message is sent summarizing the people who received messages.
Alternative loop types: text loops and number loops
Text loops
A text loop is very similar to a line item loop. However, instead of iterating through several pieces of structured data, it will loop through pieces of text.
For the loop to work correctly, your text will need to contain a “delimiter” between each item – like a comma, a semicolon, or even a space if you’d like (written as [:space:] )
It doesn’t matter what the delimiter is, as long as the delimiter is used consistently in the text. For instance, you can’t have some items separated by a comma and others separated by a semicolon.
Each iteration of the loop will process a piece of text until it hits a delimiter. If you were to loop through the text “Apples, Pears, Bananas” using a comma as a delimiter, the loop will iterate three times: once for Apples, once for Pears, and once for Bananas.
Number loops
When you create a loop from numbers, you won’t be iterating on data from previous steps in the Zap. Instead, you’ll be incrementing a number in a set pattern.
You can set how many times the loop will run, as well as the loop interval number. So if you’d like, your loop iteration number can increase by 5 or 10 each time instead of just 1.
For instance, in the loop pictured below, the iteration counter will start at zero and increase by 10 for every iteration until hitting the counter limit of 100.
When it runs, the loop will just return its iteration number and repeat the steps you add to the loop. However, that iteration number is all the data the loop itself will process.
Number loops are useful if you want to perform the exact same action multiple times in your Zap, or if you want to use the loop as part of a calculation.
But you’ll probably be using a line item or text loop in most cases.
Loops: Frequently Asked Questions
Q: Can you nest loops within loops?
A: No, Zapier doesn't support nested loops directly. Alternative solutions include:
• Using custom code steps
• Connecting separate Zaps using webhook triggers
• Refining your trigger to require only one dataset
Q: How does task usage work with loops?
A: The loop creation step doesn't consume a task. However, every action within the loop consumes tasks normally on every iteration.
A: Can you use loops with paths?
Yes, but there are some limitations. You can only use one loop per Zap, so you can’t add loops to multiple paths in a single Zap.
However, you can add paths to a loop as pictured below, which will still enable you to add quite a lot of conditional logic to your automations with loops.
Efficiently processing datasets with loops
Loops are a convenient and efficient way to process structured data in your apps.
With a single loop, you can easily run dynamic actions for hundreds of pieces of data in just one automation.
If you’d like to learn more about automating your work with Zapier, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Like any modern web app, Zapier is constantly updating their product to make sure they keep up with the changing demands of their user base.
In this past year alone, we’ve seen multiple overhauls of Zapier’s visual layout. Even in the months since we posted our updated Beginner’s Guide in March of 2024, Zapier’s taken on a new coat of paint and rearranged some important items.
In this quick blog post, we want to quickly show you the three most important changes that you should know about as a no-code builder.
We’re also going to explain why, in spite of these updates, you can still use our beginner’s guide and other tutorials from the same time period if you’re just picking up Zapier for the first time right now.
Overall changes: an aesthetic overhaul
We’ll begin with a quick “before and after” of Zapier’s automation builder.
Below, you can see the old Zapier UI from March 2024.
And in the next screenshot below, you can see today’s Zapier (October 2024).
In general, you can probably see the biggest changes here are just some surface-level aesthetic choices. There’s a new color scheme with purple accents and several other minor visual tweaks.
However, these visual changes aren’t our main focus in this post.
Instead, let’s examine the three most important functional changes.
None of these updates amount to huge changes for Zapier users, but it’s definitely good to be aware of them if you’re just getting started and exploring tutorials from our blog – or looking at Zapier help docs that are about a year old.
Connecting accounts in the “Setup” tab
Comparing the old UI to the new, there’s still a Zap canvas in the central part of the screen, with a simple summary of all your automated steps.
When you click on any of those steps, a menu pops open on the right where you can configure it.
Here’s where you’ll see the first key difference.
For a long time, Zapier divided each step into 4 tabs – “App & Event”, “Account”, “Trigger”, and “Test”.
(And of course, that “Trigger” tab would be replaced with “Action” if the step was an action.)
Now, there are just three tabs in the configuration menu: Setup, Configure, and Test.
With this layout, you can choose your event and sign into an account all in the same “Setup” tab.
Despite this change, app authorization works the exact same way as before; it’s just in a slightly different place.
Finding (and enabling) dynamic data
This next change is arguably the most important one.
With the new updates, inserting dynamic data into your Zaps works a little differently than it used to.
Previously, a window including all of the data retrieved by previous steps in your automation would automatically pop up whenever you selected an input field.
Now, you’ll need to enter a quick command to access dynamic variables.
You can either type forward slash (/) directly into the field, or you can click on the plus button.
Either one will pull up a list of your Zap’s available dynamic data.
Configuring a field to accept dynamic data
If you don’t see the plus button in a field where you expected to use dynamic data, then it probably means that field is set to “static”. That means it’s configured to only accept inputs from a pre-set list of options.
However, there’s an easy option to change “static” fields into “custom” fields that will accept variables.
Just click on the three dots button next to the field, and choose “custom”.
Once you’ve set the field to ‘custom’, you can use either forward slash (/) or click on the plus to enter dynamic data.
Revealing hidden tooltips
Finally, let’s take a look at one more key change to the Zap builder UI: the location of tooltips.
Previously, Zapier included useful help text under each field to let you know what data you needed to provide, or what each option in a list would do.
This help text was often a little long and frequently needed to be truncated. In that case, you would have to click on “more” to see the full text.
Now, with the new Zapier UI, there’s no help text immediately visible. However, it’s not gone.
To see help text in the new Zapier UI, just click on the underlined title of any field.
Then, a tooltip will pop up in its own window.
And just note that you do have to click on the titles to see the help text; it won’t appear on a mouseover.
Navigating new settings
Those are all the functional changes we wanted to go over in the main Zap builder.
But before wrapping up this blog, we also want to note that the settings menu on the left has been substantially overhauled recently.
It won’t change how you build Zaps initially, but it may change how you configure them after they’ve been built.
If you’d like to learn more about using these updating settings, you can check out our earlier blog post on the topic.
Keeping up with a changing platform
They say the only thing that’s constant in life is change – and that certainly applies to no-code automation, too. Zapier looks quite a bit different today than it did less than a year ago, and it’s a near certainty that this post will be outdated within a year, as well.
But for now at least, Zapier still works in largely the same way. You’ll just need to keep an eye out for a couple of things that have moved around.
If you’d like to explore additional news, tips, and tutorials about Zapier and other low-code platforms, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Airtable, the popular low-code database and workflow platform, has just announced a game-changing update for enterprise teams and anyone working with large datasets. Their new "HyperDB" feature now allows users to access and work with databases containing tens of millions of records, far surpassing Airtable's previous record limits.
Record limitations in Airtable
Airtable bases on even the highest Enterprise plans are limited to 500,000 records per base and 250,000 records per table. This has made working with datasets in the millions of records very challenging, often requiring complex workarounds.
One of the main reasons users have choses tools like Google Sheets over Airtable has been the ability to work with larger datasets, as Sheets supports over 10 million cells.
How HyperDB Overcomes Record Limits
HyperDB is opening up new possibilities for working with large datasets by allowing you to store your data in an external database like Snowflake or Databricks, which have much higher record capacities. You can then use HyperDB to sync specific subsets of that data into your Airtable bases and tables as needed.
For example, you could store a 50 million record product database in Snowflake, but sync only the most recent 100,000 records to an Airtable table.
Alternatively, you could sync records for different years or product categories into separate bases. The synced data remains connected, so you can easily change which records are pulled in.
Use Cases for HyperDB
While individual Airtable tables and bases still have the same record limits, HyperDB makes it much more straightforward to connect them to massive external datasets. This enables large-scale data processing, automation, and reporting use cases that were previously impractical in Airtable alone.
For instance, you might use HyperDB to power operational analytics, or machine learning workflows that require analyzing millions of records.
HyperDB is currently in beta and only available to customers on Airtable's Enterprise plans. Interested companies will need to contact Airtable to request access.
Additional new features in Airtable
In addition to HyperDB, Airtable has unveiled new features to help users manage and update their bases.
App Library: centrally controlled templates for your team
The new App Library allows you to create reusable base templates that teams can copy for their own purposes while maintaining a dynamic link to a central reference version.
For example, you could build an "OKR Tracker" app library for use across your company. Each department can spin up their own OKR tracking base from the template, customized to their needs. But the template owner can still push updates and gather roll-up reporting from all linked bases.
This promotes consistency and data consolidation even as teams adapt bases to their unique workflows.
App Sandbox: risk-free experimentation and seamless updates
The App Sandbox provides an isolated environment to test changes to a base before deploying them to your team's live version. This allows you to experiment with new formulas, automations, and app structures without the risk of disrupting active workflows.
The sandbox is a game-changer for Airtable developers and builders, as it allows them to iterate more quickly and safely, whether improving their own team's bases or building client projects as an Airtable consultant or agency.
Organization Branding: add your company’s logo and colors to Airtable
Enterprise plan customers can now customize their bases with their own logo and colors in place of Airtable's default branding. This is especially useful for agencies, consultants, and others building client-facing applications on the Airtable platform.
Branded bases provide a more polished, professional, and trust-inspiring experience when sharing them with external stakeholders, while still leveraging all of Airtable's flexible database and workflow functionality under the hood.
The App Library and branding options are currently available for all Enterprise customers. The Sandbox is in beta, with Business and Enterprise plan users able to request access.
Learn more about all recent Airtable updates here
Our take
At XRay, we're extremely excited about HyperDB and the possibilities it opens up for our clients. Many of the companies we work with have huge proprietary datasets they want to build workflows around, and HyperDB is going to make that possible. HyperDB is a major step forward in making Airtable an ideal platform for enterprise-scale low-code application development.
We're also very pleased to see Airtable making investments in other areas that will help larger organizations adopt the platform, like the app sandbox and expanded branding options. We expect these updates to make a real difference for companies looking to run mission-critical processes on Airtable.
Reach out to us if you'd like to discuss how your team can make the most of these new Airtable capabilities. As an Airtable Gold Partner, we're here to help you build powerful, scalable low-code workflows.
If you’d like to learn more about software like Airtable, Zapier, Softr, and more, check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
AI and no-code automation are a natural pairing.
You can take the ability of an AI like Claude to generate and analyze text, and combine it with automation’s time-saving potential to produce a fast, efficient, and effective workflow.
That’s why in this tutorial, we’re going to show you how to automate Claude by Anthropic with Zapier.
To begin, we’ll give you a brief overview of what Zapier is and what it does for the uninitiated.
Then, we’ll show you how to set up your Anthropic account and connect it to Zapier.
Finally, we’ll walk you through the process of building an example automation that sends a prompt to Claude to extract action items from any email that you tag with a custom label.
What is Zapier?
Before we dive into automating Claude, we’re going to quickly cover what Zapier is and how it works for anyone who might not be familiar with it.
Zapier is a no-code automation provider. It lets you build automated workflows by connecting your web apps together.
When an event happens in one app, one or more automatic events will be performed in other apps.
The automation we’ll build in this tutorial
For instance, in the automation – or “Zap” – we’re going to build today, everything kicks off when we apply a custom label to an email in Gmail.
Then, Zapier sends a preconfigured prompt to Claude that includes text from the email’s body.
Finally, the Zap automatically sends an email back to us with the action items that Claude extracted from the original email.
In short, it will give you a summary with a single click. And you don’t need to write any code to build it.
Connect thousands of apps to Claude with Zapier
You should know that even though we’re just gonna connect Gmail and Claude in this tutorial, Zapier supports over 7,500 apps right now - and that number’s always growing.
The odds are good that Zapier can automate the apps you already use every day.
While Zapier does have a free plan, you’ll need a paid plan to build automations like this with more than two steps.
You can learn more about using Zapier in our Zapier beginner’s guide here. If you’re brand new to Zapier, we’d strongly recommend checking out that guide before proceeding with this tutorial.
Note that Zapier’s UI has already changed in the few months since we posted that guide. However, everything still works the same under the hood.
Set up your Anthropic account for API access
In order to start automating Claude with Zapier, you’ll need to set up an Anthropic Console account, and you’ll need to set up an API billing plan.
That’s because Zapier is going to access Anthropic through its API, or “Application programming interface”.
You can learn more about what APIs are here.
Adding an API billing plan to your Anthropic account
Go to console.anthropic.com and sign in with your existing Anthropic account, or create a new one. If you’re making a new account, you’ll need to provide a couple details about your organization.
Once you’re signed in, click on “Settings”. Then choose “Plans & billing”.
New Anthropic console accounts always begin on the “Evaluation” plan, which doesn’t grant access to Anthropic’s API.
Click on “Select Plan” to see your options.
You can either go with the “Build” plan, which will require you to load up your account with prepaid credits, or the “Scale” plan, which will bill you monthly for your activity.
The “Scale” plan will require you to contact Anthropic’s sales team, so to get set up fast, it’s best to just go with the “Build” plan.
You’ll just have to provide some details about how you plan to use Claude, and where you’re located. Then, you can add a payment method and credits.
Note that you won’t need to pay any kind of subscription fee. You’ll only be charged for the credits you add to your account.
The good news is that running prompts through Claude’s API is generally going to be very cheap - often just a cent or less for each one.
You can learn more about pricing details on this pricing page.
Once you’ve created a console account and added a payment method, you’ll be ready to connect Anthropic to Zapier.
Connect your Anthropic account to Zapier
To connect Anthropic to Zapier, start by signing in to Zapier.
Click on “Apps” in the left hand menu. Then, choose “Add connection”.
Search for “Claude” or “Anthropic” to find the app, and choose it from the list of results.
You just need one piece of information to authorize Zapier to access your Anthropic account - an API key.
To create an API key, go back to the Anthropic console. You can follow the handy link that Zapier provides.
Then, on the “API keys” page in the Settings tab, just click on “Create Key”.
Give your key a unique and descriptive name so that you know what it’s for. You’ll be able to track usage by key, so we’d recommend naming it something like “Zapier Key” so you can see how much API activity is coming from your Zaps.
Choose a workspace for your key, and click “Create key” to finish.
Then, make sure to copy the key before closing this window, since Anthropic won’t reveal it to you in full again.
Paste it into Zapier, and click Continue.
Now, your Anthropic connection in Zapier is all set, and you’re ready to start building an automation.
Creating a Zap to automate Anthropic (Claude)
To build a Zap that automates Claude, begin by clicking on “Zaps”. Then, create a new Zap.
As mentioned earlier, the automation that we’re going to build will start whenever we apply a custom label to an email in Gmail.
Even though we’re going to be building an automation that uses Gmail specifically, the same principles will apply to any other app that you want to connect with Claude.
So if you want to build an automation that launches prompts from Microsoft Teams, or from Hubspot, the information in this tutorial will still help you out. This is just one specific example that illustrates some general concepts.
Preparing your test data
We’ll start by making our test data first. For our example, we’ll create a custom label in GMail – “Summarize with Claude” – and add it to an email so that we’ll have some test data to work with as we’re building the automation.
Always make sure you have some test data to use before you build your automation.
Below, you can see a perfect candidate for this automation – exactly the kind of wordy, demanding email you’re probably all too familiar with.
Create a trigger for your automation
Once your test data is ready, add a trigger to your Zap. The “trigger” controls when the Zap runs.
Choose an app for your trigger. For our example, the triggering event will occur in GMail.
Next, select a specific event that will trigger your automation. In our example, that event will be a newly labeled email.
Note that you will need to connect your Google account to automate it with Zapier, but you won’t need to mess around with API keys or anything like you had to with Claude.
You’ll just need to sign in to Google and click a button to approve Zapier.
Configuring your trigger
Next, configure the specific settings for your trigger. Configuring the GMail trigger in our example is extremely simple.
All you have to do is identify the label that you want the automation to trigger for. In this case, that will be our custom label - “Summarize with Claude”.
With the trigger configured, you can give it a test to pull in some data. This test data is required to build the other steps in the automation, and will show you what kind of information Zapier can retrieve and work with.
After a successful test, you can see a long list of data, like the email addresses of the sender and recipient, the email body, and many other items that you typically won’t need to use.
Send an automated prompt to Claude
With a successfully tested trigger, you can now add a step to your Zap that sends a prompt to Claude.
Add an action, and choose “Anthropic (Claude)” as the app.
For the time being, there’s only one choice for an action: “Send message.” Pick that, and choose your connected Anthropic account if it’s not already selected.
Then, click “Continue.”
Unlike the trigger, there are several options to configure here - and you can find even more by setting “Show Advanced Options” to “True.”
Configuring your automated prompt
As you configure your prompt, note that only fields marked with an asterisk are required. You could just fill out your message and leave all of the other settings to their defaults if you want to get set up quickly.
However, configuring your action a little more precisely usually pays off.
User message
First, you’ll see the “User Message” field. Here, you’re just going to enter a prompt pretty much like you would if you were chatting with Claude directly.
The most important difference is that you can also include dynamic data retrieved from previous steps in the Zap.
For example, we can include the body of the email that triggered the Zap so that Claude can analyze it and find action items.
System
Under “System,” you can provide instructions for the role that Claude should assume. Entering additional information here can help to shape Claude’s style and approach to answering your user message.
Model
Next, you can choose a model to use.
We’d recommend going with a faster model for any Zap that uses Claude. Zapier won’t wait indefinitely for a response, so you’ll want to prioritize getting a reply quickly, even if that means you can’t always use the latest and greatest model.
Memory key
In the “Memory Key” field, you can provide a unique key to connect your conversation with previous ones.
For example, if we use a key like “EmailActionItems”, then Claude will use previous conversations with the “EmailActionItems” key as context, until it hits its context limit.
This can be a good way to give your conversations more depth and to improve the results over time.
Image
Next, there’s an option to upload images so Claude can use “vision” to analyze them.
We won’t attach an image to this prompt in our example, but keep in mind that you could add images here as dynamic data retrieved from earlier steps - such as an image attached to the original email.
Max Tokens
In the “Max Tokens” field, you can set a token limit if you'd like to keep the response short and your API charges low.
Temperature, Top K, Top P
Finally, there are settings for “Temperature,” “Top K,” and “Top P.”
All of these settings are about changing the predictability or creativity of the AI.
We won’t get into all of the technical nuts and bolts about how these work – if you’re interested in the details, you can explore this IBM documentation to learn more about how these factors influence an AI’s output.
However, for most users, reading the descriptions in Zapier will be fine.
In our example, we’ll set “Temperature” to .7 to make the answers a little more creative, but not all the way at the max of 1.
Testing the prompt
Once you’ve configured all of your settings, you can give your prompt action a test. Note that running a test on a Claude prompt in Zapier will actually send the prompt to Anthropic’s API, and will incur a small charge on your account.
Our test was a success, and we can scroll down past the user message to see Claude’s answer.
Not bad. This definitely produces a much more readable list of tasks than the original email.
But you can always tweak your prompt, system message, and settings to fine tune your results if you’re not satisfied.
Send Claude’s response to another app
Now that we’ve got a response from the AI, the last thing we need to do is make sure the output actually gets sent to us somewhere we can easily read it.
Again, you could send it to thousands of different apps, but we’ll just go with the logical choice and send it right back to our Gmail inbox.
Add another action to your Zap
Add another action to the Zap, and choose Gmail as the app again. For the action, we’re going to choose “Reply to email.”
Then continue to the configuration.
First, you need to identify a thread to reply to.
Change the field to “Custom” instead of “Static,” and insert the thread ID retrieved in the trigger.
For the “To” email, just enter your own email.
By only entering your own email here, you can make sure that the reply doesn’t get sent to the original sender.
CC and BCC are optional, but you will need to enter a “from email” - that can be your email address again.
You’ll also need a “from name.”
Keep the body type as plain, type up a brief message, and insert Claude’s response from the previous step. It’s the “Response content text” variable.
You don’t need to add any labels or attachments, so you can continue and test.
After your successful test in Zapier, check your Gmail inbox to see the final message.
Now, you can turn the Zap on and start using it.
Once it’s on, it will trigger after you add a label to an email. However, it won’t be immediate.
Zapier will check for new emails at set intervals, which you can see here in the left-hand menu of the Zap builder.
Depending on your plan, you may have to wait up to 15 minutes. But on higher subscription levels, you can reduce the wait down to just a minute.
Combine Anthropic and Zapier for automated AI prompts
Anthropic and Zapier are a winning combination that will help you line up your daily tasks and knock them down in record time. Getting started is easy, and after you’ve completed this tutorial, you can try connecting Anthropic with any other apps that you want.
To learn more about optimizing your workflows with AI and automation, check out the other tutorials on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
If you’ve opened Drive recently, you’ve probably seen an announcement about new shortcuts.
Google Drive has always supported keyboard shortcuts for common actions like creating new documents and folders, but these new shortcuts work a bit differently.
We’ve put together this quick tutorial to help Google Drive power users get a handle on these new keyboard commands.
Google Drive Keyboard Shortcuts - Creating new items
To create any new item, such as a doc, a slide deck, or a folder, begin by pressing Control + C on Mac.
If you’re using a Windows PC, you’ll use Alt + C instead.
Then, press a key that corresponds with whatever you want to create, like “F” for a new folder.
NOTE - you will need to release Ctrl + C or Alt + C before pressing the single letter that will create a new item.
Once you’ve created a new folder, you can use the Enter or Return key to open it up.
Creating new docs, slide decks, sheets, and forms
The Control + C or Alt + C combination is how you’ll start creating new items. The following combinations will use the same pattern to let you easily make presentations, forms, spreadsheets, and docs.
Mac OS
• New Google Slides Presentation = Control + C, then P
• New Google Form = Control + C, then O
• New Google Sheet = Control + C, then S
• New Google Doc = Control + C, then T
Windows
• New Google Slides Presentation = Alt + C, then P
• New Google Form = Alt + C, then O
• New Google Sheet = Alt + C, then S
• New Google Doc = Alt + C, then T
If you’re not sure what the keys are, you could just use the POST acronym to remember them:
Presentation
Form
Sheet
DocumenT
If you ever need a refresher, or want to explore some of the other shortcuts available in Drive, you can find the full list of all Google Drive shortcuts here.
Creating items in Google Drive with URL shortcuts
Alternatively, you can also create new items in Google Drive by simply typing a “.new” address into your browser’s URL bar.
For instance, navigating to the “docs.new” URL creates a new Doc in your Drive.
Similarly, “sheets.new” creates a new Google Sheet.
Note that you will need to be signed in to Google Drive for these URL shortcuts to work.
Whether you use these shortcuts or the new hotkeys, using these little tricks can make your daily tasks in Google Drive a little bit faster.
Level up your productivity with workflow automation
If you’d like to take your productivity to the next level, check out XRay’s workflow automation tutorials on our blog or on our YouTube channel.
Each week, we’ll show you new ways to automate the software you use every day, like Google Drive, Slack, ChatGPT and more.
You can also learn more about the services we offer for small businesses and enterprises, as well as the free products we’ve built to help our fellow workflow designers.
And if you want to get the latest updates about our content, you can also follow XRay on Twitter, Facebook, or LinkedIn.
Sometimes, the data that Make retrieves from your automated apps doesn't have all the information you need.
When you need to add some numbers, text, dates, or other info to your Make scenarios, you can use Variables to fill in the gaps.
In this tutorial, we’re going to show you how to create and use scenario variables in Make, formerly Integromat.
How to create a scenario variable in Make
First, let’s go over the process of creating scenario variables in Make.
Scenario variables are custom, user-created variables that only exist within the scenario you create them in. You can set their names and values to whatever you’d like.
To create a custom variable, add a “Tools” module to your scenario.
Then, choose “Set variable.”
You can enter anything you’d like for your variable name. You can even have spaces if you want, but we’d recommend making them all one word, and just use CamelCase like in the screenshot below for clarity.
You’ll have to use your variable name to retrieve it later, so it’s best to make sure you can easily and accurately type it out each time.
Then, provide a value for your variable.
How to set a Make variable to a numeric value
NOTE: Directly entering a number as the variable value will not make it a valid number.
If you type text directly into the “value” field, the text will be a string. This means that if you type “52”, for instance, your variable’s value will be a piece of text that says “52”, not the number 52.
If you try to add 1 to the variable in a subsequent module, the value will become a string that says “521”, not 53.
If you want to make your variable a number, then use the parseNumber function, and enter your number as the first argument (before the semicolon).
If your number has a decimal, enter the decimal separator as the second argument (after the semicolon). Otherwise, just leave it blank.
You’ll need to use a similar formula in order to enter a valid date. You would use the parseDate function, enter your date, and so on.
Referencing your variable in a subsequent module
Once you’ve configured your variable’s title and value, click “OK” to commit your settings.
Whenever this module runs, it will set the value of your variable to whatever you specified.
Then, you can use the variable in subsequent steps just like any other data processed in Make. For instance, we’ll use Slack like a makeshift dev console in the screenshot below, and send the variable as part of a simple message.
Scenario variables are a great way to create data that isn’t present in the automations you’re building.
They’re especially useful if you don’t want to store that information in an external source like Airtable or SmartSuite.
Update a variable’s value
To automatically change the value of your variable while your scenario is running, just add another “set variable” step. Specify the variable name, using the exact name of the variable you want to update.
Remember, it’s case sensitive.
Then, enter the new value you want to assign. You can enter an arbitrary value directly, or you can calculate the new value based on the earlier value.
For instance, we’ll just add “1” to the previous value of the variable.
Now, whenever this module runs, it will add “1” to the value of the variable.
We’ll add another Slack step and run the scenario to see the full output.
The first message shows the original value of the variable – 52 – and the second message shows its updated value of 53.
Retrieve a variable’s value from another path
Let’s wrap up this tutorial on scenario variables with a quick look at how you can retrieve the current value of any variable.
In many cases, you can often just grab the variable from the last module that set its value, but this won’t work if the variable was last set in a different path.
For instance, in the scenario pictured below, the Slack module in the second path can’t directly retrieve the variable set in the first path.
To retrieve the value of a variable that’s been set in a different path you can use “Get variable” to retrieve the current value of the variable.
Just enter the name of the variable to find it. As always, you’ll need to write it exactly the same way as the module that sets its value.
Then, you can use the variable retrieved by the “Get” step in any subsequent modules in the path.
Just remember to consider the order that your paths will run in. They’re numbered (1st, 2nd, etc) so you can tell which paths Make will attempt to run first.
Also, consider which paths you expect to run for each piece of data your scenario processes. Depending on the timing, you could always add a short delay step, to ensure the proper order of things.
Augment your Make scenarios with custom variables
Scenario variables are a useful little tool that can make it much easier to build the automations you want, even if you’re not getting all the data you need directly from your apps.
If you’d like to learn more about automating your work with Make, Zapier, and other no-code tools, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Zapier is constantly changing. Just months after a visual overhaul, the automation provider has already adopted a new color scheme and layout, opting for purple highlights to replace their famous vibrant shade of orange.
But some of the most important changes aren’t so immediately apparent. Recent updates have brought several new settings to the Zap builder interface. Some of these settings are brand new, while others have just been relocated into a more convenient spot.
In this post, we’ll walk you through all of the settings that are available in the current iteration of the Zap builder, and how you can use them to get the most out of your automations in Zapier.
Where to find Zap settings
To find all the settings we cover in this post, just open an existing Zap in your account or create a new one. If you’re looking at an existing Zap, make sure you’re in “Edit” mode.
You’ll see a vertical menu bar on the left hand side of the screen.
We’ll go through each option in this menu from top to bottom.
Linked assets
Linked assets let you create and attach tables and interfaces directly to your Zap, or view the tables and interfaces that are already referenced in your Zap.
While we generally wouldn’t recommend Zapier tables and interfaces for advanced use cases, they can be very useful if you're just getting started with your automation journey.
If you’re not using a dedicated no-code database Airtable or Smart Suite already, and you're not creating interfaces in an app like Softr, then Zapier’s versions of these tools can be convenient substitutes that keep all of your resources in one app.
If you’d like to learn more about using Zapier tables, we’ve created a tutorial for it here. You can also check out our guide to Zapier interfaces to learn more about them.
Note that both of those tutorials feature an older version of Zapier’s UI.
Zap details
Next up is “Zap details”. The information in this section has been available for a while in Zapier, but was previously inaccessible inside of the Zap builder itself.
Here, you can see the folder that your current Zap is stored in or move it to a new folder.
You can also edit the Zap’s timezone, which is particularly important if your Zap uses a scheduled trigger (e.g., if it runs every Monday at 9:30AM).
Finally, you can use the “Zap details” section to create a template out of your Zap. Creating a template will let you easily share the basic setup of your Zap with your team or with other Zapier users on the web.
Notes
Now let’s take a look at Notes. This feature wasn’t added in Zapier’s most recent round of updates, but it was still added to the app relatively recently, so we know it’s probably slipped under the radar for a lot of builders.
“Notes” lets you add brief text descriptions to the Zap as a whole, as well as each step. After creating a Zap, you can even use AI to generate a summary of your automation and what it does.
Adding notes to your Zap and its individual steps is an extremely useful form of documentation for anyone building automations with their team.
Once you’ve added a note to a step, you can click on the note icon to view it, or just view it from the notes menu on the left.
Change history
The next menu option, Change history, shows you every key update to your Zap since it’s been created. You’ll see every time it’s been published, and every time the Zap has been turned on or off.
For instance, in the example above, the Zap was last turned off by a user, but in other cases, a Zap might be turned off automatically due to encountering excessive errors.
If you have multiple people building Zaps in your workspace, this is going to be a really helpful feature for showing who is doing what in each automation.
Zap runs
For many, “Zap runs” will likely be one of your most commonly used menu options. If you ever encounter an error, or something unexpected happening in your automations, “Zap runs” and “Zap history” are going to be the first two places to check in order to discover what exactly is going on.
“Zap runs” will show you a record of every time your Zap has run within the last 30 days. You can filter this data with keywords, a custom date range, and a status (e.g., successful, errored, paused, etc.)
If you want to see Zap runs that are more than 30 days old, you’ll need to click on “Zap history” to see older records.
Advanced settings: flood protection, polling interval, and more
If you're a power user, the “Advanced settings” menu option lets you finally control several choices that you’ve probably been hoping to access for a long time.
Autoreplay override
Your first choice here is “Autoreplay override”. This will let you choose whether or not the Zap should automatically replay errored runs.
15
Error ratio override
Next, you’ll see a choice for “Error ratio override”. By default, Zapier will automatically turn off any Zaps that encounter a high number of errors. It's usually best to leave this setting enabled, but sometimes you might have a mission-critical Zap that you want to keep running, even if one or two steps are having problems.
In that case, you can select “keep running if errors occur” to keep your Zap on, even when it keeps encountering errors.
However, we'd only recommend disabling the setting if you're closely monitoring your zaps, because you could end up wasting a lot of tasks or creating other problems by leaving zaps on when they're not working properly.
Flood protection
Flood protection lets you configure how many times the Zap can be triggered at once before it shuts down.
This setting is designed to make sure that you don't eat up all your plan’s tasks at once due to a setup error, like a misconfigured Zap that triggers on an infinite loop.
However, if you plan on processing large amounts of data at once with your Zap, you’ll probably want to configure this setting with a higher limit.
For instance, if you're using your Zap to execute a data migration and expect to process hundreds of records at a time, you’ll likely want to raise the flood protection limit to a higher setting.
Polling interval
The last choice under advanced settings is “Polling interval”.
A Zap’s Polling Interval refers to how often Zapier will check for new data. Let’s say you have a Zap that runs whenever you get a new email in your inbox. With a polling interval of 10, Zapier will check your inbox for new messages every 10 minutes.
In many cases, you’ll want to set your polling interval as low as possible so you can run your Zaps and use their outputs quickly. However, to access the shortest intervals, you’ll need to have a higher subscription level.
Status
If there are any outstanding alerts or warnings attached to your Zap, then you’ll see the Status icon on the left hand menu, along with the number of alerts.
Currently, the status icon isn’t visible if your Zap doesn’t have any active alerts, though we’re not sure if this is an error or intended behavior.
Status alerts will warn you about issues like errors in your Zap setup, or out-of-date integrations that are used in your Zap.
Just click on the status icon to learn more and start fixing the problems.
Versions
Last in the main menu selection, you’ll find “Versions”. Here, you can see every unique version of your app that you've saved since you initially created it.
You’ll see every version that’s been published by you and your team, along with the version title (if any). From here, you can also roll back to any of these previous versions if you’d like to reverse a recent update.
AI Copilot
Finally, at the bottom of the screen, beneath all the main menu items, you can find Zapier’s AI Copilot.
With the AI copilot, you can add steps to your Zap by simply describing what you want to build. The copilot won’t be able to configure your steps in full (at least for now), but it will at least be able to choose the right apps and actions and add them to your automation.
It’s typically most useful when you’re starting a new Zap. By just typing a few quick sentences, you can get the copilot to set up a good starting point for your automation.
Get the most out of your Zaps with these advanced settings
Zapier is constantly making updates to their platform. While a lot of these are pretty inconsequential, like the ever changing style of the UI, some of them can actually be pretty important.
If you're a zap your power user, be sure to check out the new options for managing your zaps right inside the Zap builder. The advanced settings specifically will finally give you the control you've been longing for.
If you’d like to learn more about automating your work with Zapier, Make, and other software, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Did you know you can run your ChatGPT prompts without even opening up your browser?
Automating your prompts lets you get even more done with AI, turning an individual workflow into a reliable, scalable process for you and your team.
In this post, we’re going to show you how to easily start automating ChatGPT with Zapier.
We’ll start by demonstrating how to connect your ChatGPT account to Zapier. Then, we’ll walk you through a couple of your best options for sending automated prompts.
Connecting ChatGPT to Zapier
Before you can automate ChatGPT with Zapier, you’ll need to connect your ChatGPT account to your Zapier account.
You’ll also need to have payment on file with OpenAI to cover the API charges, which are typically going to be very low. You can check out OpenAI’s pricing page for more specific detail, but we’re usually talking about a few cents per prompt at most.
Managing your OpenAI account through the developer platform
To connect your account and set up your payment method, you’ll need to go to platform.openai.com and sign in with your OpenAI account.
You can use the same credentials that you use to login to ChatGPT, but you can’t use the usual chatbot interface for these settings. Automating ChatGPT with Zapier requires you to use the API instead.
Even though you’ll need to access the developer platform, don’t worry. You don’t need to write any code to automate ChatGPT as long as you’re using software like Zapier.
Adding a payment method to OpenAI
First, to add a payment method to OpenAI and start using the API in your automations, click on the gear to access your settings.
Click on “Billing” to add payment methods and manage your billing settings.
Connecting ChatGPT to Zapier
Now let’s walk through connecting your OpenAI account to Zapier. Keep the OpenAI platform open in one tab, and open up Zapier in another tab.
NOTE: if you’re new to Zapier and want to learn how it works, you can check out our Zapier Beginner’s Guide here to get started.
Sign in to Zapier, and click on “Apps” in the left hand menu.
Then, select “Add connection”.
Search for “ChatGPT” and select it from the list of results.
Finding your API key and Organization ID for ChatGPT/OpenAI
In order to create the connection, you’ll need to provide an API key, and possibly an Organization ID.
To get both of these, go back to the OpenAI platform.
To create an API key, start by clicking on “Dashboard”.
Then, in the top left hand corner, select a project where you want to create an API key. If you want, you can just stick with the default project.
Click on ‘API keys’ on the left.
Then, create a new Secret Key. Be sure to give your key a descriptive name. You can also choose which permissions to grant this key.
Click “Create secret key” to finish.
Now, you can copy the secret key to paste it into Zapier.
If your OpenAI account includes multiple organizations, you can specify which organization to use by providing its ID to Zapier. However, if your account just includes one organization, then this won’t be necessary.
To get your organization ID, go back to OpenAI, and click on the “Settings” gear.
On the “General” page, you can see the ID for your currently selected organization.
Copy it and paste it into Zapier.
Finish connecting your account by clicking “Yes, Continue to ChatGPT.”
Now your ChatGPT account is connected to Zapier, and you can easily select it whenever you’re building an automation.
Setting up a simple ChatGPT automation: image analysis
Now that you’ve got your accounts connected, let’s take a look at actually automating ChatGPT with Zapier. We’ll start by showing you a quick prompt using the “Analyze Image” action.
Create a new Zap and trigger
To begin, you’ll need to make a new Zap and add a trigger. Your trigger can be in any app you want, but note that there aren’t currently any available triggers in ChatGPT.
For our example pictured below, we’ve created a new Zap with an Airtable trigger.
This automation will run every time a new record is added to the specified table and view in Airtable. However, as noted earlier, you can use almost any app you want, as long as it has a trigger in Zapier.
Just do a quick search on XRay.Tools to see what triggers are available for the apps you use every day.
Add a ChatGPT action to your Zap
Once you’ve added your trigger and tested it to pull in some data, add an action to your Zap.
Choose ChatGPT as the app.
You’ll see several options for sending automated prompts to ChatGPT. Most of these are essentially preconfigured prompts.
For instance, your first choice here is “Analyze Image Content with Vision”, which does exactly what it says.
All you need to do is fill out a few key pieces of information. Write your prompt, including any dynamic data retrieved from your trigger that you’d like to incorporate, and provide an image.
In our example, we’ll use an image retrieved in the Airtable trigger.
You can also set a limit for the tokens used in the response. This is a good way to make sure ChatGPT’s responses don’t get too long.
When you give your prompt a test, you’ll see ChatGPT’s response. In this case, we get a good summary of the image we uploaded.
Once you’ve set up your ChatGPT action in Zapier, publish your Zap to turn it on.
Now, your prompt will run the same way every time.
The only thing that will change will be any variables you provided, like the image from the Airtable record that triggered our example automation.
—
That’s how automating ChatGPT with Zapier works in a nutshell, but we know a lot of you will want more control over your prompts than what you can get from that simple “Analyze Image” option.
So now that we have the basics covered, let’s take a closer look at a much more flexible action: “Conversation”.
Build a flexible, customized ChatGPT automation with the “Conversation” action
With “Conversation”, you’ll get all the same functionality that you get when you open up ChatGPT in your browser, but with even more options to fine tune the AI’s responses.
It’s a great default choice if you’re not sure which action to use when sending your automated prompt.
Let’s go through each of the settings now.
Compose a message and choose a model
Your first couple options are very straightforward.
In the first field, you can write the message you want to send much like you would while using ChatGPT in your browser.
You can also pick the model you want to use. You’ll have way more options here than you would with the chatbot interface.
You can check out the OpenAI API pricing page for more details to help you pick the right model for your use case.
Set a memory key for context and provide an optional image
Next, you can provide a memory key. Every time you enter a memory key, ChatGPT will remember previous conversations that also used the same key. This can be a useful way to give your conversations more context over time.
This action also allows you to provide an image if you’d like to include one in your prompt. Just note that not all ChatGPT models can analyze images. You can find a list of all models with ‘vision’ on this OpenAI page.
Create an “assistant” identity for the AI and set a token limit
Next, you have a few options to set a username, an assistant name, and assistant instructions. If you fill them out, these options will help to give the AI more context for the role it should perform or the identity it should assume.
However, it won’t create a new assistant in your OpenAI developer platform. We’ll quickly go over how you can do that – and why you’d want to – at the end of the tutorial.
Just like with the “Analyze image” action, you can set the maximum tokens to use in the response.
Adjust max tokens, temperature, and Top P
Finally, you have a couple technical settings you can use to tweak the AI’s output: ‘Temperature” and “Top P”.A higher Temperature will produce more random results, while a lower temperature will tend to be more predictable.
Top P is a pretty similar option. Here, a lower number will result in more diverse output, while higher numbers will cause the model to stick with only the most probable words.
If you’d like to learn more about temperature and Top P in more detail, you can explore this documentation from IBM.
For most use cases, you can just leave these to their defaults, but you may want to experiment to see what happens. Changing these can be particularly useful if you're looking for more creative or unusual outputs.
Testing your prompt
Once your action is fully configured, you can give it a test to see how it runs.
You’ll be able to see the AI’s response in the “Reply” variable, and you can send this output to any other app with a Zapier integration.
For instance, you can send it as a DM in Slack as pictured below.
And here’s what the actual message would look like in Slack:
Once your automation is all set, just publish it and turn it on to start using it.
Using “Conversation with Assistant” for frequently repeated ChatGPT tasks
We briefly mentioned the concept of “Assistants” earlier, and as you explore AI automation further, we’d strongly recommend checking out the “Conversation with Assistant” option.
So what’s an Assistant?
In the OpenAI developer platform, an “Assistant” is a predefined set of instructions for ChatGPT to follow.
You can easily create one in the developer platform without writing any code at all.
In addition to text-based instructions, you can also give your assistant documents to use as context, like images or PDFs.
If you’re looking into automating ChatGPT, then you probably have some similar prompts and activities you keep using AI for. Assistants are a good way to provide the context and depth you need for your repeated AI tasks.
Your assistant will also be available to access from multiple automation providers, like Make and Pipedream.
If you use the “Conversation with Assistant” action in Zapier, then you can just select your assistant from a dropdown and use all of its preconfigured settings for your automated prompt without needing to fill out all of the options again.
Although you will also have the choice of overriding most parameters from Zapier if you’d like to.
Ultimately, it’s up to you. Both “Conversation” options offer similar settings, but the Assistant option can help to quickly create several automations that reference the same AI persona, from any automation provider you want.
Amplify AI’s time-saving benefits with automation
ChatGPT is already a massive time saver on its own, but automating your most commonly used prompts will make it even more efficient for you and your team. Connecting ChatGPT to Zapier is easy, and gives you all the options you need to craft any prompt you want.
If you’d like to learn more about workflow automation and AI, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
When it comes to automating data extraction from PDF files, PDF.co is a powerful tool that can convert your PDFs into neatly structured CSV files.
Whether you're dealing with invoices, reports, or any document containing tabular data, PDF.co makes it easy to convert your file in just a few clicks. But if you’d like to create an even more efficient workflow, you can also connect PDF.co to Zapier to automate the entire process.
In this blog post, we'll guide you through the steps of using PDF.co and Zapier to automate your PDF to CSV conversions, streamlining your workflow and eliminating manual tasks.
Getting Started with PDF.co
To begin, you'll need to set up a free account with PDF.co. Once logged in, go to the dashboard.
Right at the top of the dashboard, you’ll see two key pieces of information: your available credits, and your account’s API key.
PDF.co offers a one-time supply of 10,000 credits with a free account, which is more than enough to get started.
Your API key will allow you to connect PDF.co to automation tools like Zapier and Make, which we’ll explore more later on in this tutorial.
Converting a file in PDF.co
To convert a PDF to CSV, click on “API tools”.
Then, scroll down and select the "PDF to CSV" option. You’ll also see several other options to convert your PDF into other file types.
This next screen may be a little overwhelming if you’ve never worked with code before, but it’s actually much simpler than it initially appears.
Click on “Add file” to upload the file you want to convert.
Then, you can configure optional settings in the panel on the left.
The text on the right defines each setting and offers detailed explanations of how to configure your options. In most cases, you just need to enter a single word or number into the quotes next to each setting.
For example, the “Line Grouping” setting controls how PDF.co will process text that splits into multiple lines. By enabling it, you can ensure that your CSV will keep multi-line text confined to a single cell, instead of splitting into multiple cells and making your data less organized.
To enable it, just enter the number 1 into the quotes.
Once you’ve configured all of your settings, click on “Run request” to begin the conversion.
Downloading and reviewing the exported CSV
Once the PDF is converted, click on “Result.csv” to preview the file.
You can download the CSV file and open it in a spreadsheet application like Google Sheets by clicking on “Download as file” at the bottom of this window.
You'll notice that any structured data retrieved from the PDF is neatly organized, though you may need to remove some extraneous text rows that were part of the original PDF but not relevant to the table.
Automating PDF.co with Zapier
If you'd prefer to use a more user-friendly interface, or if you want to automate a recurring workflow, you can automate the entire conversion process using Zapier.
But here are the basic steps involved in automating PDF.co with Zapier:
Set up a PDF.co connection in Zapier
First, you’ll need to add PDF.co as an integration in your Zapier account. Select “Apps”, then choose “Add connection”.
Search for PDF.co, and select it from the list of apps. To connect your account, you’ll just need to provide the API key, which you can retrieve from the PDF.co dashboard.
Create a Zap
Once your PDF.co account is connected to Zapier, you can build an automation (or “Zap”) that will run a conversion whenever a specified event occurs.
For instance, let's build a Zap that triggers whenever we receive an email with a PDF
attachment in Gmail. This Zap will automatically convert the attached PDF into a CSV and reply to the original email with the CSV attached.
Configure the Trigger
Your trigger determines when your automation will run. Choose Gmail as the app and set the trigger event to "New Attachment." This ensures that the automation runs every time you receive an email with an attachment.
Choose the folder you want to watch, such as your inbox. You can also add an optional search query to limit the automation to items matching the search.
Test your trigger to retrieve a recent email with an attachment.
Add the PDF.co Action
Add a step to your Zap. Choose PDF.co as the app and select “PDF to Anything Converter” as the action.
Select the PDF.co account you connected earlier and continue to configure the action.
The output format should default to CSV, but if not, you can select it (or any other file type you want) from the dropdown menu.
For the “Source file URL”, use the attachment from the email. The variable you’re looking for in Zapier is called “Attachment” and will say “Exists, but not shown”. This is normal for files in Zapier.
Then, you can configure any optional settings you want. For instance, we’ll adjust line grouping again. In Zapier, we just need to set it to “True” to enable it.
Once you’ve configured your settings, test the step to run the conversion.
Now, you can send the converted file to any other app integrated with Zapier. In our automation, we’ll attach it in a reply to the original email.
Reply with an attached CSV
Add a step to your Zap, and choose Gmail as the app. Select “Reply to Email” as the action.
In the “Thread” field, you’ll need to provide the ID of the thread you want to reply to. You can find this data in the trigger step by searching for “Thread ID”.
Even though the “To” field is not marked as required, you will need to provide a recipient for the action to work correctly. We’ll enter our own email there.
Next, you’ll need to compose a body for your email. We’ll just write a short message explaining that the converted file can be found as an attachment. In this message, we’ll also include a link where we can edit the Zap.
Finally, you’ll need to attach the exported CSV. Enter the “URL” from the PDF.co action into the Attachment field.
Once the action is all set, give it a test. Check your inbox to confirm that everything worked correctly.
In our inbox, we can see the new reply with an attached CSV. When we open the CSV in sheets, everything looks like we’d expect.
You can now publish and turn on your automation if you’d like, but there’s one more step we’d recommend to reduce your credit usage in PDF.co.
Adding a filter to your Zap
To further refine your automation, you might want to add a filter in Zapier to ensure that the workflow only runs every step for PDF attachments. This can help avoid unnecessary processing of non-PDF files and conserve your PDF.co credits.
Add a step after your Zap’s trigger, and select “Filter by Zapier”.
Set your filter condition to: Only continue if “Attachments Filename” contains “.pdf”. This will ensure that the automation only tries to convert
Save time with automatic PDF conversion
By automating the conversion of PDFs to CSVs with PDF.co and Zapier, you can streamline your data processing tasks and free up time for more important work. This automation is a great example of how low-code tools can enhance productivity and reduce manual effort in your workflow.
If you found this tutorial helpful, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Do you need to create visualizations from your Notion data?
With Notion’s new “charts” feature, it just takes a few clicks to convert your tables into bar charts, line graphs and more.
In this quick tutorial, we’re going to show you how to create a chart in your Notion table and export it as an image file.
Let’s get started!
Creating a new chart
To begin, open up any page in your Notion workspace.
You can either add charts as a standalone block on a page by typing “/chart”, or by adding your chart as a new view for an existing database.
Either way, you’ll see all the same options, and you’ll need to connect your chart to a Notion table as a data source.
For our example, we’ll add a chart to the “Projects” table pictured below.
Click on the plus button next to your table’s existing views to create a new view in your table. Then, select “Chart” at the bottom of the list that pops up.
Notion will create a chart out of your table’s data, which you can configure and customize in the “View options” window.
Configuring your chart
You can set the basic layout as a vertical or horizontal bar chart, a line graph, or a donut chart.
We’ll choose a vertical bar chart.
Adjusting the X and Y axes
Next, you can configure the X axis.
Your first choice is to designate which field will be tracked on the X axis. In our example, we’ll choose the “Start date” field.
Note that with date fields, you can choose to show the day, week, month or year. You can also choose “Relative” to display the time relative to the current date - for instance, it could show the “last 30 days”.
We’ll choose “month”, so we can see the number of projects being started each month.
You can also set a sort order for the X axis, which we’ll leave to the default of “old to new” in our example, and you can choose to “Omit zero values”.
Next, you can configure the Y axis. By default, it’s set to display the “count”, which means it will show how many records exist for each data point shown in the X-axis. In our example, the Y-axis is showing how many projects there are in each month.
However, you can also set your Y-Axis to display any of your other fields, as well.
Next, you can choose to group the Y-axis data by one of the fields in your table. “Grouping” will look a bit different based on which layout you’ve chosen for your chart.
When we map the grouping to our “Status” field, Notion will break up the bars in our graph into multiple colored sections - one for each status option represented in that bar.
Just like with the X-axis, you can also choose the sort order for the Y-axis.
Styling your chart
Under “style”, you can set the color scheme for your chart by picking a specific color palette, or just go with the more varied “colorful” option.
You can also choose “Auto”, which will use colors taken from your table when applicable.
Under “more style options”, you’ll see several options to fine-tune your graph’s layout with settings like chart height, grid lines, axis labels, and more.
Below, you can see our finished chart after all of our settings have been configured.
There are bars for each month broken up by project status, and when you mouse over the data, some more detail pops up.
If you want to change your Notion chart view’s settings at any time, just click on the three dots menu to access the same options.
Exporting your chart as an image
You can share your chart like any other page or database in Notion.
However, another simple option that will often work well for collaboration is to export your chart as an image.
To export your Notion chart as a still image, all you have to do is click on the three dot menu, scroll down to “Save chart as”, and select the image format you want to use.
Then, you’ll instantly get an image file of your chart. Below, you can see the exported version of our example “Projects” table.
Of course, you’ll lose some of the detail that you can get by mousing over your live chart in Notion, but this is a great way to quickly export a visualization to add to a report or a website.
Pricing and limitations
Notion charts are currently available to all Notion users. However, users with a free plan are limited to creating just one chart at a time.
All paid plans include access to unlimited charts, so most Notion power users should be all set to make as many charts as they want.
Create simple charts to quickly communicate key takeaways
Notion’s new charts are a simple and effective way to visualize your data, and it only takes a second to export them as an image. Try them out today to start creating useful dashboards and presentations with your data.
If you’d like to learn more about using no-code tools like Notion, Airtable, Zapier, and Make, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Need more flexibility in your Softr forms?
With the recently added Conditional form block, you can display different questions based on your users' answers and attributes.
Conditional form blocks are super easy to set up, and in this video, we’re going to show you how to start using them step by step.
We’ll demonstrate two different ways you can apply conditional logic to a form in Softr:
First, we’ll show you how to make certain sections of questions appear or hide based on user responses or attributes.
Second, we’ll demonstrate how you can split your form up into separate parts, and skip certain parts based on similar custom conditions.
Let’s get started.
Setting up your Softr app with a conditional form block
To get started, you’ll need to get your Softr app set up and add the conditional form block.
In most cases, you’ll want to have the app connected to a data source so you can collect form responses.
In our example, we’ll be using Airtable, but you could just as easily connect your Softr app to SmartSuite, Google Sheets, Hubspot, Xano, Monday, Postgres, and more. The specific data source doesn’t really matter for this tutorial.
Conditional forms: a beta feature
At the time of publishing, the conditional form block is still in beta, so some of the functionality may change a bit over time.
For now, you’ll have to select this conditional form block to create a form with conditional logic. You cannot convert a normal form block into a conditional one for the time being.
However, we have heard that the functionality to convert regular forms to conditional forms should be coming soon.
Adding a conditional form block
In any page within your Softr app, add a new block. In the “Dynamic” tab under “form”, you’ll see the “Conditional form” option.
Select the block to add it to your page. Then, under settings, you can choose where the form’s responses will be sent.
In our example, we’ll keep mine connected to my Airtable data source and choose a specific table that already has fields matching the questions we want to include in the form.
Under the “Questions” tab, you can configure the questions that you want to include in your form.
Sections in Softr forms
Note that the default questions generated by the conditional form block are split into two sections.
With conditional forms, you can hide or display entire sections based on user responses, but you can’t hide specific questions directly. You also cannot move questions from one section to another.
Keep these limitations in mind as you’re building your form. Anything you want to conditionally hide should be in a separate section from the main questions that will always be displayed.
Additionally, it should be separate from any other sections that will be displayed or hidden based on different conditions.
You can add more sections to your form by clicking on “Add section”.
In the first section of our example form, we’ll add several questions to let users submit a request for a quote, and we’ll map each question to its corresponding Airtable field.
To follow along with this tutorial, you can use any questions you want; just make sure that you have at least one section with questions that every user will see, and at least one section that will only be displayed under certain conditions.
Conditionally hide or display sections in a Softr form
To set up conditional logic in your Softr form, click on the “Logic” tab.
Then, select the section you want to adjust visibility for.
Our first section has general questions for anyone requesting a quote, so we’ll keep it set to “Always visible”.
Our second section has a couple questions that only apply to users who select design packages with a logo, so let’s make sure it only shows up when the selected design package includes the word “logo”.
To make a section of a Softr form only appear under certain conditions, select “Only visible when…”
Then specify one or more conditions.
Setting a condition
When setting up conditional logic, you’ll be able to access all of the user’s responses so far in the form (“Form answer”), as well as any user attributes that are available in your data source (“Logged-in user”).
In our example, our condition will check the user response in the “Design package” field for answers that contain the word “logo”.
You can also add multiple conditions for the same section, and choose to display the section if ANY condition is met, or only if ALL are met.
However, in our example, we’ll just stick with this one condition.
Testing your conditional form
Once you’ve configured your conditional form logic, publish your site and open it in your browser to give it a test.
Below, you can see our published form. The logo questions are hidden to start with, which is a good sign – no package has been selected, so it shouldn’t be possible to pass the condition and show the questions yet.
When we select the “logo” package, the logo questions from section 2 instantly appear.
Finally, we’ll switch to a “website” package, and the questions are gone again. The logic is being applied correctly, so this form is all set.
Using conditional logic to skip to different steps in Softr forms
Now let’s take a look at another way to apply conditional logic to your Softr forms.
In addition to hiding or displaying separate sections, you can also split your form up into steps, and choose the sequence of steps based on user responses or attributes.
Let’s see it in action.
We have another form in this Softr app which is used to collect feedback from clients we’re already working with.
This first step of the form has questions for all clients, but we’ll add a step that will only be relevant for clients who had a website designed by our fictional design agency here.
To add a new step to your Softr form, select the “Questions” tab, click “Add a new step”. Follow along in your Softr app by creating a conditional form with at least 2 steps.
The second step that you add to your form can only be accessed after the user clicks “Next” on the first step of the form.
In our example, we’ll add several questions to the second step that are specific to users who had a website designed for them.
Once you’ve got all the questions you want in your second step, click on the “Logic” tab.
Click on a step in the flowchart-like area on the left to see what happens after it’s completed.
By default, the steps in a form are arranged in a simple, linear process. After Step 1, the form will go to Step 2, and so on. After completing the final step (in our example, Step 2) users can submit the form.
If you’d like to set up alternate paths that skip certain steps, select a step and click on “Add path”. This will add an alternate path that users can follow after completing the selected step.
Under “users go to”, you can select where users will go next if they meet your specified condition.
In our example, we’ll select “Submit”, so this path will lead users directly from Step 1 to the “Submit” button, skipping Step 2. You can configure the condition for your path however you want.
This time, instead of using a user response in the condition, we’ll use a user attribute instead.
Our condition will be:
If the logged-in user’s “Project” field includes none of [three packages with the word ‘website’].
So if users aren’t associated with a website design package in our data source, they won’t see the step that includes questions about their website design experience.
Under “All other cases go to”, you can see and determine what will happen for any users who don’t meet this condition. In our example, they’ll just continue on to step 2.
Once you’ve configured your steps and paths, publish your site and test both possible paths.
First, we’ll log in as a user who purchased a website package. We can immediately see that there's a “next” button instead of a “submit” button
When we click the “Next” button, we can see Step 2 with its questions pertaining to website design.
Great! Softr’s conditional logic identified that the user’s “Project” field included a website package, and showed Step 2 accordingly.
We’ll finish the test by signing in as a user that didn’t order a website design package. The submit button remains as-is.
And when we fill out and submit the form, Step 2 never appears.
Perfect! All the conditional logic is working exactly as intended.
General tips for using conditional forms in Softr
You’re now all set to start using conditional form blocks in Softr.
However, before we wrap up this guide, there are just a few more quick tips we want to share so you can get the most out of forms.
Use “magic links” to quickly switch between user profiles in your Softr app
First, if you’re testing conditional logic based on user attributes, you may want to use magic links to quickly sign in with different test profiles.
Here’s how it works.
Go to the “Users” menu in your Softr app, and add a test user manually if you don’t already have one.
You can also add test users directly to your data source.
Then, in the “Users” menu, just click on the “Copy link” icon to copy a ‘magic’ link that will let you instantly sign as that test user.
This can be a very convenient way to switch back and forth between different test profiles while you’re setting up stuff like conditional forms.
How conditional forms interact with required fields
Next, let’s quickly go over how required fields interact with conditional logic.
The short answer is that they work just fine together.
If you set a field to “required”, but it’s hidden by your conditional logic settings, users will still be able to submit the form without any problem.
They won’t need to provide an answer for the hidden required field.
So go ahead and set any questions to “required” if you want to; it shouldn’t cause any problems with your conditional logic.
Form layout and other settings
Finally, if you want to change the layout and styling of your form, you can find those options under the “Settings” tab.
They’re at the bottom of the section.
In the same place, you can also choose to prevent logged-in users from submitting the form multiple times, and set an action to run after someone completes the form.
For instance, you could redirect users to an external URL or another page in your Softr app.
Add flexibility to your forms with conditional logic
Conditional logic lets you create more versatile forms that accommodate a wide variety of use cases and user types.
Making a form with conditional logic in Softr is easy, so try adding one to your Softr app today.
If you’d like to learn more about Softr, Airtable, and other low-code tools like Zapier and Make, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Are you and your team spending too much time on repetitive tasks? Are you tired of catching silly mistakes after it’s too late?
There's a better way, and it's easier than you might think.
With workflow automation, you can automate your team’s tedious tasks and make sure that critical work is done the right way every time – and you don’t even need to write a single line of code to do it.
In this post, we’re going to show you how to dive into the world of automation with one of the most capable and affordable solutions out there.
Read on to learn how to use Make, formerly known as Integromat.
What’s in this guide
We’ll begin by briefly explaining what Make is and how it works, and we’ll show you how to build your first automated scenario.
There are three key skills you’ll get from following along with this basic tutorial. You’ll learn how to:
• Connect apps together in Make to sync and transfer data.
• Transform and format data with functions.
• Control the flow of your automations with filters and conditional logic
To demonstrate all of these skills, we’ll use the following apps:
• Slack
• And of course, Make
To follow along, you can create free accounts for all of these apps – Make included.
Before getting started, you’ll want to make sure you have some Calendar events and a Google sheet that you can use to play around with, as well as a Slack channel to send messages to.
Whenever possible, it’s best to build your automations and run tests with dedicated testing files, channels, folders, or other material.
After completing the tutorial in this guide, you'll be ready to build your first automated workflow to start saving time and reducing errors in your daily tasks.
Let's get started and see how Make can improve the way you work!
What is Workflow automation, and what is Make?
Before you start building in Make, we want to give you a brief overview of what Make is, and what you can do with it.
Make, formerly known as Integromat, is a no-code automation provider.
It lets you accomplish tasks in your web apps automatically without needing to write any code at all, leaving you with more time to think and less time mindlessly clicking on buttons.
There are several apps out there designed for workflow automation, like Make’s main competitor Zapier, but this guide will be focused primarily on Make.
Compare automation providers like Make and Zapier on XRay.Tools
If you’d like to compare which tools can be automated on both providers, you can just do a quick search for your apps on XRay.Tools.
That will show you every trigger, action, and search available for your apps in Zapier and Make, among other options.
How automation works in Make
Below, you can see what an automation looks like in Make.
I
n Make, each automation is called a "scenario". A scenario starts with a trigger event, which is the event that will prompt the automation to run.
Then, one or more automated actions and searches will follow that trigger. These actions and searches can be in the same app as the trigger, or in totally different apps.
In most cases, you're probably going to use your Make scenarios to send and sync data across different software.
In the example that we'll be building today, our "trigger" is an event getting added to Google Calendar. Then, data from that calendar event is used to create a new spreadsheet row in Google sheets.
Finally, information about the event is passed to Slack for an instant alert. However, thanks to a handy little filter, the alert will only run if the event in question is scheduled to start within one week from the current time.
Simple or complex workflows
The scenario we’re going to demonstrate in this guide is very simple and linear, but Make scenarios can get much more complex and sophisticated.
You can add dozens of steps, branching paths, loops, and other tools to accomplish whatever you need to automate your workflows.
As we build this scenario, we'll show you a bit of formatting and conditional logic, but our main goal for today is to learn the basics so you can start using Make.
You can check out other videos in our Make playlist to learn more advanced techniques. These videos cover topics like routers, API calls, automating AI prompts, and more.
You can also sign up for our workflow design course to learn how to plan, implement, and deliver scalable automated workflows for your team and clients.
Now, it’s time to get ready to build your first scenario in Make.
Getting started with Make
Before we get started, be sure to sign in to all of the apps we're going to be using today: Make, Google Sheets, Google Calendar, and Slack. For this tutorial, free accounts will be fine on all of these apps.
Once you're all signed in, open up Make. You’ll see several options here, but for now, just click on 'Scenarios'.
Then, create a new scenario.
Adding a trigger
Every automation needs to start with a trigger, so add one by clicking on the pulsing plus button in the middle of the screen.
For this scenario, you’ll want to add a trigger that watches your Google Calendar for new events.
After clicking on the plus button, you should see a long list of apps that Make can automate. There are about 2,000 total (and counting), so don't bother scrolling to try and find one.
Instead, just enter a search term (like “Google Calendar”) to pull up an app instantly.
Adding a trigger to your automation
As soon as you enter a term, Make will show you a few options from the best match - in this case, Google Calendar.
But if you don’t see the choices you’re looking for, just click on “Show more.” Then you’ll be able to see every single choice you have for automating that app with Make.
At the very top of the list, you should see an option called “Watch Events.”
As you can see from the description, this will watch your calendar for new events and run whenever it finds one.
This is a perfect trigger for our automation, so select it to add the trigger to your scenario.
Configuring the trigger
Now that you’ve chosen a trigger, you need to configure it by choosing an account to use, and adjusting several parameters to control exactly when your scenario runs.
Authorizing an account for automation in Make
The first step for setting up any module in Make will always be to authorize an account in the app you want to automate.
To automate one of your apps, like Google Calendar, you need to allow Make to access your account and perform actions on your behalf.
Click “Create a connection” to add your first connection for an app.
For most apps, all you’ll need to do is provide a name for your account and sign in. Then, you’ll be able to authorize Make in your app with a single click.
However, sometimes, you’ll need to provide additional credentials like a ‘Client ID’ and ‘Client Secret.’ If that’s the case, you can click on the “Online help” link for more information.
Authorizing Google Calendar
For Google Calendar, you just need to provide a connection name. Be sure to make it unique and descriptive, so you can distinguish between different accounts that you connect.
Then, click “Save.” In the screens that follow, you’ll see the permissions Make needs to automate your app.
The permissions required are extensive, but there’s no need for concern. Make is a trustworthy application, and it only needs these permissions so it can perform the actions you program it to do in your automations.
In spite of requesting the permission to delete data in your account, Make isn’t actually going to delete anything in your apps unless you build an automation with a “delete” step.
After reviewing the required permissions, click “Allow” to authorize Make.
Now, Make will access Google Calendar through the account you connected.
Choosing trigger settings
Next, let’s configure the key options for this trigger.
The choices for configuring a trigger in Make will typically let you narrow things down to get a little more specific about when the automation should run.
For this “Watch Events” trigger in Google Calendar, we can start by choosing the specific calendar that Make should watch. You can just pick one from the dropdown.
Then, you can choose how Make will watch for events - by Created Date, Updated Date, the event’s Starting Date, or the event’s Ending Date.
For this scenario, go with “Created Date.”
You can leave “show deleted events” unchecked, and you won’t need to add a query. Adding a query would enable your trigger to search for a specific event by its title, like “All-hands.”
To make sure your automation runs for every new calendar event, leave the query field blank. Along similar lines, check every event type in the list.
Finally, you can choose how many events can be processed at once when the automation runs.
You can set this to whatever number you’d like, but we’d usually recommend keeping it pretty low. That will usually make it easier to sort through the data as you’re running your tests.
Enter a number like 1 or 2, and click “OK” to commit all of your choices.
Testing the trigger
Now, it’s time to test your trigger.
Testing your Make scenario’s trigger will retrieve a real piece of data from your trigger app, and confirm that your trigger is working correctly as you configured it. That means that testing this “Watch events” Google Calendar trigger will retrieve an actual event from your Google Calendar.
As soon as you close the configuration window, you’ll be prompted to “choose where to start.”
If you don’t see this pop up, you can always right-click on the trigger module and select “Choose where to start” instead.
Then, you’ll see a few options for selecting a starting point. For testing purposes, we’d suggest using “choose manually” the vast majority of the time.
It gets a bit tedious when you’re doing a lot of testing, but this process of “Choose where to start” > “Choose manually” is the most reliable way to control what test data Make uses, since it will let you pick the data you want from a list.
You can use any event you want to test with. In our example, we’ll pick this test event that we created earlier in Calendar. Once you’ve selected an event, click “OK.”
Your trigger is now ready to process the specified data the next time it runs, but you still need to make the trigger actually run to finish your test. To do that, just click on the “Run once” button to fire it off manually.
You should see a number appear over your trigger module after a successful test.
You can click on this number to see all the data your trigger retrieved, like the event summary, the start date, the end date, and much, much more.
All of this data can be referenced dynamically and transformed in subsequent actions in your automation. To see how that works, let’s add an action now to add a new row to Google Sheets containing some of this event’s information.
Add an action to your scenario
Add a new action to your scenario. Once again, search for the app you want to use - in this case, Google Sheets. Then, click “Show more” to see all of the available actions.
You’ll notice that unlike Calendar, the options for Sheets are sorted into ‘Actions’ and ‘Searches.’ Since triggers can only be used at the start of the automation, those are excluded from this list.
To add a new row, choose the “Add a row” action. You should be able to use the same Google connection that you added for Calendar, though you will need to update the permissions.
You can also add an additional account if you’re using a different sign-in for sheets. Once you’ve chosen and authorized your account, you can configure the action.
Configuring an action in Make
Whenever you’re creating data like this in Make, the first thing you’ll need to specify is where you want to create that data.
In this case, you’ll need to specify what Sheet the new row should be added to. Under “Choose a method,” the default “Select by path” option will allow you to pick folders and subfolders until you find the file you want.
We’d recommend switching this to “Select from all.”
Then, you can choose the document you want to use by copying and pasting its ID, which can be found in the URL bar when you have the document open in your browser.
Then, paste the ID into Make.
Using an ID isn’t necessary – you can always identify the doc by its file path if you want – but it helps ensure that everything stays consistent. File names and locations can change, which may require you to update your automations. However, the document’s ID will always remain the same.
Next, choose the sheet you want to use in this file - in this case, that’s Sheet 1 for us.
If your table has headers, like our example does, make sure the “Table includes headers” option is set to “yes.” That will ensure each column is correctly labeled with its header name, like “Start” rather than just being “B” or “C.”
Now, you can map data from the trigger into each column for the new row. Click on each field, and a window will pop up with all of the data retrieved in the trigger, or Step 1 as it’s labeled here.
For example, we’ll insert the event summary into “Event name,” the start and end times into their fields, and so on.
If you want to skip any of these fields and leave them blank in Sheets, just leave them blank here, too. Note that you’ll see every column in your sheet, even if it doesn’t have a title, so you might want to delete extra columns before going into Make.
Finally, you can choose whether to use formatted or unformatted data.
For this automation, we’re going to stick with formatted data so our URL in the “Hangout Link” column will still be formatted as a URL. Once you’ve configured the action, click “OK” to close this window.
Testing an automated action
With the action all set up, it’s time to give the scenario another test.
We’d recommend following the same procedure as before to test your scenario: right-click on the trigger, select “Choose where to Start,” “Choose Manually,” and pick the data you want to use for the test.
Then, click “Run once” to run the whole scenario.
You should see the trigger and action modules run one at a time, and numbers will appear over each of them in turn. Again, you can click on these numbers to see the data the module processed.
In the image below, you’ll notice there are two “bundles” listed in this “operation”. That’s because our scenario processed two events - the one that we chose to start with, and an additional event that was added to the calendar after our chosen event.
This means that our trigger ran once and retrieved two Calendar events, prompting the Sheets action to create 2 rows. Since two rows were created with two different sets of data, we’ll be able to show you exactly how dynamic data works.
Next, open up your Google Sheet to see what Make created.
Over in Sheets, there are 2 new rows with data retrieved from the respective events. You should note that Sheets includes the correct, unique information for each event.
That’s why we call it “dynamic” data. Instead of typing out a static title or start date, we told Make to just look for the title and start date of each specific event. The data that gets filled in here reflects each calendar event that runs through our automation.
After running your tests, your first automation in Make is all set. You can save it and turn it on if you’re ready to start using it.
In the next section of this guide, we’ll show you a few ways to improve this automation, but first, let’s take a look at operations and scheduling.
Scheduling your automation to stay within “operations” limits
In Make, you’re limited to how many “operations” you can use on your account each month. Every automated trigger, action, and search counts as a single operation, even if these are run as tests – and even if the trigger runs and doesn’t find any new data.
On the free plan, you’re limited to just 1,000 operations each month.
In the bottom left hand corner, we can see the automation is currently set to run every day and check for new calendar events every fifteen minutes.
That means this automation will use at least 96 operations each day, seven days a week, even if it doesn’t find any new events. This is because you’re charged an operation every time the trigger checks for new data. Using webhook triggers will let you circumvent this issue, which you can learn more about in this tutorial, but that’s a more advanced topic.
For now, we can dramatically reduce the operations used by changing the schedule to every half hour, and by only setting it to run during business hours on business days.
Just click on the scheduling button (which will read “Every 15 minutes” by default) to change the schedule.
In the menu that pops up, you can set how often the automation will run. By selecting “add item” under “Advanced scheduling”, you can also dictate which days and times the automation will run.
After reconfiguring the schedule in our example, the automation should now only check for new events 16 times a day, five days a week.
Your automation won’t start running on its own until you turn it on, but it’s best to set the schedule early on so you don’t forget.
Going further with Make: advanced techniques
Transforming data with functions
While the automation that we’ve built works fine, the formatting of the dates is less than ideal.
Fortunately, there’s a very simple way to fix that in Make and reformat the dates however you want.
Go back to your scenario in Make and open up the ‘Add a row’ action. Then, select the start date field.
As you’ve already seen, when you select any data input field in a Make module, a window pops up where you can access data from previous steps in the automation.
However, that’s just one tab in this window. In the other tabs, you can access functions and tools that let you reformat text, dates, and numbers, run calculations, and a lot more.
Let’s try reformatting this date to make it a bit easier to read.
Click on the tab with a calendar icon, then look for the “formatDate” function down at the bottom of the panel.
Hover over the function to see a tooltip explaining how it works along with a few examples.
Click on the function to add it to your currently selected input field.
You’ll need to put the date you want to format before the semicolon. Then, you’ll need to provide the format you want to use after the semicolon. You can always refer back to the tooltip to confirm the syntax of the function.
In our example, we’ll use this format:
MM-DD-YY hh:mm A
to show the month, day, and year separated by dashes, followed by 12-hour time.
To keep things consistent, we’ll also use the same function for the end date.
Now, instead of entering the timestamps directly into Sheets, this automation will enter the outputs of these functions, which will be neatly formatted dates and times.
Once you’re all set with your functions, close the Sheets action and save your scenario with the floppy disk save icon. Then, give your scenario a fresh test.
Check Sheets to see the output. You should see a new row with start and end dates using our new format.
Conditional logic and filters
There’s one last thing we want to show you before we wrap up this beginner’s guide. In general, one of the best things about automating a workflow is that you’ll ensure it runs the same way every time, and you’ll avoid all those messy human errors. But with a simple automation like this one, that extreme consistency can become a problem.
That’s because real-life workflows are rarely this simple. More often than not, you’ll need to allow for at least some variation. Fortunately, Make offers several tools to give your automations some variability, including the ability to add filters before any automated action. The scenario will only continue to run past the filter if its data matches your filter conditions.
Let’s see how it works in action.
First, add one more action to this scenario. In our example, we’ll add a Slack action to send a channel message. The message will act as an alert for each upcoming meeting.
Setting up this action is very similar to configuring the new row in Sheets, so we’ll just show you the finished configuration in the screenshot below.
Note that the asterisks we’re adding around some words in the message are a simple formatting trick - they’ll make those words bold in Slack’s markdown syntax. Once your Slack message module is all set, you can add a filter before it.
What we’re going to do is make it so the scenario will only continue to the Slack step if the calendar event is set to start within a week from the current time. If it’s later than that, the scenario will just stop after creating a new row in sheets.
Adding a filter
To add a filter to a scenario, click on the dotted line between the two modules where you want to add your filter.
You’ll then see a little window pop up where you can configure your filter. Give it a brief, descriptive label so you know what it’s for.
Then, you can set the condition. This is what the filter is going to check to decide if it should continue or not.
We want to check when the start date is, so begin by entering the start date from the trigger.
Then, set an operator. Look under “date time operators” for the “Earlier than or equal to” operator.
Now, you just need a way to specify “one week from now.” To do that, you’ll need to ask Make to retrieve the current time, and add seven days to it.
Go to the calendar tab again and choose the “AddDays” function.
Before the semicolon, insert the variable called “now.”
“Now” will retrieve whatever the current date and time is when the scenario is running.
After the semicolon, enter 7, for 7 days.
Now, this filter is set up to check if the event’s |Start date| variable is |earlier than or equal to| |7 days| from now.
By clicking on “Add AND rule” or “Add OR Rule,” you can add more conditions for the filter to check, but let’s just stick with this one for now.
Click OK to close the filter, and give it a test.
Testing a filter
We’d recommend conducting two different tests – one that should pass the filter and one that should fail.
In our example, we’ll start with an event that starts in 2 days, which should pass the filter.
After running the test as usual it looks like all three modules ran, consuming 3 operations.
Below, you can see the new row added in sheets, and the message sent in Slack.
Now we’ll test with this event that starts in 10 days.
In our test, the trigger and the Sheets module ran, but the scenario stopped at the filter and didn't send a Slack message. In total, it consumed 2 operations instead of 3.
Based on these tests, the filter makes the scenario stop when events are more than 7 days away, but lets everything else through. It’s working exactly as intended.
Use routers to do more with filters
To get the most out of filters, you’ll usually want to use routers as well so you can set up alternative actions for different conditions. You can check out this tutorial for more information about routers.
But for now, your first scenario is all set. You can now automate your apps with custom triggers and actions, transform data with functions, and control the flow of your automation with filters. You’re well on your way to automating your work and claiming back some valuable time.
Start automating your team’s repetitive tasks with Make
With automation software like Make, you can remove tedious, repetitive tasks from your team’s everyday workload, and focus more time on the work that really matters.
What we’ve gone over today is just the beginning of what Make can do. Be sure to check out some of the other tutorials on our blog or our YouTube channel to learn more and level up your automation skills.
AI automation is no longer a topic to put off for the future.
In a competitive environment, companies can’t afford to ignore the benefits AI and automation can bring today.
By eliminating repetitive tasks and creating content and reports with generative AI, businesses can scale their operations and gain fresh insights.
However, not every workflow is immediately ready for this kind of transformation. Preparing your workflows for automation and AI is essential to harnessing these benefits.
Here’s how to get started.
The Power of AI in Automation
First, let’s take a look at how AI has opened up new possibilities for workflow automation.
Generative AI models, like those from OpenAI and Anthropic, have brought an entirely new dimension to no-code/low-code automation.
While automation providers like Zapier and Make have always excelled at automating repetitive tasks and sharing data between applications, they’ve been limited in synthesizing or creating information.
Now, with AI, you can go beyond simple automation by transforming content and generating original materials with AI prompts integrated into your workflows.
For example, without AI, you can automate alerts for new files added to Google Drive, referencing data from the Doc in your alert’s message.
It’s easy to connect the data from Point A to Point B, but you can’t really create brand new data using traditional workflow automation alone.
However, with AI, you can take things a huge step further and summarize the documents or generate improvement notes using ChatGPT.
Preparing Your Workflows for Automation
But before trying to enhance your workflows with automation and AI, you need to ensure your processes are repeatable and consistent.
This is a crucial preliminary step for two key reasons.
First, automations require specific instructions to run properly. Even though you don’t need to write any code to build automations with Zapier or Make, you still need to define clear triggers and actions for your processes, and specify the data inputs and outputs for each step.
Second, automating a process will only be worthwhile if that process already provides value for your company. Automating a process that’s not working how you intend will essentially just codify an unproductive workflow.
So if you want to try automating a process, start by mapping it out in precise detail to create an effective automation blueprint. Confirm that the process works well when run manually first, then automate it in software like Zapier or Make.
As an example, let’s say that you want to automate your team’s employee onboarding process. A basic employee onboarding automation might look something like this:
Onboarding automation:
• Launch when an employee’s status is set to “Onboarding” in the team directory (Airtable)
• Invite the new employee to relevant Slack channels
• Add the new employee to relevant docs in Google Drive
• Email the new employee the employee handbook
• Assign the new employee a task to review the handbook
• Assign their supervisor a task to conduct training
• Send a welcome message in Slack
Post onboarding:
• 2 weeks later, send a feedback survey to the new employee
Ultimately, the value of automations like this relies heavily on the quality of the documents and materials involved.
If you’re not happy with your company’s employee handbook, or if you’re not quite sure what tasks to assign, all this automation is going to do is send out information that still needs to be improved.
In other words, your automations are often only going to be as good as the material they process.
Until you've defined all the critical assets you need for a successful procedure, the juice just isn't worth the squeeze to automate it.
This is why you want to work out the kinks in the process before automating. But once you’ve done that, you can save yourself a bunch of time and avoid errors by automating every step that you can.
Enhancing Automation with AI
Ultimately, similar criteria of consistency and repeatability apply when you want to enhance an automated process with AI.
Before you add an AI prompt to your automated workflows in Zapier or Make, you need to make sure you have a relatively consistent prompt that you want to run in the same way every time.
When you’re using a Chatbot interface like ChatGPT manually to ask spontaneous questions, there’s no real need to be consistent.
You can summarize text files sometimes, or just copy and paste text directly other times. Generally, it doesn’t make any difference.
But if you want to automate that prompt into a Zap or Make scenario, you need to know exactly where all of the data that you feed into the prompt will come from. This is because each piece of data has to be defined as a variable in your automation.
Seamlessly adding AI to an automated workflow
Fortunately, in many cases, you’ll find that automating a process creates clean, organized data that’s perfect for feeding into an AI prompt – even if you weren’t originally thinking about using AI at all.
For instance, let’s revisit our employee onboarding example.
Just by running the simple automation we outlined earlier, you’d have a bunch of consistently structured data to compile into a ChatGPT prompt.
In your project management software (Airtable in our example), you’d have data about which tasks have been completed, and when.
You’d also have the new employee’s survey responses to every question.
With that data, you could set up an automation that sends the user’s responses to AI for sentiment analysis, or to discover other insights you might not have noticed by reviewing it yourself.
You could also send a prompt that includes stats about the completed tasks and when they were complete to let the AI evaluate the success of your onboarding process.
The beauty of adding automation and AI together is that you can easily add variables to your prompts, so they have a similar structure every time, but different specific data points.
Without automating the process first, you’d have to manually look up the data and enter it into your prompt. This sort of back-and-forth might be worth it while you’re fine-tuning your prompt, but once you’ve figured out the instructions you want to send, it’s much more efficient to run it all automatically.
So if you want to start enhancing a workflow with AI, try taking the same approach that you would if you wanted to automate the process in general.
Make each step as consistent and repeatable as possible, and make sure that you’re creating clean, well-structured data that you can easily plug into a prompt.
Getting Started with AI and Automation
As AI continues to disrupt industries across the board, it’s more important than ever to find effective ways to leverage it so your company can get ahead of the competition.
If you’re not sure where to start, then just begin by documenting a process and preparing it for automation. Automating a process naturally leads to better opportunities to integrate AI into your workflows, creating clean, consistent data that connects seamlessly to your prompts.
To learn more about automating your company’s work, be sure to explore check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
If you're considering starting a business or launching a new product at your company, you're likely wondering how to get your idea off the ground and start testing for product-market fit.
And if you haven't secured a significant investment, you're probably looking to go to market while spending as little cash as possible.
Fortunately, there's a simple and accessible way to test your business ideas quickly and affordably: prototyping your concept with no-code and low-code tools.
Today, we’re going to use three products that we’ve created at XRay to demonstrate why low-code builds are the best place to start when you need to validate an idea.
These products each highlight the three key benefits of using no-code to build prototypes for your business:
• Low-code lets you quickly test launch products and services
• It can easily integrate with existing systems for streamlined adoption
• you can experiment with internal ideas and add new features whenever you need to
Read on to see how you can benefit from all of these concepts while building low-code products.
LowCodeEngineers: Rapid launching and testing
LowCodeEngineers, or LCE for short, is a service we launched and validated using a minimal low-code build.
LCE matches customers with expert no-code/low-code support on a convenient, flexible hourly basis. Whether you need to build or fix Zaps, Airtable bases, Make scenarios, or Softr portals, you can book time on LCE to get one-on-one support over Zoom.
You might think a service like this would require a standalone app or at least a user sign-in system, but it doesn't! Here's how it works:
1. Customers discover LCE through our videos, landing page, or direct conversations with our sales team.
2. They book their preferred time slot and pay through the LCE website.
3. We receive automated Slack alerts about new bookings, match customers with the right expert, and schedule the Zoom call.
4. Each session is recorded, transcribed, and summarized for easy future reference using our Debrief system (which we'll discuss later).
The architecture supporting this early version of LCE is remarkably simple. It just consists of:
• A landing page built in Softr with a backend in Airtable
• Scheduling through AppToto, which includes Stripe integration for payment processing
• A Zapier automation to alert our team about new bookings so we can hand-pick the right engineer for each job
While we plan to automate more of this system in the future, this streamlined implementation with a Softr site and some Zaps was all we needed to validate the idea.
Even though there's still some manual work on our end, it does enough to test the core value proposition: Expert low-code help, one hour at a time.
We soft-launched in October last year but only started heavily promoting LCE in the last couple of months. In a matter of weeks, we've already seen dozens of bookings resulting in 5-figure monthly revenue.
This quick validation has shown us that LCE is a service worth pursuing and investing more time in, and we didn't have to spend extensive resources just to figure that out.
It took us less than a month to build the MVP, and our software operating cost is just over $100 a month. Discoveries like this are what makes low-code so valuable to entrepreneurs and startups. With simple tools like websites built in Softr or Webflow, and automations built in Zapier or Make, you can quickly test product-market fit to see if an idea is worth a real commitment of your resources.
Guardian: Leverage Existing Systems for easy user adoption
Another project that demonstrates the power of low-code prototyping is our tool called "Guardian." This project, while still in its early stages of validation, highlights a crucial concept: low-code allows you to easily leverage existing software and systems. Whenever possible, that's exactly what you should do.
Don't reinvent the wheel; instead, build on top of popular tools and hijack existing behaviors.
Guardian was created to solve a specific problem we faced as an agency. We build and maintain automations for clients in their accounts on platforms like Zapier, Make, and Airtable.
When these automations encounter errors, alert emails are sent to the client's inbox.
However, we don't have access to our clients' email accounts, and often, clients don't fully understand the error messages. This led to a slow and tedious process of manually forwarding messages, with the risk of important alerts being missed.
Our solution, Guardian, automatically aggregates all these error alert emails into one place where we can view them, group them, and create notes.
It also includes simple methods for tracking our responses.
Like our MVP for LowCodeEngineers, Guardian's architecture is very simple:
• Every client sets up some auto-forwarding rules in their email account
• A Make scenario uses regex to parse relevant emails for key details
• A Softr frontend allows our team to view the aggregated and sorted messages
The beauty of this system lies in its ease of adoption. Clients can install Guardian by simply setting up some auto-forward rules in their Gmail or Outlook accounts.
Once these rules are in place, they don't need to do anything else. Every relevant email is automatically forwarded to our team and tracked in Guardian.
With over a dozen active users and 1,000 indexed automations, Guardian has already proven its worth as an internal tool. It's now available for anyone to try for free at guardian.xray.systems.
By building on top of existing apps and features, we significantly sped up our development time and made it much easier for users to adopt our product. This approach of leveraging familiar environments, like email inboxes, reduces barriers to entry and simplifies the user experience.
Debrief/ZoomTube: iterating on a low-code prototype
Our final example, Debrief (initially called "ZoomTube"), showcases how low-code can be used to validate an internal build and how easy it is to update and rebuild as circumstances change.
As a fully remote business, many of XRay's important meetings and decisions happen over Zoom. Early on, we realized we needed an organized way to reference previous meetings and share key information with clients and partners. While enterprise Zoom plans could have provided some of these features, we needed a more cost-effective solution.
Our initial implementation, circa 2021 (pre-ChatGPT), involved a Zap that:
• Uploaded all of our Zoom recordings to a private YouTube channel for archiving
• Sent the uploaded videos to Trint for transcription.
This relatively simple Zapier automation allowed us to capture and store thousands of meetings at no additional cost beyond our existing Zapier subscription.
This lightweight implementation quickly proved that we didn't need to invest in an expensive solution; we could get all the data we needed through a cheaper, low-code build.
Over time, the system evolved into what we now call "Debrief." The current version no longer uses Zapier.
Instead, it’s built primarily with Airtable, and features a frontend in Softr with AI summaries.
Debrief includes additional customized features that wouldn't be available in off-the-shelf solutions. We added these features gradually as needed, after demonstrating that the core system worked. By using the system daily, we identified areas for improvement and iterated accordingly.
Building with low-code allowed us to confirm that we were using resources correctly and made it easy to update the system as new needs emerged. Debrief is now an integral part of our internal systems, helping us review and share information about meetings, and even creating tasks for us with AI.
The key takeaway here is that low-code not only allows you to quickly test initial ideas but also makes it easy to update and add new features as you discover needs. Adding new steps to an automation or even replacing your automation software entirely is much simpler than developing features and products from scratch.
Start prototyping today with low-code tools
Low-code empowers you to rapidly test ideas using existing systems as a convenient starting point. For entrepreneurs, the key is to focus strictly on your value proposition rather than getting bogged down in extra features.
If you have an idea to test, start building it today with simple tools like Zapier, Make, Softr, or Airtable. These platforms offer the flexibility and speed needed to prototype and validate your concepts quickly and cost-effectively.
Remember, the goal of low-code prototyping is to validate your core idea with minimal investment. Once you've proven the concept, you can always scale up and refine your solution. So don't wait – start building and testing your ideas today!
If you’d like to learn more about building with no-code and low-code tools, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
If you're constantly doing the same tasks on your iPhone, iPad, or Mac, then there's an easy and free way that you can start saving time right now.
In this post, we’re going to show you how you can create automations to streamline your everyday life with Apple Shortcuts.
We’ll show you two different ways to create automations with Shortcuts.
We’ll start with a Shortcut from Apple’s gallery that uploads photos to Dropbox with a single tap.
Then, we’ll show you how to build a custom automation in Shortcuts that plays music whenever your device connects to a bluetooth speaker.
These are just two examples of the thousands of automations that you could build with Shortcuts, and they’re a great way to learn how Shortcuts work.
All you need to follow along with these tutorials is any Apple device. Our examples will be demonstrated on an iPad, but you’ll see similar options on iPhones, as well.
Two types of automations in Shortcuts
As mentioned earlier, there are two types of automations you can create with Shortcuts.
You can build automations that run on demand whenever you tap on their button.
Alternatively, you can create automations that run on their own based on conditions like the time of day, your device’s battery level, or whenever a specific app is opened.
We’ll cover both in this tutorial.
Building an automation with Apple’s Shortcut Gallery: Uploading files to Dropbox
We’ll start with an on-demand shortcut from Apple’s gallery. This Shortcut will let us automatically upload the latest photo on our device to Dropbox with one tap.
To begin, open up Shortcuts. It should already be installed on any Apple device we own - like your Mac, iPhone, iPad, or Apple Watch. You can see the icon for the Shortcuts app in the screenshot below.
Adding a shortcut from the gallery
Once you’ve opened up the Shortcuts app, select “Gallery” from the menu on the left.
In the gallery, you can quickly create shortcuts with premade templates created by Apple. To easily find what you want, just search for the specific app or event that you want to automate.
For example, you can search for “upload” to find the shortcut for uploading a photo to Dropbox.
You can tap on the plus sign to add any shortcut to your device.
Note that some shortcuts from the gallery will immediately walk you through configuration options, while others won’t. However, you can always edit your shortcuts later.
Once you’ve added the shortcut, you can tap on “All Shortcuts” to see it in your library.
Edit and configure a shortcut
To edit and configure an existing shortcut, just tap on the three dots in the top right corner of the shortcut.
Then, you’ll see each action that the automation performs, with several configurable options.
This automation starts with a step that retrieves the most recent photos on the device and lets you choose how many photos to get. You can set any number you want here, but we’ll just leave it as 1 photo in our example.
The second step saves the retrieved photo to Dropbox. The first choice for this action lets you choose whether or not the automation will prompt you to specify where the photo should be saved in Dropbox.
If you enable it, then the next two options will be hidden, since these options will let you choose a single static location where every photo will be saved.
For our example, we’ll leave “Ask where to save” disabled and instead configure a single location where the photos will be saved every time.
Next, for the destination path, you can set a location and filename for every photo. By default, they’ll be saved in the Dropbox root folder, and every file will be named “Workflow.”
Using dynamic data in your automations
First, we’ll save all of the files uploaded with this shortcut into a dedicated “Shortcuts” folder by typing /Shortcuts/ into the file path.
To help distinguish each photo, we’d recommend using a dynamic name. Instead of typing a name, choose “Latest photos” next to “Select variable.”
This will let you retrieve unique data from each photo processed by the automation, such as its file name, width, date taken, file size, and a lot more.
But the file name, which is already selected, will work just fine here.
Now, every photo you upload will go into this dedicated folder, and each photo will have a unique name. Using dynamic data like this to name files will make your shortcut automations much better than using static data.
Enabling “Replace Existing Files” will avoid redundant files by replacing old files with new versions when two items share the same name.
You don’t need to do anything to edit these last two steps, but it’s good to note that after the photo is uploaded to Dropbox, the automation copies the URL for the newly uploaded file.
Adding more steps to your shortcut automation
If you’d like to add more actions to this shortcut, you can do so by selecting them from the right hand menu.
For instance, you might want to send a message containing the newly uploaded photo’s URL to share your pictures with friends or family.
Testing your automation
Once you’ve added and configured all the steps you want in your Shortcut, you can test it by tapping on the “Play” button near the top of the screen.
This will run the automation from beginning to end, highlighting each step as it starts. Note that you may need to authorize some actions during the testing.
Once the test has concluded, check on your Dropbox account. In our example, it looks like the test was successful. Below, you can see our uploaded photo in the “Shortcuts” folder, with a unique name.
Once you’ve finished configuring your shortcut, tap on the arrow in the top left to exit the configuration menu.
Adding your shortcut to the home screen
To add the shortcut to the home screen, just tap and hold anywhere on your device’s background. Then, select the plus sign that appears in the top left corner.
Search for “Shortcuts.”
You can add a widget with a single shortcut, or a folder with several shortcuts. We’ll just choose the single shortcut for now.
If you want to change the shortcut in this widget, just tap and hold to edit it.
Once your Shortcut widget is all set, you can run it by just giving it a tap. As it’s running, you’ll see a little progress circle in the corner.
With the widget added to your home screen, you’re all set to use this Shortcut whenever you want.
Creating automations that run on their own in Shortcuts
Next, let’s create an automation that runs whenever certain conditions are met. We won’t need to tap or click anything to make this automation run.
Instead, this automation will instantly start playing a specific song whenever we connect to a specific Bluetooth speaker.
To create an automation that runs on its own, select “Automation” from the menu on the left.
Tap the plus button to create a new automation.
Then, choose a trigger.
Select an automation trigger
The trigger is the condition(s) that will make your automation run. Note that some automated actions and triggers in Shortcuts will only be available for certain devices, since not all devices have the same hardware, software, or settings.
In the trigger list, you’ll see several options. For instance, we can see time of day, transactions, Wi-Fi and Bluetooth settings, battery levels, and more on our iPad.
To trigger this automation, we’ll choose “Bluetooth,” which will enable the automation to run whenever the device connects to a specific Bluetooth accessory.
Configure your automation trigger
For the configuration options, start by choosing a specific Bluetooth device. The automation will only run when your Apple device connects to that Bluetooth speaker.
Alternatively, you could always select “Any device” to run the automation whenever you connect to any Bluetooth device. However, it’s usually better to choose a more specific trigger.
For example, we’ll choose a Soundcore speaker for our automation.
Next, you can pick whether the automation will run when the Bluetooth speaker is connected or disconnected. Leave it set to “connected.” After all, it wouldn’t make much sense to play music after disconnecting.
Then, you can choose whether the automation will run after confirmation, or run immediately.
If you choose “run after confirmation,” you’ll get a pop-up asking you to confirm the automation before running it. In our example, we’ll set this to “Run immediately,” so it will start without requiring any input from us at all.
The trigger is all set, so now you can tap “Next” and add an action.
Add an action to your automation
You can either select an action from the list, or search for a specific one. For this automation, choose “Play music” in Apple Music.
Then, select this ‘Music’ variable to assign a specific song to play.
You can choose any song you like.
You can add more actions to your automations if you’d like, but we’ll stick with this 2-step automation for our example.
Once you’re finished, tap “done.”
Then, give your automation a test by connecting it to a bluetooth speaker.
Our automation instantly starts playing the song once we connect to the device. Perfect!
You can hear the AI-generated song we’ve chosen in the video version of this tutorial.
Take a Shortcut to productivity at home
Shortcuts are a great tool for shaving a few minutes off your daily tasks and automating your personal devices. They’re totally free and just take a moment to set up, so try building your own today.
If you’d like to learn more about automating your devices at home and at work, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
When you’re building Make scenarios, the prebuilt integrations don’t always retrieve all the data that you need. If you want to supplement your automations with some lookups for extra information, you can easily do it with Make’s “data stores” feature.
In this post, we’re going to show you how it works.
We’ll begin by creating a data store in Make. Then, we’ll demonstrate how to retrieve, create, and update information from a data store in an automated scenario.
At the end of the post, we’ll also share an alternative lookup method that can be more useful if you’re automating your work with both Zapier and Make.
To follow along, just sign in to Make. Data stores are available on every subscription level, including free plans.
How to create a data store in Make
To create a data store in Make, open up the app and click on the “Data Stores” option on the left-hand menu.
If you don’t see the “Data Stores” option, click on “More”, then select “Data Stores”.
To make a new data store, click on the “Add data store” button in the top right corner.
In the window that pops up, you can give your data store a name, choose its size, and give it a structure.
Your maximum data store size will depend on your subscription level. On the free plan, you’ll be limited to just 1 megabyte.
When you click on “Create a structure”, you’ll be able to add fields to your data store. When you create a structure, you’re just defining the fields that will be present in the table, such as “Full Name.” You’re not going to enter the actual data yet, like “John Smith.”
To add a new field to your data store, click on “Add item” under “Specification.”
Initially, you’ll see three fields to fill in here: “Name”, “Type”, and “Default.” If you enable advanced settings, you’ll also see a “Label” field.
A field’s Name represents the programmatic name of the field. This is the text that Make will look for or return whenever it references this field. If you change the name of a field in your data store, you’ll need to make sure that you update any automations that reference that field.
The label is an alternative title for the field that’s primarily intended for people to read. It’s often better to keep the name of each field constant and just update the label if you want to change what the field’s called.
Under “Type”, you can select the data type that your field will accept, such as “Text” or “Date.”
In “Default”, you can specify a default value for the field. Note that this option won’t be available for every field type – for instance, it’s not present for “Date.”
You can add several items to create as many fields as you want. Note that in addition to all of the custom fields that you specify here, every data store will also have a field called “Key”, which is meant to be used as a unique identifier for each record.
Once you’re done, click on “Save” to close the field configuration menu.
Then click “Save” again to create your data store using the chosen structure.
How to manually add records to a data store
To add records to your data store manually, hover over it and click on “Browse” to open the data store.
Then, click on ‘Add’ and fill in each field.
Once you’re done adding records, be sure to click “Save” to commit your changes.
Look up data store records from a Make scenario
Once you’ve created a data store, you can use Make scenarios to automatically find, add, and update records in it. However, you can’t trigger automations to run when you add or update a record in a data store.
To automatically look up records in a data store from a Make scenario, add a new module to your scenario, and search for “Data store.”
In the “Data Store” module, select “Search records.”
Then, pick the data store you want to search in.
Choose the field that you want to search within, and provide a value to search for. You can also specify a sort order for the search results here.
When you run this module, you’ll see any matching records that were found in the data store.
Then, you can use that data in any subsequent steps in your automation. As usual in Make, the value in each field will be returned as a separate variable.
Create and update records in a data store
There are a couple of different ways to automatically create records in your data stores, but the most efficient and flexible options will usually be to use the “Update record” option.
With “Update record”, you can either update an existing record, or create a new one if it doesn’t exist yet.
Just specify the data store you want to use, and the key to search for.
Then, choose whether or not to create a new record if no match is found.
Fill in every field that you want to update with the new value that will be entered.
If you leave a field blank here, then the contents of that field will not be updated when the scenario runs. However, if you’re using the “update” module to create records as well, you’ll probably want to fill in every field.
Once you’re all set, click OK to close the configuration window.
When you run the module, you should see the record created or updated as appropriate.
Operational Databases: an advanced alternative
Of course, data stores are certainly not the only way to do a lookup in Make, and frankly, they’re often not the best way.
Instead of using a built-in feature like a data store, we’d often recommend using Airtable to create an Operational Database (ODb). With an ODb, you can store data for easy reference, control how your automations run, and share data with your team using interfaces.
You can learn more about using an ODb with your no-code automations in this blog post. In the post, we give a brief overview of all the key benefits and use cases of connecting your automations to an Operational Database.
The post primarily demonstrates an ODb connected to Zapier, but the same principles apply to Make. In fact, one of the key benefits of using an ODb is that you can search the same database from several different automation providers.
To learn more about designing workflow automations that leverage an ODb, you can also sign up for our Workflow Designer course. With over 2 hours of video content and activities, we’ll teach you how to design and implement automated workflows that support entire teams with techniques like an ODb.
Of course, an ODb may be overkill in some circumstances. If you just need a small set of data that likely won’t be referenced in many places, then the data stores that we’ve looked at today are a great choice.
Easily find, update, and create data in Make with data stores
With Data Stores in Make, you can quickly create a simple database that you can reference from any Make scenario. Once you’ve established the structure for a data store, you can add, update or delete records with a simple built-in module.
If you’d like to learn more about Make, Zapier, and other no-code automation tools, check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
If you’ve ever tried importing a CSV into an existing table in Airtable, you’ve probably run into a certain frustrating problem.
While you can easily add data to most field types with a standard CSV import, you can’t map the imported data to your linked record fields, such as the linked “Owner” field pictured below.
Fortunately, there’s another way to import CSVs into your tables, and it will let you add data directly into your linked record fields.
All you need is an Airtable subscription and one free extension. In this post, we’re going to show you how it all works.
We’ll demonstrate how to add the “CSV import” extension, and explain how to use it step by step.
Just open up Airtable to follow along.
Airtable’s “CSV Import” Extension
With the “CSV Import” extension, you can map data from a CSV to a linked record, even when you’re adding the CSV to an existing table.
The extension itself is free, but like all extensions, you will need to have a paid Airtable plan to add it to your base.
Adding the extension to your Airtable base
To add the extension to your base, start by clicking on “Extensions” in the top right. On Mac, you can also press Cmd + Shift + backslash to open up the extensions panel.
Once the extensions panel is open, add an extension to your base.
Search for “CSV import.” It should be the only result that appears.
You can click on the extension to view more details. For instance, you’ll be able to see that the extension is actually published by Airtable.
Click “Add Extension” to add the extension to your base.
Just note that extensions are added at the Base level. The extension will immediately be available in every table in the base you have open, but it won’t be automatically added to other bases.
Once the extension is installed, you can use it at any time by opening up the extensions panel.
Uploading a CSV with the extension
With the extension open, you can click on the table icon to upload a file.
After your file has finished uploading, you’ll have a few settings you can adjust to configure your import.
By default, the extension will import your data into the table you currently have open, but you can select another table if you'd like.
Under “Settings,” you’ll see a few options:
• Merge existing records if there are duplicates
• Skip the header row of your CSV
• Automatically create new “select” options when the entry doesn’t match an existing choice.
Below these settings, you can easily map each field from your CSV to the appropriate field in Airtable. Just select the destination field from Airtable and pick a matching field from your imported CSV.
If your CSV field names match your Airtable field names, most should be mapped automatically, but you can adjust them as needed if they don’t get paired up correctly.
And most importantly, you can map data from your CSV to linked records in Airtable, such as the “Owner” field in our example.
As you adjust your settings, you’ll see a preview of your new records in this area to the right.
Once you’re done configuring your settings and field mappings, click “Save records” to add the new data to your table.
Your records will begin to show up immediately in the table, although large imports may take a little bit longer.
You should also see that any linked record fields are filled in correctly for each new record, just like the “Owner” field in our example.
Limitations of the “CSV Import” Extension: Formula Fields in Linked Records
Before we wrap up this tutorial, we just want to note that there is one key limitation if you’re importing CSVs into a table with linked records.
If the table you’re linking to uses a formula for the primary field, then you won’t be able to add records to that linked table by importing new data.
Let’s illustrate this issue with an example.
Bill Thompson is listed as an “Owner” in one of the rows in our Google Sheet pictured below, which we’ll export as a CSV.
However, Bill isn’t in our “People” table in Airtable, which is what the “Owner” field links to.
In the “People” table, the primary field uses a simple formula to concatenate the “First name” and “last name” fields.
When we import the CSV into Airtable with the extension, the “Owner” field for this record is blank, because it can’t find “Bill Thompson” in the “People” table. That record doesn’t exist.
It also can’t create a record for Bill Thompson, because data cannot be entered directly into a formula field.
How to work around the formula field limitation
In circumstances like these, just make sure to import any necessary data into the linked table first.
In this case, we’d want to import data into the People table before importing into the “Tasks” table. If we import a “Bill Thompson” record into the People table, then our imported records in the tasks table will be able to link to it.
This limitation with formula fields can be a little annoying to work around, but using the CSV Import extension generally works much better for adding new data to a table with linked records.
Better CSV imports with Airtable’s free extension
Importing CSVs into Airtable with the usual method has some frustrating limits. If you’re regularly updating a table with new data from a CSV, then you’ll definitely want to start using the CSV Import extension
It will let you easily add records to an existing table, and will even map directly to Linked Record fields, avoiding the hassle of converting your field types.
You may also want to check out our Zapier or Make beginner’s guides to start setting up some automations instead.
If you’d like to learn more about streamlining and automating your work in Airtable, Make, Zapier and other no-code tools, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
At XRay.Tech, our goal is to help people automate their mindless work so they can create more time for the work that matters.
We believe that everyone should be able to design the perfect way to work for themselves, regardless of their budget and background.
In addition to offering long-term automation support to enterprise organizations through our CWO Membership, we also offer several ways for anyone to start automating their work for free.
In this blog post, we’re going to share four of the tools and resources that we’ve built to enable everyone to research, build, and learn more about workflow automation.
XRay.Tools
First, let’s take a look at XRay.Tools, a free automation search engine developed by our team at XRay.
If you want to quickly research the automation capabilities of any web app, a quick search on XRay.Tools will show you everything you need to know.
You’ll see every available trigger, action, and search in Zapier, Make, Workato, Power Automate, and other popular automation providers.
You can search for several tools at once, and save your search to a convenient, shareable tool belt that you can send to clients and collaborators.
Just go to xray.tools to get started.
XRay Workflow
Next, let’s explore a tool that anyone can use to share resources from around the web with a single convenient link.
With XRay Workflow, you can save any URL as a link or an embed, including video URLs from YouTube.
Your links will exist alongside any other text, documents, or even webhooks that you want to share on your custom board.
When you’re ready to send your board to clients, coworkers, students, or just anyone on the web, you can make your board public and copy the link.
With a single URL, you can compile and share dozens of links and helpful pieces of information in one place.
To learn more and download XRay Workflow for free just to xrayworkflow.com.
XRay YouTube Channel
Every week, we post no-code and low-code automation tips and tutorials to this blog. But we also post a companion video each week on YouTube.
On YouTube, you’ll get to see more detail in every tutorial as we walk through the entire process instead of just sharing key screenshots.
If you’d like to see all of our tutorial workflows in action and get alerts for every new video, subscribe to the channel here and turn on notifications so you don’t miss a new way to save time.
Workflow Designers on Slack
Finally, if you want to chat with some like-minded builders to share advice, tips, and horror stories, be sure to check out the Workflow Designer Slack community we’ve built.
It’s a free community for no-code automation builders that we set up to give everyone a place to talk and share ideas.
Click here to join Workflow Designers on Slack.
Supporting no-code and low-code builders
Check out all the resources listed in this blog to learn more about workflow automation, plan your no-code builds, and compile links from all over the web into a single URL.
And if you’d like to learn how XRay can help your company to automate your work and scale your processes, just reach out for a free consultation.
Automating your daily tasks doesn’t mean you need to sign up for expensive software. With the right tools, you can boost your productivity and get rid of robotic work without breaking the bank.
In this post, we’ll give you a rundown of 5 of the best free (or cheap) automation apps available right now.
While most of these apps can be accessed for no charge at all, many do offer additional features at an extra cost.
This list will cover several use cases, so whether you want to automate personal tasks, your social media, or your business, there’s something here for you.
Links to every app can be found in the companion XRay Workflow resources board for this post.
Now let’s jump into the list.
App #1: Simple Social Media and Mobile Automation with IFTTT
What is IFTTT?
IFTTT stands for “If This, Then That”, and it's a tool that lets you automate your web apps and your mobile devices, including system settings on your Android or iOS phone.
This app does not have a huge library of integrations compared to giants like Zapier, but it does offer great support for social media apps and mobile devices in particular.
What can IFTTT Do?
With IFTTT, you can build automations or “applets” that run whenever a specified event occurs.
For instance, you could create an applet that shares every new update in an RSS feed as a post on a Facebook page.
Or, you could build an applet that creates a new post on Twitter whenever you start streaming on Twitch, so all your followers can get notified immediately.
Automating mobile devices with IFTTT
With its mobile automation tools, you can use IFTTT to do things like unmuting your phone whenever you get home.
You could also send an automated text to your family asking if they want anything whenever you arrive at the grocery store.
That way, you can avoid making a second trip just for a single bottle of hot sauce.
Limited support for business apps in IFTTT
IFTTT also offers decent support for some popular business apps, including Google Drive, Slack, Webflow, and Airtable. However, you’ll definitely find more integrations for this kind of software on automation providers like Zapier and Make.
What are IFTTT’s limitations?
The biggest downside of IFTTT is that the free plan is rather limited. You’ll be stuck with 2-step applets only, and you’ll be limited to 2 applets total.
However, the paid plans that unlock additional applets and some premium integrations like Twitter start at only $35 bucks a year. That's a little less than 1/10th the cost of zapier.
If you need to automate your social media posts and your mobile devices, IFTTT is one of the cheapest ways to do it, and you can easily get started with the free plan.
Get started with IFTTT
You can learn more and create a free account on IFTTT’s website.
App #2: Build Sophisticated Automated Workflows with Make
Next, let’s take a look at the best free automation choice for businesses.
This app is now called Make, though it used to be known as Integromat. A recent rebrand switched their color scheme from blue to purple and changed a few things behind the scenes, but it’s still the same app.
At its core, Make is pretty similar to IFTTT, and even more similar to Zapier.
What can Make do?
With Make, you can build automations – called “scenarios” here – that connect your web apps together. When an event happens in one web app, one or more actions will be automatically performed in your other apps.
Make has about twice as many integrations as IFTTT, though it doesn’t have nearly as much support for Android and iOS device-specific automations.
Instead, you’ll get access to a greater number of integrations with popular business and enterprise web apps, like Shopify, Hubspot CRM, and Basecamp, just to name a few.
You’ll also typically see much more advanced support on Make for apps that might also be on IFTTT, like Asana or Salesforce.
Additionally, Make’s free plan is the most robust out of any comparable automation provider. You’re still limited to only 2 active scenarios, but unlike IFTTT or Zapier, Make will let you build multi-step automations without a paid plan.
You can also access basically all of Make’s core features without paying a dime. Your two scenarios can connect data between a dozen different apps and run all the conditional logic that you want.
Routers, filters, arrays, iterators and other features are all available to give you precise control over how your automations run.
Make’s limitations
Compared with competitors like Zapier or IFTTT, Make can be a little challenging to learn, particularly for users with no coding experience at all.
Additionally, while its current tally of almost 2,000 integrations is impressive, it’s still a long way off of Zapier’s staggering total of over 7,000 integrations. If you’re a strictly no-code builder and aren’t interested in dabbling with low-code Make may not be an ideal choice.
Finally, Make’s free plan won’t be suitable as a long-term solution for automating your company’s work. If you want to start using several scenarios to automate your team’s work, you’ll need to start a subscription.
That being said, Make is easily the best way to explore everything no-code automation can do for your company without any cost or commitment upfront, and it offers several affordable paid plans.
Get started with Make
To learn more about Make and start using it for free, just explore Make’s website.
#3: Automate Your Apple Devices with Shortcuts
Of course, automation isn’t all about business, and it’s not all about connecting web apps together, either. Sometimes, it’s all about that little device that lives in your pocket.
What is Shortcuts?
Shortcuts is a free utility available on every Apple device. It lets you run automated actions at the press of a button, or whenever specific trigger event conditions occur.
Shortcuts primarily connects with native Apple software, but also integrates with third-party apps like Dropbox.
What can Shortcuts do?
With Shortcuts, you can automate reminders, photo backups, and a whole lot more on your iPhone, iPad, Apple Watch, or Mac.
For example, with Shortcuts, you can set up a Shortcut button that uploads the latest photo from your camera roll directly to your dropbox account.
You can also set up automated text messages that get sent out at a scheduled time, or turn off cellular data when you connect to your home wi-fi.
Watch “15 iPhone Shortcuts YOU Requested” on YouTube
For a bit of fun, try using the meme builder template to quickly add text to any of your images and liven up your group chats.
To create a Shortcut, you can either build custom actions from scratch, or grab a premade Shortcut from Apple’s template gallery to get started quickly.
Shortcuts Limitations
Shortcuts is an automation tool that’s easy to use, totally free, and it’s already installed on all of your Apple devices.
The only real downside is that it has relatively few integrations and limited functionality when it comes to automating web apps, so Shortcuts is definitely not a good choice for automating the software you use for work.
But all in all, it’s a great tool for automating reminders, personal tasks, smart home devices, and managing your photos and other media.
Get started with Shortcuts
To get started with Shortcuts, just open up the app on your Apple device. The icon looks like this:
#4: Use Macrodroid or Tasker to Automate your Android Phone
If you like the look of Shortcuts but don’t have an iPhone or other Apple device, don’t worry. There are a couple of good Android alternatives to Shortcuts, which we’ll cover now.
Let’s take a quick look at both Macrodroid and Tasker.
What are Macrodroid and Tasker?
Both apps are very similar to Shortcuts, allowing you to automate actions in your phone’s software.
However, unlike Shortcuts, these are third-party apps. You’ll need to open up the Google Play store to install them.
Macrodroid is available to download for free, although you’ll need to pay a one-time fee of $7 to unlock unlimited macros, remove ads, and get some other functionality like cloud backups.
Tasker doesn’t offer a free plan, but costs only $3.50 to download.
What can Macrodroid and Tasker do?
As just a few examples of the kinds of automations you can set up with these apps, you can use them to start automatically playing music whenever you connect to a bluetooth speaker, set up advanced reminders and tasks, create a screen-recording button, and more.
Watch “How to Use Macrodroid 9” on YouTube
The biggest difference between the two apps is ease of use.
Tasker has extensive functionality and lets you choose precise settings for every automation, but it’s not the most user-friendly experience.
Watch “Tasker 5.13 - Scenes+” on YouTube
You’ll definitely need to check out some tutorials to get started, but it does have a dedicated and helpful community that will gladly lend you a hand.
On the flipside, Macrodroid is a much simpler app to use, with an interface that will likely be a lot more comfortable for most users.
Watch “Tasker Too Complicated? Give MacroDroid a Try” on YouTube
Whichever you choose, you’ll be able to streamline all sorts of tasks and actions on your Android device.
Tasker and Macrodroid Limitations
The biggest downside to both Tasker and Macrodroid is that they’re strictly Android apps. You won’t be able to use the apps on a PC or Mac to automate your work there as well.
Get started with Tasker and Macrodroid
You can learn more about both apps and download them on their respective Google Play Store pages:
• Macrodroid on Google Play Store
#5: Explore self-hosted automation with N8N
Finally, we’ll wrap up this list with an automation tool for the most tech-savvy builders out there: N8N.
What is N8N?
N8N is an open-source automation provider. It works similarly to Zapier, Make, or IFTTT, and it also offers some standard paid subscriptions just like those apps.
What can you do with N8N?
In N8N, you can build automated workflows that are comparable to what you might build in Zapier or Make.
However, what makes N8N stand out from the competition is that it also offers a unique self-hosting option.
This is available for both their Enterprise implementations, and for their free Community version. The community version of N8N is available as a Github repository.
If you’ve got some technical knowledge and you’re looking to set up automations that you have total control over, then N8N is a great choice.
They only offer about 1,000 pre-built integrations, but they also include generalized tools for connecting to any app with an API.
Even if setting up your own instance is beyond your comfort zone, N8N’s paid plans can still often be much more affordable than Zapier or Make. Team plans with unlimited users start at just $20/mo.
Note that N8N sets their pricing based on completed workflow runs, rather than individual tasks or operations. If you want to build longer or more complex automations, this is a more budget-friendly approach.
N8N limitations
Setting up your own self-hosted instance of N8N is not something most no-code builders will be familiar with.
Additionally, many of N8N’s features like native support for JavaScript won’t be very useful or accessible if you’re not familiar with web development.
However, making the jump from purely no-code tools to software like Docker or Supabase may be worth it for many users.
Get started with N8n
N8N certainly won’t be for everyone, but if you’ve got the technical background, its unique pricing and self-hosting model might be exactly what you're looking for.
To learn more about N8N and setting up your own instance, just check out N8N’s website.
Automation tools for any budget
Automation can make everything in our lives easier, from streamlining dull tasks at work to helping us stick with healthy habits at home. With free and cheap tools like the apps we’ve outlined, anyone can start creating more time for the stuff that matters.
For more automation tips and tutorials, be sure to check out our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Are your Zaps just not zapping like you want them to?
If you've dabbled in apps like Zapier and Make, you might have hit a wall trying to take your automations to the next level. As you try to move past simple workflows, you may be struggling to build automations that find all the data you need, and you may find that your Zaps or Scenarios end up becoming far too long and difficult to maintain.
Fortunately, there’s a reliable technique that can untangle your automation woes and help you build better, more consistent workflows. It's all about diving into the world of no-code databases, particularly in apps like Airtable and SmartSuite.
In this post, we're going to walk you through how leveraging an Operational Database in Airtable or SmartSuite can revolutionize your approach to automations, and will let you build systems that support multiple teams and departments.
As we go along, we’ll share some real-world examples from our own workflow toolkit so you can see exactly how it all works.
The problem: linear design
If you’re getting frustrated with Zapier or Make, you’re not alone. At XRay, we constantly hear from people who are struggling to connect their apps the way they want to with no-code automation providers.
In many cases, we find that the issue comes down to one critical concept: linear design.
For new builders, it can be difficult to break out of a linear design pattern, especially since automation providers typically describe their product using this type of pattern. Most of the automation descriptions on Zapier and Make’s websites rely on a “When A, then B” format, like in the examples below.
However, this setup is just the beginning, and if you keep trying to use it for every automation, you’ll quickly find that it becomes limiting.
For example, let’s say you want to build an automation that creates a task in Asana (or any other task management app) whenever you add an emoji to a Slack message.
Tip: if you'd like to learn how to add custom emojis to your Slack workspace, explore Slack's help docs here.
It’s easy enough to set up a trigger in Zapier or Make that watches for new emoji reactions, and filters for custom “team task” emojis. Then, you can add an action that creates a task in your preferred software.
Unfortunately, the trigger doesn’t actually retrieve all the useful, dynamic data that might be needed when creating tasks.
For instance, how do you reliably attach the task to the appropriate project? The title of the channel might be a good starting point, but the title of your “Marketing” channel in Slack might not exactly match your “Marketing” project in your task management app, so adding a search step based on this data won’t be a reliable approach.
A single mismatched hyphen or underscore could prevent the automation from working correctly.
And what if you want to automatically create tasks from multiple sources, like email or forms? If you want to avoid building redundant automations, you would need to mess around with things like Sub-Zaps or Webhooks, which can get a little complicated.
The solution: supporting your automations with an Operational Database (ODb)
There are many ways you could potentially solve automation design problems like these, but in our experience building no-code automations for our members and for our internal team, there’s one technique that consistently stands out.
The trick is to connect all of your automations to what we at XRay call an “Operational database,” or ODb.
While this term might sound like technical jargon, a well-designed operational database is arguably the single most important asset you’ll create as you’re building automations in the long term.
It will enable automations that support your entire team with the dynamic data that Zapier, Make, and other similar platforms struggle to find on their own.
We’ll show you how it works and how it can fix all of these problems we’ve outlined and more.
Using an ODb to store and retrieve any data
Below is an example ODb that we could use to support the Task Creation automations we’ve described.
This is a pretty simple no-code database built in Airtable, which is what we typically use at XRay, although you can also accomplish something very similar with SmartSuite.
This database is a repository for all of the information that our automations use. We can match usernames to their emails and IDs in various apps, their job role, and a lot more. That way, we can create truly dynamic automations that suit an entire team instead of just an individual.
We can assign tasks or send messages to anyone with a single automation that searches for a record in this database, because all of the info we need is present.
Integrating an ODb into automated workflows
Now, let’s take a look at some updated automations that connect to this ODb instead of using a standard, linear design.
By supporting the automations with an ODb, we can make sure that every task is assigned to the right person and connected to the right project.
In the “people” table, we’ve stored the names of the custom emojis that represent each team member, as well as their IDs in Slack and Asana.
After the automation is triggered by a new emoji reaction in Sack, it searches in our Airtable database for a matching emoji name, which is guaranteed to find an exact match.
The Asana ID found in this Airtable record can then be used to assign the right task. When a “mattj” emoji is added to a Slack message, this search step will find Matt J’s Asana ID. When a “tom” emoji is added, it will find Tom’s Asana ID, and so on.
Dynamically selecting an Asana project with an ODb
With an ODb, you can use largely the same process to attach the task to the right project in Asana. The table pictured below lists all of the projects at the company, and includes their exact names and IDs in Slack and Asana.
With this information, we can be confident that lookups will always work correctly.
Using an ODb as an advanced lookup table
With an Operational Database, you don’t just go from App A to App B. You can search in the database for any data you need, send it to other apps, and update the database with the latest information.
When you use an ODb, you don’t need to worry about necessary data missing from a Zapier trigger, action, or search. Just store any data you need in your ODb to conveniently access it whenever you want from any automation.
Additionally, by leveraging linked records in your ODB, you can associate data in one table with data in another table. Even as you add more and more information, you can keep the whole database neat and organized with one table for “People,” one for “Tasks,” one for “Projects,” and so on.
You don’t need to worry about a given Zapier trigger or action not having the right data, because you can find it all with a simple search step for the right record in your database.
And unlike a simple lookup table in Zapier, you can refer to this database from any number of automations, on any number of automation platforms, and include as many attributes as you want. Plus, you don’t need an expensive subscription like Zapier Tables just to put this database together.
Controlling automated activity and building modular automations with an ODb
However, an Operational Database is more than just an advanced lookup table. With views and filters, you can use an ODb as a control center for your automations.
For example, one useful aspect of an ODb in Airtable is that you can launch automations whenever a record enters a specified view or meets certain conditions.
This is a very flexible automation trigger that gives you a lot of options for controlling your workflows, and can help you to build modular automations that avoid redundancy.
For instance, if we wanted to expand our task creation automation and establish multiple ways to create tasks, we could use our ODb to create a system that funnels data from several sources to a single endpoint.
Our main task creation Zap, pictured below, triggers in Zapier whenever a record enters the “Create Task” view in our database.
So whenever we want to add a new method for creating tasks, we don’t need to add steps that create the task every single time.
All we need to do is get the information into Airtable, and then the main automation that we already built will take over.
This means that we can have one automation that collects data from Slack, one that collects data from a form, and one that collects data from an email inbox.
They all send their data to Airtable, which launches a single automation that actually creates the task.
This is a much more scalable, maintainable approach than building three fully separate automations, and you don’t need to mess around with sub-Zaps or webhooks to do it.
Additional benefits of using an Operational Database
In addition to all of the advantages that we’ve described so far, you can also use your database to create indefinite delays, as we demonstrated in this earlier Zapier tutorial.
With an ODb, you can also create several smaller automations that run on demand, or transform data however you want with formula fields, and much more.
We can’t cover every feature and benefit in a single blog post, but if you’d like to learn more about designing scalable and dynamic automations with an Operational Database, you can sign up for our Workflow Design Course.
Going beyond linear design to build better automations
Building simple, straightforward automations in Zapier or Make is a good way to get started, but creating great automated workflows requires a bit more. It's all about thinking beyond the linear and embracing the power of a well-crafted database.
With an Operational Database in Airtable or SmartSuite, you can get all of the data you need in one place to build dynamic automations that support entire teams. You can control when each automated action runs, and you can avoid creating redundant automations that all do basically the same thing.
Essentially, with an Operational Database, you can build complete systems instead of just building automations.
If you’d like to learn more about designing and implementing automated workflows with no-code tools, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
Since bursting onto the scene in November 2022, ChatGPT has been making consistent updates.
In this post, we’re going to take a look at one of the latest features – a direct integration with Google Drive.
OpenAI has been rolling out the Google Drive integration over the last few weeks, and it’s now available to all ChatGPT users – including users with free plans. The integration allows you to upload files directly from your Google Drive into your ChatGPT conversations.
Once you’ve uploaded the file, you can ask ChatGPT to do whatever you want with the file. You can summarize it, translate it, describe it, or even rewrite it as an epic poem.
We’ll show you how to get started with the new integration, and give you a few examples of what it can do.
How to use the Google Drive Integration in ChatGPT
To begin, just click on the file (paperclip) icon next to the chat window.
Then, choose the new option that reads “add from Google Drive”.
You’ll need to sign in with a Google account and authorize ChatGPT to access your Drive before you can proceed.
Once you’re signed in, you’ll see a familiar portal where you can browse or search for any file that you want to send over.
TIP: Wait for your file to appear as a suggestion rather than clicking on search. As we were testing the new feature, we generally found that Google Drive placed more accurate and consistent search results in the dropdown that appears underneath the search bar. Actually clicking on the search icon would typically turn up several bad matches, and often wouldn’t include the file we were looking for.
Click on the file you want to upload to ChatGPT, and the file will start loading right away.
Then, enter any prompt you want, and send your message to ChatGPT as usual.
While this update isn’t a revolutionary change to ChatGPT by any means, it definitely adds some real convenience if you do most of your work in Drive.
It’s a lot quicker to attach a file directly than to open it in Drive, download it to your computer, and re-upload it to ChatGPT.
What file types does the Google Drive integration in ChatGPT support?
ChatGPT can view and analyze text documents, slide presentations, images, and video files. However, based on our most recent tests on 06/04/24, the AI encounters several errors and has pretty limited functionality when it comes to video files.
Try using the ChatGPT to extract key insights from your docs, create new iterations of your images with DALL-E, or suggest speaker notes in your presentations.
Additionally, ChatGPT can only extract text from Slides presentations. If you want ChatGPT to take a look at any of the images in your deck, you’ll need to upload them separately.
What are the limitations of the Google Drive integration in ChatGPT?
The Google Drive integration can read and analyze the files that you add to your conversations, but it cannot create or edit files directly in your Drive. Sending ChatGPT a prompt like “Create a file in my Google Drive called ‘Example Doc’” won’t work.
It also can’t search for files on your behalf, so a question like “is there a file called ‘Example’ in my Drive?” won’t return a helpful answer.
Instead, its features are limited to reading and interpreting the files you choose to share with ChatGPT directly.
Integrating AI into routine workflows
For many of us, ChatGPT has become an essential part of our daily work, so integrations with apps like Google Drive are a natural fit.
It’s not an earth-shattering change, but it’s a nice little update to be able to upload files directly from Drive into ChatGPT, and it’s hopefully laying the groundwork for a more robust integration to follow.
If you’d like to learn more about saving time with AI and workflow automation, be sure to check out the other posts on our blog or our YouTube channel. You can also follow XRay on Twitter, Facebook, or LinkedIn.
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.
🎙Interview me about my Workflow
Workflows take many different shapes, sizes, and tools. Ever wonder how your workflows compare?
Get interviewed and find out!