<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[NocodeAssistant]]></title><description><![CDATA[Articles and Tutorials about Bubble.io]]></description><link>https://nocodeassistant.com/</link><image><url>https://nocodeassistant.com/favicon.png</url><title>NocodeAssistant</title><link>https://nocodeassistant.com/</link></image><generator>Ghost 4.44</generator><lastBuildDate>Sun, 12 Apr 2026 02:20:31 GMT</lastBuildDate><atom:link href="https://nocodeassistant.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Complete Guide to Master Groups in Bubble]]></title><description><![CDATA[What are Popups, Floating Groups, Group Focus, Repeating Groups and Groups? Where and how should you use them?]]></description><link>https://nocodeassistant.com/groups-in-bubble/</link><guid isPermaLink="false">643edfe1bf7be4962788dc85</guid><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Tue, 18 Apr 2023 18:59:11 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2023/04/Design-8-min.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2023/04/Design-8-min.png" alt="Complete Guide to Master Groups in Bubble"><p>If you&apos;re starting on Bubble, one of the first things you&apos;ll notice is the <em>Groups</em> in the Containers category. But what are these elements, and why do they matter? In this article, we&apos;ll delve into everything you need to know about Groups, discussing each type in-depth.</p><h2 id="what-are-groups-in-bubble">What are Groups in Bubble?</h2><p>Let me break it down for you in simple terms. In Bubble, elements refer to everything you place on your app canvas &#x2014; texts, buttons, images.</p><p>Groups function as containers for all these elements, making organising and managing them more manageable. Think of it as a virtual basket that keeps all your goodies in one place!</p><h3 id="groups-can-contain-other-elements">Groups can contain other elements</h3><p>Think of Groups as parents and every element inside of them as children. It makes editing your Bubble app much easier since you can move, copy/paste, or delete all elements in a group in one go.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.12.39-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1140" height="604" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.12.39-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.12.39-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.12.39-AM-min.png 1140w" sizes="(min-width: 720px) 720px"></figure><p>You can even nest groups inside of other groups, creating a hierarchy that makes it easy to navigate and identify different parts of your app.</p><p>Groups are also handy to organise your Element tree. For example, you can name a group &quot;Edit User&quot; and see that it contains input elements for first and last names. And if you want to hide any elements (including children) in the editor, click the eye symbol.</p><h3 id="groups-can-hold-data">Groups can hold data</h3><p>Picture this: You&apos;re setting up a form where users can update their Company name and address. You can create a group with the data type &quot;Company&quot; to simplify things. This way, all elements within the group will reference that particular Company record.</p><p>Are you still feeling confused?</p><p>Let&apos;s say you have a text field in the group. You can set the dynamic value of the text as <em>Group A&apos;s Company&apos;s name.</em> But which Company are we talking about?</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.11.24-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1550" height="624" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.11.24-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.11.24-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.11.24-AM-min.png 1550w" sizes="(min-width: 720px) 720px"></figure><p>This is where the Group comes in. We can tell Bubble we want Group A to hold a Company value. You can then reference this value.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.09.39-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1228" height="626" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.09.39-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.09.39-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.09.39-AM-min.png 1228w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The <em>Type of content</em> of a Group can not be dynamically changed, but the Data Source can be a dynamic value &#x2014; meaning we can change the value with an action.</div></div><p>As Group A holds a Company value, we can pass the value on to all the Group&apos;s child elements.</p><p>It is the quickest way to instruct Bubble on which Company to work on. In the example above, we&apos;re fetching the name of the Company loaded into the Group &#x2013; which we defined in the last step.</p><p>You can store any kind of data in a Group &#x2013; text, number, data type, expression or Option set.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Pro tip: Use a popup with hidden groups to store and access values in multiple places in your Bubble app.</div></div><h2 id="types-of-groups-in-bubble">Types of Groups in Bubble</h2><p>There are 5 types of groups in Bubble &#x2014; Group, Repeating Group, Floating Group, Focus Group and Popup.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.06.04-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="662" height="388" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.06.04-AM-min.png 600w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.06.04-AM-min.png 662w"></figure><h2 id="groups">Groups</h2><p>The first type of container is a Group. It is simply a container to organise elements and store data.</p><p>You can place a group directly on a page, inside another group or even inside the other containers (floating group, popups etc.).</p><p><strong>1. Using Groups for responsive design</strong></p><p>You can use Groups in Bubble to group different elements together and have them all behave and move together.</p><p>You&apos;ll save the effort of applying the same responsive settings on the child elements by applying the settings to the parent group &#x2014; margins, padding, min-width etc.</p><p><strong>2. Using Groups to store data</strong></p><p>As explained above in the example, you can fetch and store a record&apos;s value in the Group. As a Group is a singular element and doesn&apos;t repeat, you can only keep 1 value in the Group. You&apos;ll need to use a Repeating Group to hold more than one value.</p><p><strong>3. Using Groups to hide/show elements conditionally</strong></p><p>There can be cases where you want to display only certain sections depending on some conditions. In such a scenario, you can put the section in a collapsible group and show/hide it using conditionals.</p><p><strong>4. Using Groups in SPA</strong></p><p>A Single Page App relies on having the entire functionality on a single page. You can imagine the challenges of putting all the workflows on one page.</p><p>It is why an experienced Bubble developer will use reusable elements to build the SPA. They will put all the reusable elements in various collapsible groups and show/hide them. The height and width of the group will collapse to 0 pixels when it&apos;s not visible.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.14.21-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1654" height="852" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.14.21-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.14.21-AM-min.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2023/04/Screenshot-2023-04-19-at-12.14.21-AM-min.png 1600w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.14.21-AM-min.png 1654w" sizes="(min-width: 720px) 720px"></figure><h2 id="repeating-groups">Repeating Groups</h2><p>If you want to display a list of items in your Bubble app, Repeating Groups will help you get the job done. Unlike regular Groups that display information about one user or item, Repeating Groups can show a whole list of them neat and organised.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.16.18-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1362" height="1054" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.16.18-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.16.18-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.16.18-AM-min.png 1362w" sizes="(min-width: 720px) 720px"></figure><p>Here&apos;s how it works: you provide a list of items you want to display, and Bubble creates a row for each item. Each row is a cell of the Repeating Group, and you only need to design the first row. Bubble will handle the rest by repeating the elements you designed for each row.</p><p>Imagine you&apos;re running a social media platform where users can post photos. You want to display all the photos in a grid-like format, each with a title and a brief description underneath. This is where Repeating Groups come in handy.</p><p>You can set the content type of the Repeating Group to Posts, and Bubble will automatically display all the Posts in the list. You only need to design the first cell with its title and description, and Bubble will repeat the design for each Post in the list.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.17.53-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1302" height="786" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.17.53-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.17.53-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.17.53-AM-min.png 1302w" sizes="(min-width: 720px) 720px"></figure><p>Inside each cell of the Repeating Group, you can reference the specific photo from that row and display its corresponding title and description.</p><p>Repeating Groups make displaying all the photos neatly and organised easily without having to design each cell separately.</p><p>If fewer photos are in the list than the number of cells you&apos;ve set in the settings, Bubble will display the available number of cells. If there are more photos, Bubble will keep loading them as the user scrolls.</p><p><strong>1. Using Repeating Groups to store temporary data</strong></p><p>Sometimes you can also use the Repeating Group to store temporary data. Let&apos;s say you&apos;re displaying a list of records in a Repeating Group, but you&apos;d like to filter this output with another set of records.</p><p>We can create a hidden Repeating Group inside a Popup and filter our list.</p><p>Another use case is to fetch a list of records and reference the same list multiple times in our app.</p><p><strong>2. Using Repeating Groups to improve loading time</strong></p><p>A Repeating Group can also affect the load times of your application. The amount of data we want to display dictates the page load speed.</p><p>A large amount of data to be displayed means a slower page load speed.</p><p>So how does a Repeating Group help us? We can limit the data we show at any given time. Using pagination, we can display 10 records instead of 100 records. Or we can implement lazy loading to fetch new records as the user scrolls down, just like Instagram.</p><h2 id="popups">Popups</h2><p>Popups are Groups that appear over all other elements on your page and are typically used to display messages or alerts to your users. But the beauty of Popups is that you can use them for a range of different purposes.</p><p>So, what makes Popups different from regular Groups? For starters, Popups are above other elements on the Z axis. In other words, if your screen were a 3D space, it would float <em>above</em> everything else.</p><p>This means they don&apos;t affect the layout of the rest of your app like Groups would. It makes them perfect for displaying alerts or messages you want to draw your users&apos; attention to without messing up the rest of your app&apos;s design.</p><p>Another great thing about Popups is that they can be used to partially or wholly black out or blur the screen, only showing the content of the popup. It is a great way to focus your user&apos;s attention on specific information without distractions.</p><p>Of course, just like regular Groups, Popups can contain any data you want to be referenced by its child elements.</p><p>With their ability to draw attention to specific tasks or information, and their flexibility in terms of design, Popups are a must-have tool for any Bubble developer looking to take their app to the next level.</p><p><strong>1. Creating hidden popups to store data</strong></p><p>A neat trick many Bubble developers employ is to use a Popup to store frequently accessed data. You can create multiple Groups and Repeating Groups in the Popup and reference them in your application.</p><p>Let&apos;s say you have a Project Management tool. You can create a Repeating Group inside the Popup to store the list of Projects. Wherever you need to display the list of Projects, you can reference this Repeating Group. It will help you avoid creating multiple searches and make it easier to update the search in the future.</p><p><strong>2. Reusable popup elements</strong></p><p>Using a Popup to display alerts or messages is common in web development. You can convert the Popup into a separate, reusable element to make your app more efficient and reusable.</p><p>It allows you to easily place the Popup wherever it&apos;s needed in your Bubble app without having to duplicate the same Popup over and over again. Doing so can save time and reduce the risk of errors in your code.</p><p><strong>3. Popups as a security measure</strong></p><p>If you&apos;re a new Bubble developer, chances are you&apos;re using Popups as a security measure to hide access to your app or data.</p><p>Popups are not designed for security purposes and should not be relied upon to protect your app or data. Anyone with even basic technical skills can easily bypass them.</p><p>Instead, use authentication and authorisation techniques, such as user roles and permissions, to control your app and data access. These measures are much more effective and provide a more secure environment for your users and your app.</p><h2 id="floating-groups">Floating Groups</h2><p>Groups are great, but if you want an element of your app to stay on the screen even if the user scrolls, you need Floating Groups. You can lock Floating Groups to a specific screen part, such as the top, bottom, or side, and remain there no matter what.</p><p>One great example of using Floating Groups is a sidebar on a CRM. By locking the sidebar to the left corner of the screen with a Floating Group, the user can easily use the app and navigate the platform using the sidebar.</p><p>But the beauty of Floating Groups is that you can use them in all sorts of creative ways.</p><p>For example, you can freeze a Floating Group relative to the bottom right of the screen, as seen in the example below. We can use this to create a chat button that hovers near the edge of the screen, always visible to the user no matter where they are on the page.</p><p><strong>1. Creating a menu with Floating Groups</strong></p><p>We can create the sidebar shown above. We&apos;ll add a Floating Group with a defined max-width to the page. It will be our sidebar container. Within the Floating Group, we&apos;ll add the button, icons and text to serve as menu items.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-18-at-8.53.30-PM.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1214" height="690" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-18-at-8.53.30-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-18-at-8.53.30-PM.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-18-at-8.53.30-PM.png 1214w" sizes="(min-width: 720px) 720px"></figure><p>We will position the Floating Group to float vertically relative to <em>Both</em> and horizontally float relative to the<em> Left</em>.</p><p><strong>2. Creating headers with Floating Groups</strong></p><p>We can place a Floating Group similarly to create a sticky header at the top as the user scrolls down.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Gf-header.gif" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="960" height="530"></figure><p>The Floating Group will float vertically relative to <em>the Top</em> and horizontally float relative to the<em> Left</em>. The only difference will be that we&apos;ll not constrain its width like the sidebar above.</p><h2 id="group-focus">Group Focus</h2><p>The Group Focus behaves similarly to the Floating Group but has some differences.</p><p>First, it is positioned relative to another element on the page. Secondly, it will disappear/close when it is not in focus (you click anywhere outside the Group Focus).</p><p>Let&apos;s understand this behaviour. When we say it is positioned relative to another element, it means if the position of the selected element changes, the Group Focus also moves.</p><p>If, on the desktop version, the selected element is in the right corner, the Group Focus will be in the right corner (assuming it is not offset by too much).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-18-at-11.30.38-PM.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1524" height="650" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-18-at-11.30.38-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-18-at-11.30.38-PM.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-18-at-11.30.38-PM.png 1524w" sizes="(min-width: 720px) 720px"><figcaption>Reference element and offset fields</figcaption></figure><p>And if the selected element is in the bottom left corner on the mobile version, the Group Focus will shift its position.</p><p>This is defined in the Group Focus settings, where we define the selected element. Once defined, we can change the <em>offset </em>to control its distance from the element.</p><p>However, one drawback is that Group Focus aren&apos;t responsive. They won&apos;t change their sizing and spacing based on the screen size. It can be a challenge in certain situations.</p><p><strong>1. Creating a collapsible dropdown menu</strong></p><p>Suppose you display the user&apos;s avatar in the top right corner as most platforms, and you want to show a dropdown menu to the users when they click the avatar.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.04.53-AM-min.png" class="kg-image" alt="Complete Guide to Master Groups in Bubble" loading="lazy" width="1216" height="1012" srcset="https://nocodeassistant.com/content/images/size/w600/2023/04/Screenshot-2023-04-19-at-12.04.53-AM-min.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/04/Screenshot-2023-04-19-at-12.04.53-AM-min.png 1000w, https://nocodeassistant.com/content/images/2023/04/Screenshot-2023-04-19-at-12.04.53-AM-min.png 1216w" sizes="(min-width: 720px) 720px"></figure><p>You can&apos;t use collapsible Groups as they&apos;ll push the elements down when visible. Neither can you use a Popup as it&apos;ll be centred relative to the page. Your only option is a Group Focus.</p><p>You can create a new Group Focus and position it relative to the avatar.</p><h2 id="how-does-the-number-of-elements-affect-your-app-performance">How does the number of elements affect your app performance?</h2><p>Remember that adding more elements to your page will slow down your app, including any groups you add. It&apos;s best to avoid adding unnecessary groups to keep the total number of elements low.</p><p>However, don&apos;t be afraid to use groups when necessary. Just don&apos;t go overboard and create groups within groups without good reason. Remember, less is often more.</p><hr><p>I&#x2019;d love to hear how you use Groups in your Bubble app. Let me know in the comments.</p>]]></content:encoded></item><item><title><![CDATA[5 common mistakes to avoid when building with Bubble]]></title><description><![CDATA[Are you building with Bubble.io? Avoid these 5 common mistakes when building your Bubble.io app.]]></description><link>https://nocodeassistant.com/5-common-mistakes-to-avoid-when-building-no-code-apps/</link><guid isPermaLink="false">6400bdf9166d4b675c2de733</guid><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Thu, 02 Mar 2023 15:22:36 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" alt="5 common mistakes to avoid when building with Bubble"><p>One common mistake people make when building no-code apps with Bubble.io is attempting to take on too much at once. It can be tempting to try to build a complex application immediately. Still, it&apos;s important to start with a more simplified version and gradually add complexity as you become more familiar with the platform.</p><p>Another common mistake is not using Bubble&apos;s extensive documentation and community resources, which can help answer questions and guide the process.</p><p>Finally, people sometimes overlook the importance of testing their application thoroughly before launching it. Skipping this step can result in a bad user experience and potentially harm your reputation.</p><h3 id="what-is-the-impact-of-these-mistakes">What is the impact of these mistakes?</h3><p>These mistakes can significantly impact the effectiveness and functionality of the app.</p><p>An unclear user interface and poor navigation can confuse and frustrate users, causing them to abandon the app.</p><p>A poor database design can result in slow app performance and potential data loss.</p><p>Inadequate testing can lead to buggy and unreliable app behaviour.</p><p>A lack of scalability can limit the app&apos;s potential to grow and serve a larger user base.</p><p>Lastly, not correctly considering user needs and feedback can result in an app that fails to meet user expectations and ultimately fails to succeed.</p><h3 id="dont-overcomplicate-your-app">Don&apos;t Overcomplicate Your App</h3><p>Start with a simple, clean design and focus on the essentials. Rather than adding too many features at once, test your app with a few users to gather feedback and ensure it remains user-friendly and easy to navigate.</p><p>This approach is similar to building a house. You start with a strong foundation and then build up from there. By perfecting the basics, you can ensure that your app is stable and easy to use.</p><p>As you add more features, you can continue to test and gather feedback to improve the user experience.</p><h3 id="avoid-using-too-many-plugins">Avoid Using Too Many Plugins</h3><p>While using plugins to add more features to your no-code app may be tempting, avoiding going overboard is important. Too many plugins can slow down your app and make it more challenging to maintain in the long run.</p><p>Instead, focus on using a select few plugins that are essential to the functionality of your app. Consider using built-in Bubble.io features and integrations before adding additional plugins.</p><p>When selecting which plugins to use, please consider how frequently they are updated and how well they are supported. Maintaining plugin updates can help ensure your app remains stable and secure.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/what-are-bubble-templates/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest guide to Bubble templates and why you should care [2023]</div><div class="kg-bookmark-description">When building Bubble apps, you might feel overwhelmed with the work needed. One way to save time and resources is with templates. However, using a template may not be the best choice for everyone.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=e23bc76408" alt="5 common mistakes to avoid when building with Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Design-6--1-.webp" alt="5 common mistakes to avoid when building with Bubble"></div></a></figure><h3 id="test-your-app-thoroughly-before-launching">Test Your App Thoroughly Before Launching</h3><p>One mistake beginner Bubble.io builders make is not thoroughly testing their app before launching. It can lead to issues and bugs that could have been prevented with proper testing.</p><p>To avoid this, take the time to test every feature and functionality of your app.</p><ul><li>Use real-life scenarios and try all possible outcomes.</li><li>Have a group of beta testers to provide feedback on the app.</li><li>Perform load testing to ensure the app can handle high traffic.</li><li>Make sure the app is cross-browser compatible and works well on all devices.</li></ul><p>By testing your app thoroughly before launch, you can avoid the headache of dealing with issues and ensure a better user experience for your audience.</p><p>Remember &#x2014; a well-tested app is a successful one.</p><h3 id="ensure-app-responsiveness-on-different-devices">Ensure App Responsiveness on Different Devices</h3><p>One of the most crucial aspects of app development is ensuring that your app is responsive on different devices.</p><p>It&apos;s easy to forget that users might access your app from various devices with different screen sizes and resolutions.</p><p>Test your app on different devices and resolutions to ensure it looks and works best for all users. You don&apos;t want to lose potential users because they can&apos;t use or interact with your app properly.</p><h3 id="regularly-monitor-and-update-your-app">Regularly Monitor and Update Your App</h3><p>Another mistake Bubble.io builders make is launching their app and forgetting about it. You need to monitor your app regularly and update it if necessary.</p><p>Regular monitoring allows you to catch any issues with your app before they become significant problems. You can also gather user feedback to improve your app&apos;s functionality and design.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="5 common mistakes to avoid when building with Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="5 common mistakes to avoid when building with Bubble"></div></a></figure><p>Updating your app regularly also keeps it up to date with any updates Bubble will have made to its platform. It will ensure that your app remains relevant and valuable to your target audience and can attract new users.</p><h3 id="can-you-create-the-perfect-bubble-app">Can you create the perfect Bubble app?</h3><p>Creating the perfect Bubble app is a challenging task, but it&apos;s not impossible. It requires combining technical knowledge, creativity, and a good understanding of your target audience.</p><p>Every app is flawed. Be open to feedback and make improvements based on user suggestions to create a better product over time.</p><ul><li>Start small and take incremental steps in your development to detect and fix issues before they become significant problems.</li><li>Double-check and carefully consider your choices when using plugins or third-party services, as they can sometimes interfere with your app&apos;s functionality.</li><li>Keep your data well-organized and easy to read by labelling everything in a way that identifies its purpose and contents.</li><li>Take advantage of the Bubble.io community by asking for help with issues or recommendations on avoiding common errors.</li><li>Test your app rigorously and often to ensure everything functions correctly and prevent bugs from creeping in.</li></ul><p>By keeping these tips in mind and being diligent with your app-building process, you can avoid common no-code development errors and create a successful and functional app with Bubble.io.</p><p>Keep learning, iterating, and experimenting, and soon you&apos;ll have a thriving app you can be proud of.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=e23bc76408" alt="5 common mistakes to avoid when building with Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="5 common mistakes to avoid when building with Bubble"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Working with Boolean fields in Bubble]]></title><description><![CDATA[Learn how to effectively use Boolean fields in Bubble to optimize your database management. Improve your app's efficiency and user experience with the simple but versatile Boolean field.]]></description><link>https://nocodeassistant.com/working-with-boolean-fields-in-bubble/</link><guid isPermaLink="false">63e54d3d69a125b51489c345</guid><category><![CDATA[Database]]></category><category><![CDATA[Workflows]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Fri, 17 Feb 2023 19:12:11 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2023/02/Boolean-Fields.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2023/02/Boolean-Fields.png" alt="Working with Boolean fields in Bubble"><p>In Bubble, the Boolean or yes/no field is a field that has one of two possible values (usually denoted <em>true/false </em>or<em> yes/no</em>).</p><p>You can use the Boolean in various cases.</p><ol><li>Storing the user_active status as a boolean field and marking it as<em> yes</em> for active users and <em>no</em> for inactive users.</li><li>Storing the onboarding status of a user and marking it as<em> yes</em> for users who have completed onboarding and <em>no</em> for users who have yet to complete the onboarding.</li></ol><p>You can imagine many more use cases.</p><h3 id="creating-a-boolean-field-in-bubble">Creating a Boolean field in Bubble</h3><p>To create a Boolean field, select the yes / no field type. This will create a new Boolean field. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2023/02/Creating-a-boolean-field.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="762"><figcaption>Creating a Boolean field</figcaption></figure><p>You can choose to set a default value if you&apos;d like. </p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The system assigns the default value if you don&apos;t change the value when creating a new record.</div></div><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-8.31.43-PM.png" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="1516" height="770" srcset="https://nocodeassistant.com/content/images/size/w600/2023/02/Screenshot-2023-02-17-at-8.31.43-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/02/Screenshot-2023-02-17-at-8.31.43-PM.png 1000w, https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-8.31.43-PM.png 1516w" sizes="(min-width: 720px) 720px"><figcaption>Default value</figcaption></figure><h3 id="storing-the-boolean-value-in-bubble">Storing the Boolean value in Bubble</h3><p>You can update the Boolean field in various ways. You can</p><ol><li>Use a checkbox and store the value as yes if the checkbox is ticked and vice versa.</li><li>Use a toggle input and store the value as yes if the Toggle is enabled and vice versa.</li></ol><p>Both methods are similar, so for this tutorial, let&apos;s create the workflows with a toggle input.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-11.19.42-PM.png" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="1276" height="782" srcset="https://nocodeassistant.com/content/images/size/w600/2023/02/Screenshot-2023-02-17-at-11.19.42-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/02/Screenshot-2023-02-17-at-11.19.42-PM.png 1000w, https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-11.19.42-PM.png 1276w" sizes="(min-width: 720px) 720px"></figure><p>I&apos;ve placed a toggle button, and I want to store the value in the database. As we&apos;ll be creating a new record whenever we press the &apos;save&apos; button, the workflow will create a new record.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Creating-a-new-record-.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="762"></figure><p>Storing a &apos;<em>Toggle input&apos;s value is checked</em>&apos; is the way to store its value, even though it may initially seem unclear.</p><p>Bubble will save the current value of the Toggle value regardless of whether the Toggle is checked or unchecked. It works weirdly, but that is how it operates.</p><h3 id="updating-the-boolean-value-in-bubble">Updating the Boolean value in Bubble</h3><p>The dynamic expression will remain the same if we want to update an existing Boolean value.</p><ol><li>Find the record we want to update.</li><li>Pass the new value we want to over-write.</li></ol><p>For the sake of this tutorial, I have assigned a type of content to the Group Master and have passed a random record to that group. I will use the record in this group and update its &apos;value&apos; field.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-11.26.05-PM.png" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="1392" height="910" srcset="https://nocodeassistant.com/content/images/size/w600/2023/02/Screenshot-2023-02-17-at-11.26.05-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/02/Screenshot-2023-02-17-at-11.26.05-PM.png 1000w, https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-17-at-11.26.05-PM.png 1392w" sizes="(min-width: 720px) 720px"><figcaption>An arbitrary value. You can have different methods to find the record you want to update.</figcaption></figure><p>We&apos;ll use a new button to update the value. The same expression, &apos;<em>Toggle input&apos;s value is checked</em>&apos;, will be used to overwrite the existing value.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Updating-the-boolean-field.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="665"></figure><h3 id="auto-binding-the-boolean-value-in-bubble">Auto-binding the Boolean value in Bubble</h3><p>Auto-binding is a feature that lets you modify and update a field in your Bubble database without using a workflow. It allows us to reduce the number of workflows in our app and improve the UX for our users.</p><p>To auto-bind the boolean field, there are two steps.</p><ol><li>Create privacy rules to enable auto-binding</li><li>Define the field which auto-binds to the toggle value.</li></ol><p>Read the other tutorial to understand auto-binding and create appropriate privacy rules.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/auto-binding-and-its-use/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Simple guide to learn auto-binding in Bubble</div><div class="kg-bookmark-description">Auto binding is a method of updating the Bubble database without creating or triggering a workflow.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=e40ebd4a50" alt="Working with Boolean fields in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/05/Autobinding-in-Bubble.io-Nocodeassistant.png" alt="Working with Boolean fields in Bubble"></div></a></figure><p>We&apos;ll check the &apos;Enable auto-binding&apos; checkbox. This will present us with the option to auto-bind to the Toggle.</p><p>As our boolean field is called &apos;value&apos;, we&apos;ll select this field from the dropdown.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Choosing-auto-binding-field.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="551"></figure><p>Once we do this, Bubble will prompt us to create privacy rules. </p><p>To get around the requirement, we&apos;ll create a basic privacy rule. </p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Always set correct privacy rules (unlike the tutorial). Don&apos;t ignore the benefits of good privacy rules for data security.</div></div><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Privacy-rule.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="551"></figure><p>Once the rule is created, we&apos;re all set.</p><p>Bubble will automatically fetch the value of this field of the chosen record and set the Toggle as checked if yes and unchecked if no. </p><p>And whatever changes we make to the Toggle&apos;s value will be automatically updated in the database without any workflows.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Auto-binding-demo.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="551"></figure><h3 id="formatting-the-output-of-a-boolean-field">Formatting the output of a boolean field</h3><p>We can format the output of a boolean field in different ways. We can display text based on the value.</p><p>For example, if the value of a field stores the verification status as no, we can display the output as &quot;Verification pending&quot; or if it is yes, &quot;Verification completed&quot;.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-18-at-12.31.59-AM.png" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="1412" height="700" srcset="https://nocodeassistant.com/content/images/size/w600/2023/02/Screenshot-2023-02-18-at-12.31.59-AM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2023/02/Screenshot-2023-02-18-at-12.31.59-AM.png 1000w, https://nocodeassistant.com/content/images/2023/02/Screenshot-2023-02-18-at-12.31.59-AM.png 1412w" sizes="(min-width: 720px) 720px"></figure><p>We can use the :formatted as text operator to achieve the result.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The value will still be stored as yes/no in the database. We&apos;re only formatting the value for UI purposes.</div></div><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2023/02/Output-formatting.gif" class="kg-image" alt="Working with Boolean fields in Bubble" loading="lazy" width="960" height="365"></figure><hr><p>Preview - <a href="https://nocodeassistant-tutorials.bubbleapps.io/version-test/boolean">https://nocodeassistant-tutorials.bubbleapps.io/version-test/boolean</a><br>Editor - <a href="https://bubble.io/page?type=page&amp;name=boolean&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1">https://bubble.io/page?type=page&amp;name=boolean&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1</a></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Working with Boolean fields in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="Working with Boolean fields in Bubble"></div></a></figure><hr><p><a href="https://tidycal.com/himanshu-s/intro">Contact us</a> today to explore how Bubble can help your business. We would love to chat with you about how we could work together!</p>]]></content:encoded></item><item><title><![CDATA[Honest Bubble.io Review - the most user-friendly and powerful app builder?]]></title><description><![CDATA[Bubble is an amazing platform to build your business. It’s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.]]></description><link>https://nocodeassistant.com/complete-bubble-review/</link><guid isPermaLink="false">626c322550e2c515430edead</guid><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Wed, 23 Nov 2022 13:30:11 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"><p>A no-code platform is a platform that enables non-technical users to build applications. You do this by dragging and dropping elements and components. </p><p>And you don&apos;t need a coding background to build applications using no-code.</p><p>It&apos;s hard to believe this is real. Enterprise consumers without technical backgrounds were already creating full-fledged apps! And now it was the turn of the non-enterprise customers.</p><h3 id="does-no-code-work">Does no-code work?</h3><p>Yes!</p><p>There is some debate over whether it is scalable. People think no-code is only helpful for prototyping and validating your idea. And that if you want to scale, you need a custom solution.</p><p>No-code is perfect for quickly building a prototype, but you can also use no-code to launch a full-fledged product. At <a href="https://nocodeassistant.com/?source=blog-bubble-review">NocodeAssistant</a>, we&apos;ve made products ranging from marketplaces, CRMs, internal tools, job boards and e-commerce platforms. All on Bubble.</p><p>Simply because no-code is suitable for prototyping doesn&apos;t mean you cannot use no-code at scale. Over 80,000 people use our client applications. Everything is running smoothly.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text">Like any engineering solution, a poorly structured product will pose challenges. No-code will not be able to help if the application does not follow standard database and UI/UX practices.</div></div><h3 id="what-is-bubbleio">What is Bubble.io?</h3><p>Bubble is a no-code development platform that allows you to program, design, host and scale web applications without writing a line of code. Joshua Haas and Emmanuel Straschnov founded Bubble in 2012. </p><p>Its customers include bootstrappers, funded startups and Fortune 500 companies.</p><p>A traditionally coded solution requires experience in front-end development, back-end development, database architecture and deployment. Bubble challenges this approach.</p><p>Bubble removes the need for coding background and gives an intuitive editor to build a web application.</p><h3 id="is-bubbleio-suitable-for-a-startup-mvp">Is Bubble.io suitable for a startup MVP?</h3><p>MVPs are usually very stripped-down products with only the essential features. The product is improved with more features and functions after being validated.</p><p><a href="https://en.wikipedia.org/wiki/Eric_Ries">Eric Ries</a> describes an MVP as</p><!--kg-card-begin: markdown--><blockquote>
<p>the minimum viable product is that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort</p>
</blockquote>
<!--kg-card-end: markdown--><p>Even though many founders understand the value of MVPs, they still need help to bring themselves to launch something so temporarily basic.</p><p>Bubble is the perfect mix of speed and flexibility. While custom-coded solutions offer more flexibility in some edge cases, they are slower to implement. It is better to build a product quickly and validate it than create an over-engineered product.</p><p>This doesn&apos;t mean you should move away from Bubble once you have a validated product. Far from it.</p><p>Bubble will let you create any application, connect it with other tools using APIs, schedule workflows and allow you to scale your database to any number of users. You don&apos;t have to worry about a server, framework or security risks.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/5-common-mistakes-to-avoid-when-building-no-code-apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 common mistakes to avoid when building with Bubble</div><div class="kg-bookmark-description">Are you building with Bubble.io? Avoid these 5 common mistakes when building your Bubble.io app.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"></div></a></figure><h3 id="what-can-you-build-with-bubble">What can you build with Bubble?</h3><p>Bubble allows you to create your database, design your UI and use workflows to create the business logic. There is no limitation on the database architecture, UI or workflows. You can develop pixel-perfect applications using the latest responsive engine.</p><p>Here are some of the applications that you can build on Bubble.</p><ul><li>Internal dashboards</li><li>Client portals</li><li>Marketplace</li><li>Job boards</li><li>Project management tools</li><li>E-commerce</li><li>Productivity tools</li><li>CRMs</li></ul><p>And this is a partial list. Barring a few exceptions (games, native mobile apps etc), you can build anything on Bubble.</p><p>Some of the well-known startups built on Bubble are:</p><ol><li>Codemap</li><li>Dividend Finance</li><li>Comet</li><li>Goodgigs</li><li>Incomee</li><li>Moone</li></ol><h3 id="how-do-i-know-bubble-is-there-for-the-long-haul">How do I know Bubble is there for the long haul?</h3><p>Bubble has been building its product and its team since 2012. That is a long time for any technology and company to cement its position in the industry. And the exploding user adoption and funding is a testament to that.</p><p>They have started creating detailed tutorials, conducting boot camps, making significant updates to their product, and adapting it to market changes.</p><p>Bubble recently updated the underlying mechanism of rendering UI using the flexbox layout model. They are working on optimizations in the backend and making the product fast and reliable. Bubble is also working towards SOC 2 compliance to appeal to enterprise users.</p><p>Finally, Bubble has <a href="https://manual.bubble.io/new-start-here/application-and-data-ownership#exporting-your-application-and-data">promised</a> that if they shut down, they will open-source the source code. So your business can continue running without any interruptions.</p><!--kg-card-begin: markdown--><blockquote>
<p>Finally, we want to make sure you feel secure about building on the Bubble platform, so, although we plan to be around for a very long time, here&apos;s our guarantee: if for some reason we ever have to close down shop, we will release the Bubble source code under an open-source license so that you can set up your own Bubble server and keep your app running.</p>
</blockquote>
<!--kg-card-end: markdown--><h3 id="what-are-the-limitations-of-bubble">What are the limitations of Bubble?</h3><p>While Bubble is arguably the best no-code builder, there are a few limitations.</p><ol><li>You cannot build native mobile apps.</li><li>You cannot create games.</li><li>You cannot run Python or other scripts.</li></ol><p>Yet, there are workarounds for most of the limitations.</p><p>For building native mobile apps, you can use Flutterflow and connect it using API to Bubble. Bubble will serve as the backend for the mobile app. </p><p>You can use a third-party wrapper to convert it into a mobile app.</p><p>For running a Python script, you can use AWS to run the Python script and connect it with Bubble with an API.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"></div></a></figure><h3 id="can-bubble-scale">Can Bubble scale?</h3><p>Yes. Bubble can scale. However, should scalability be your top priority when testing if there is a demand for your product?</p><p>Our clients often ask this question. And typically, coders are sceptical. And they have every right to be suspicious. But many examples of Bubble apps have scaled to thousands of users and raised funding.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/11/nocodeassistant-build-mvp-bubble-review.jpeg" class="kg-image" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?" loading="lazy" width="1280" height="853" srcset="https://nocodeassistant.com/content/images/size/w600/2022/11/nocodeassistant-build-mvp-bubble-review.jpeg 600w, https://nocodeassistant.com/content/images/size/w1000/2022/11/nocodeassistant-build-mvp-bubble-review.jpeg 1000w, https://nocodeassistant.com/content/images/2022/11/nocodeassistant-build-mvp-bubble-review.jpeg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Big ideas never start out big</figcaption></figure><p><a href="https://codemap.io">Codemap</a>, a marketplace for finding and hiring no-code talent, has thousands of users and hundreds of jobs posted monthly. Of course, this is not comparable to Fiverr or Upwork, but Codemap has already validated its product and market demand. The purpose of an MVP is achieved.</p><p>There is no limit to the number of users your Bubble application can support. The only limit is capacity. And Bubble allows you to upgrade your capacity based on your requirements. You can scale from 10 users a day to 500,000 users a day.</p><p>Is there any example of a Bubble application that can handle 500,000 users a day? Bubble&apos;s landing page is built on Bubble itself. That&apos;s right. They use their platform to serve half a million users.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"></div></a></figure><h3 id="how-much-does-bubble-cost">How Much Does Bubble Cost?</h3><p>Bubble is free to sign up. You can build your app for free and subscribe to a paid plan starting from $29/month when you&apos;re ready to launch.</p><p>A subscription is required to put your Bubble application on a custom domain. For most people, the Personal is good enough to begin.</p><h3 id="is-bubble-open-source">Is Bubble open source?</h3><p>Bubble is a proprietary platform. Bubble is not open-source. </p><p>However, Bubble has <a href="https://manual.bubble.io/new-start-here/application-and-data-ownership#exporting-your-application-and-data">promised</a> that if they shut down, they will open-source the source code. So your business can continue running without any interruptions.</p><h3 id="does-bubble-have-templates-and-plugins">Does Bubble have templates and plugins?</h3><p>Bubble has a marketplace where you can purchase third-party templates and plugins. Some well-known Bubble developers build templates and products that are mainly stable to use for a commercial product.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/what-are-bubble-templates/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest guide to Bubble templates and why you should care [2022]</div><div class="kg-bookmark-description">When building Bubble apps, you might feel overwhelmed with the work needed. One way to save time and resources is with templates. However, using a template may not be the best choice for everyone.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=2ff70f9c6a" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Design-6--1-.webp" alt="Honest Bubble.io Review - the most user-friendly and powerful app builder?"></div></a></figure><h3 id="can-you-export-the-code-from-bubble">Can you export the code from Bubble?</h3><p>You can export your data but cannot export your app&apos;s source code. Bubble apps will only run on the Bubble platform.</p><p>This is similar to how you can export your Adobe Photoshop files and designs but cannot export the source code of Adobe Photoshop. And Adobe has no ownership of your design files.</p><p>Similarly, you own your Bubble app data and can export it anytime.</p><h3 id="is-bubble-hipaa-compliant">Is Bubble HIPAA compliant?</h3><p>Bubble is <strong>not</strong> HIPAA compliant. </p><p>However, you can use Xano for the database and Bubble as the front end. This will ensure that your Bubble app stays HIPAA compliant.</p><hr><h3 id="is-bubble-reliable">Is Bubble Reliable?</h3><p>While Bubble may have some limitations, it is arguably the best no-code development platform.</p><p>You might be wondering, what if the company vanishes tomorrow? Is it safe to build your business on top of another platform? That&apos;s a valid concern, but you don&apos;t need to worry.</p><p>Their product is stable and has been in existence since 2012. In that time, they gained the trust of over 1 million users. This large user base will attract more users, further accelerating the adoption and investment in Bubble.</p><p><a href="https://tidycal.com/himanshu-s/intro">Contact us</a> today to explore how Bubble can help your business. We would love to chat with you about how we could work together!</p><hr><h3></h3>]]></content:encoded></item><item><title><![CDATA[Easy guide to learn Recursive Workflows in 10 minutes]]></title><description><![CDATA[A recursive workflow is a workflow that can schedule itself to run in the future. They help you work on a large list, one item at a time.]]></description><link>https://nocodeassistant.com/recursive-workflows-in-bubble/</link><guid isPermaLink="false">6245f5d6f470d064c9d504a4</guid><category><![CDATA[Workflows]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Mon, 11 Jul 2022 15:52:30 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/07/Easy-guide-to-learn-recursive-workflows-in-10-minutes.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/07/Easy-guide-to-learn-recursive-workflows-in-10-minutes.png" alt="Easy guide to learn Recursive Workflows in 10 minutes"><p>A recursive workflow is a workflow that can schedule itself to run in the future. You can think of it as a workflow that can and will run in a loop until terminated.</p><p>A recursive workflow is a &quot;Do X While Y&quot; loop, where both the parameters can be dynamic.</p><p>Recursive workflows need to be triggered from the front end (a page), but they run in the back end (backend workflow). They will continue to run until the exit condition is not met. They help you work on a large list, one item at a time.</p><h3 id="example-use-cases">Example use cases</h3><ol><li>Sending an email to all app users that are members of a group.</li><li>Marking 200 user accounts as inactive.</li><li>Create new database records</li></ol><p>In any scenario where you want to make changes, create new records or trigger an action in bulk, you can use recursive workflow.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Easy guide to learn Recursive Workflows in 10 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="Easy guide to learn Recursive Workflows in 10 minutes"></div></a></figure><h3 id="benefits-of-recursive-workflows">Benefits of recursive workflows</h3><p>Why would you use recursive workflows when you have the &quot;Make changes to a list&quot; or &quot;Copy a list&quot; action?</p><p>The reason is that your Bubble app may time out if the list you want to work with is large. Some records may be skipped, or the entire workflow may be terminated. If you wish to continue from the point of failure, you won&apos;t be able to find the workflow&apos;s point of failure.</p><p>Another advantage of recursive workflows is that you can control the exit condition. This lets you create complex workflows and have complete control.</p><p>And finally, you can also start another recursive workflow from the same workflow.</p><h3 id="enabling-recursive-workflows">Enabling recursive workflows</h3><p>Recursive workflows are available for all paid plans on Bubble. However, they need to be enabled.</p><p>Go to Settings &gt; API &gt; Enable Workflow API and backend workflows to enable them.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/enableing.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="524"><figcaption>Enabling backend workflows</figcaption></figure><h3 id="how-to-set-up-a-recursive-workflow">How to set up a recursive workflow</h3><p>To better understand recursive workflows, let&apos;s examine two examples.</p><p>In the first example, we&apos;ll send emails to all our app users. While in the second example, we will accept a list of names using an input field and create records in the &apos;Ships&apos; using those names. Each ship will have a name from the initial list of names.</p><p><strong>Sending an email to all our app users</strong></p><p>We&apos;ll start by creating a new API workflow. We need to give a name to this workflow. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Create-backend-workflow-in-Bubble.io.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="535"><figcaption>Creating a new recursive workflow</figcaption></figure><p> After naming our workflow, we can set its parameters.</p><p>The list that we&apos;ll be working on will be a list of Users. So the first parameter that we need to create for this workflow is Users. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Set-parameters.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="535"></figure><p>We also need an &apos;iteration&apos; parameter of the type number. This parameter helps us control when the recursive workflow ends. It will store how many iterations of this workflow have been run.</p><p>Once the parameters have been defined, we can begin creating the actions.</p><p>We need to add the &apos;Send email&apos; action to send the email. Now we&apos;ll work on the list of Users one by one.</p><p>You would typically put one email address. But we need to email a list of Users.</p><p>We&apos;ll pick a User from the list, email them, then pick the next User and repeat the process.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/pick-item-in-recursive-workflow-in-bubble.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1608" height="1052" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/pick-item-in-recursive-workflow-in-bubble.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/pick-item-in-recursive-workflow-in-bubble.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/pick-item-in-recursive-workflow-in-bubble.png 1600w, https://nocodeassistant.com/content/images/2022/07/pick-item-in-recursive-workflow-in-bubble.png 1608w" sizes="(min-width: 720px) 720px"></figure><p>From the list of users, we&apos;ll pick the <u>User number iteration</u>.</p><p>In the first iteration, User number 1 will be picked. In the next loop, the iteration number will be increased to 2, so User number 2 will be selected.</p><p>The next step is to schedule the same workflow for a future time. We will schedule the same workflow to run 5 seconds in future. Give a small gap between each iteration. </p><p>We will pass the entire list of Users to the workflow and increase the &apos;iteration&apos; parameter by 1. </p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Remember to increase the value of the &apos;iteration&apos; parameter by 1.</div></div><p>You now have a recursive workflow that will schedule itself! </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Creating-recursive-workflow.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="535"></figure><p>You can trigger this workflow from anywhere in your app and send it a list of Users. Ensure that the &apos;iteration&apos; value is set as 1 when you start it.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The &apos;iteration&apos; value should always be 1 when you start the recursive workflow.</div></div><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/trigger-recursive-workflow-in-Bubble.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1764" height="902" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/trigger-recursive-workflow-in-Bubble.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/trigger-recursive-workflow-in-Bubble.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/trigger-recursive-workflow-in-Bubble.png 1600w, https://nocodeassistant.com/content/images/2022/07/trigger-recursive-workflow-in-Bubble.png 1764w" sizes="(min-width: 720px) 720px"><figcaption>Triggering the recursive workflow</figcaption></figure><p><strong>Creating new records using a recursive workflow</strong></p><p>We have an input field where a user can type a name and add the name to a custom state. The custom state stores a list of names. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/custom-state-in-bubble.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1742" height="736" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/custom-state-in-bubble.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/custom-state-in-bubble.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/custom-state-in-bubble.png 1600w, https://nocodeassistant.com/content/images/2022/07/custom-state-in-bubble.png 1742w" sizes="(min-width: 720px) 720px"></figure><p>We will pass the custom state value to a recursive workflow and create a new record in the &apos;Ships&apos; data type.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/operations-on-a-list/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Complete guide to Operations on List in Bubble.io</div><div class="kg-bookmark-description">In this short Bubble tutorial, we&#x2019;ll teach you how to work with lists. The two aspects of them: creating and manipulating.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=33c8295f99" alt="Easy guide to learn Recursive Workflows in 10 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/05/Complete-guide-to-Operations-on-List-in-Bubble.png" alt="Easy guide to learn Recursive Workflows in 10 minutes"></div></a></figure><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/data-type-in-bubble.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1472" height="794" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/data-type-in-bubble.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/data-type-in-bubble.png 1000w, https://nocodeassistant.com/content/images/2022/07/data-type-in-bubble.png 1472w" sizes="(min-width: 720px) 720px"></figure><p>We&apos;ll again begin by creating a new API workflow and defining the parameters. The parameters will be a list of text and &apos;iteration&apos;. The role of the &apos;iteration&apos; parameter is the same as explained above.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Create-recursive-workflow.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="578"></figure><p>We&apos;ll pick a name from the list, create a new record, then pick the next name and repeat the process. </p><p>From the list of names, we&apos;ll pick the <u>name number iteration</u>.</p><p>In the first iteration, name number 1 will be picked. In the next loop, the iteration number will be increased to 2, so the name number 2 will be selected.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Creating-a-record-in-Bubble-using-recursive-workflow.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="578"><figcaption>Creating a new record&#xA0;</figcaption></figure><p>The next step is to schedule the same workflow for a future time. We will schedule the same workflow to run 2 seconds in future. Give a small gap between each iteration. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Scheduling-recursive-workflow.gif" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="960" height="578"></figure><p>We will pass the entire list of names to the workflow and increase the &apos;iteration&apos; parameter by 1. </p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Remember to increase the value of the &apos;iteration&apos; parameter by 1.</div></div><p>Your recursive workflow can be triggered from anywhere in the app.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/schedule-recursive-workflow-in-Bubble.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1652" height="910" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/schedule-recursive-workflow-in-Bubble.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/schedule-recursive-workflow-in-Bubble.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/schedule-recursive-workflow-in-Bubble.png 1600w, https://nocodeassistant.com/content/images/2022/07/schedule-recursive-workflow-in-Bubble.png 1652w" sizes="(min-width: 720px) 720px"></figure><h3 id="exit-conditions-in-recursive-workflows">Exit conditions in recursive workflows</h3><p>The recursive workflows we just set up have one big flaw. They will run indefinitely as they lack an exit condition!</p><p>An exit condition will terminate a recursive workflow when the condition is met.</p><p>The &apos;iteration&apos; parameter will help us create the exit condition. </p><p>In the first example, we want to stop the recursive workflow when all the users have been emailed. The exit condition can be that we will not schedule it further when the iteration is equal to the no of users.</p><p>We will add an Only when condition to the workflow so that it will be scheduled only if the iteration is less than the count of users.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Exit-condition-in-recursive-workflow-2.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1934" height="920" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Exit-condition-in-recursive-workflow-2.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Exit-condition-in-recursive-workflow-2.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Exit-condition-in-recursive-workflow-2.png 1600w, https://nocodeassistant.com/content/images/2022/07/Exit-condition-in-recursive-workflow-2.png 1934w" sizes="(min-width: 720px) 720px"><figcaption>Exit condition</figcaption></figure><p>In the second example, we want to stop the recursive workflow when all the names have been used to create a new record. The exit condition can be that we will not schedule it further when the iteration is equal to the list size.</p><p>We will add an Only when condition to the workflow so that it will be scheduled only if the iteration is less than the count of names.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Exit-condition-in-recursive-workflow-copy.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="1770" height="884" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Exit-condition-in-recursive-workflow-copy.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Exit-condition-in-recursive-workflow-copy.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Exit-condition-in-recursive-workflow-copy.png 1600w, https://nocodeassistant.com/content/images/2022/07/Exit-condition-in-recursive-workflow-copy.png 1770w" sizes="(min-width: 720px) 720px"><figcaption>Exit condition</figcaption></figure><h3 id="cancelling-a-recursive-workflow">Cancelling a recursive workflow</h3><p>You can cancel an upcoming recursive workflow if there is enough time.</p><p>To manually cancel a recursive workflow, go to your Bubble app&apos;s Scheduler section under the Logs tab. Click Show.</p><p>All the upcoming workflows will be listed. Next to each workflow is a &apos;Cancel&apos; button. You can cancel all the workflows that you want. You can also click &apos;Cancel all&apos; to cancel <strong>all</strong> the upcoming workflows.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-11-at-8.59.51-PM-1.png" class="kg-image" alt="Easy guide to learn Recursive Workflows in 10 minutes" loading="lazy" width="2000" height="1048" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Screenshot-2022-07-11-at-8.59.51-PM-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Screenshot-2022-07-11-at-8.59.51-PM-1.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Screenshot-2022-07-11-at-8.59.51-PM-1.png 1600w, https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-11-at-8.59.51-PM-1.png 2138w" sizes="(min-width: 720px) 720px"><figcaption>Cancelling a recursive workflow</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/bubble-backend-workflows/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Backend workflows for Beginners | Bubble.io</div><div class="kg-bookmark-description">Backend workflows are server-side workflows in Bubble.io. Use them to schedule actions in the future or work with a big list.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=33c8295f99" alt="Easy guide to learn Recursive Workflows in 10 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Backend-workflows-in-Bubble-Nocode-Tutorial-NocodeAssistant.png" alt="Easy guide to learn Recursive Workflows in 10 minutes"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[List or Searches - Which is faster in fetching data in Bubble?]]></title><description><![CDATA[Is it quicker to fetch data from lists or searches? It depends on a few factors, and no one approach will work in all scenarios.]]></description><link>https://nocodeassistant.com/list-or-searches-which-is-faster-in-bubble/</link><guid isPermaLink="false">626842abe8daf0427390b19c</guid><category><![CDATA[Repeating Groups]]></category><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Sun, 10 Jul 2022 10:15:02 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.png" alt="List or Searches - Which is faster in fetching data in Bubble?"><p>If you have a list of 50-100 items, you can use repeating groups to display them in Bubble without problems. But once you have several hundred entries on the screen, you may start experiencing slowdowns.</p><p>Google spreadsheets can handle vast amounts of data, but Bubble would struggle. Bubble can&apos;t display data as well as a Google spreadsheet.</p><p>That brings us to another question related to app performance - which is faster fetching data in Bubble? Is it quicker to fetch data from lists or searches?</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/5-common-mistakes-to-avoid-when-building-no-code-apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 common mistakes to avoid when building with Bubble</div><div class="kg-bookmark-description">Are you building with Bubble.io? Avoid these 5 common mistakes when building your Bubble.io app.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="List or Searches - Which is faster in fetching data in Bubble?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" alt="List or Searches - Which is faster in fetching data in Bubble?"></div></a></figure><h3 id="what-is-the-difference-between-lists-and-searches">What is the difference between Lists and Searches?</h3><p>Lists and Searches have pros and cons, but both are useful in different instances. The use cases depend on a few factors; no one approach will work in all scenarios.</p><p>A search is performed on a data type with constraints to filter out specific results. This approach ensures that we only fetch and download the specific records.</p><p>Lists, however, are saved as a field in a data type. They don&apos;t have their own separate data type. An example of a list is a list of texts stored in a data type. This list can be used to store notes, updates etc., and it will be a single field inside a single record.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.jpeg" class="kg-image" alt="List or Searches - Which is faster in fetching data in Bubble?" loading="lazy" width="1024" height="768" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/List-is-faster-or-search-in-Bubble.jpeg 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/List-is-faster-or-search-in-Bubble.jpeg 1000w, https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.jpeg 1024w" sizes="(min-width: 720px) 720px"></figure><h3 id="filtering-data-using-lists-and-searches">Filtering data using Lists and Searches</h3><p>While most database searches are performed server-side, lists depend on client-side filtering. That means the user&apos;s hardware dictates the performance of list filtering.</p><p>This can be a severe handicap for businesses that need to cater to people with low-end devices or poor internet connectivity.</p><h3 id="complex-searches-using-lists-and-searches">Complex searches using Lists and Searches</h3><p>Searching for records in the database with specific criteria like Team name or Status=true is fast.</p><p>It is not always easy to get more advanced searches without merging and intersecting multiple searches into one list. This can cause the server to do various searches and move processing to the client-side, slowing down searches with many records.</p><p>As lists also use client-side filtering, this can negate the speed and scalability advantage that Searches have over Lists.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=79098d7874" alt="List or Searches - Which is faster in fetching data in Bubble?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="List or Searches - Which is faster in fetching data in Bubble?"></div></a></figure><h3 id="how-to-decide-between-lists-and-searches">How to decide between Lists and Searches?</h3><p>There is a general rule of thumb which we can use.</p><p>A list will be faster if you know that the List will not have more than 20-30 items. Let&apos;s say you want to store a list of User Roles that an employee is granted. There is a definitive upper ceiling in this case, and the list will be small. It makes sense to store it as a list rather than storing it as a different record in a data type.</p><p>If, on the other hand, you want to store the products that a user has liked, a list will be slower. As there is no definite upper ceiling and the user can potentially like hundreds or thousands of items, storing it in a different data type makes sense.</p><p>You can create a new data type, Liked Products, and a link to the User and Product. And when you need to display, you can Search the Liked Products table.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If the no of items is short, Lists are faster. If the no of items is large, Searches are faster.</div></div><p>A list is helpful when the number of items in the list won&apos;t be large. According to Bubble&apos;s co-founder, Josh</p><!--kg-card-begin: markdown--><blockquote>
<p>If your list is short &#x2013; you know you&apos;ll never have more than 20 - 30 invoices per company, for instance &#x2013; then yes, using a list will load a little faster. However, ... the list will start slowing things down once the total number of invoices goes beyond the number you actually want to display at any one time.</p>
</blockquote>
<!--kg-card-end: markdown--><p>Lists are great for small data sets, but please don&apos;t use them when you don&apos;t need to. To create a feature similar to wishlists, likes, retweets, etc., where the number of items can be thousands, use a different data type to store the information.</p><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/operations-on-a-list/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Complete guide to Operations on List in Bubble.io</div><div class="kg-bookmark-description">In this short Bubble tutorial, we&#x2019;ll teach you how to work with lists. The two aspects of them: creating and manipulating.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=79098d7874" alt="List or Searches - Which is faster in fetching data in Bubble?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/05/Complete-guide-to-Operations-on-List-in-Bubble.png" alt="List or Searches - Which is faster in fetching data in Bubble?"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[How to connect Airtable with Bubble.io]]></title><description><![CDATA[This tutorial covers the steps to connect Airtable and perform operations on your Airtable data with Bubble.]]></description><link>https://nocodeassistant.com/connect-airtable-with-bubble-io/</link><guid isPermaLink="false">62c492f24ab57dd4d6a99ce7</guid><category><![CDATA[Database]]></category><category><![CDATA[Integration]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Thu, 07 Jul 2022 20:41:54 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/07/Connecting-Airtable-with-Bubble.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/07/Connecting-Airtable-with-Bubble.png" alt="How to connect Airtable with Bubble.io"><p>Airtable is a spreadsheet that has database capabilities. In other words, it combines a spreadsheet and a database. Airtable is unique from traditional databases and spreadsheets because of its pre-made templates, integrations, forms and automation.</p><p>This tutorial covers the steps to connect Airtable and perform operations on your Airtable data with Bubble.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Airtable-base-in-Bubble-nocodeassistant-tutorials.png" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="2000" height="831" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Airtable-base-in-Bubble-nocodeassistant-tutorials.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Airtable-base-in-Bubble-nocodeassistant-tutorials.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Airtable-base-in-Bubble-nocodeassistant-tutorials.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/07/Airtable-base-in-Bubble-nocodeassistant-tutorials.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>An Airtable base</figcaption></figure><h3 id="getting-the-airtable-api-key">Getting the Airtable API key</h3><p>Every Airtable user has a unique API key that they need to connect Airtable with their Bubble app. You can find the key can be found under the account settings.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Airtable-API-key-in-Bubble-NocodeAssistant-Bubble-tutorials.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="606"><figcaption>Getting the Airtable API key</figcaption></figure><p>All users can access the API key; you don&apos;t need to be on a paid Airtable plan.</p><h3 id="installing-the-airtable-plugin">Installing the Airtable plugin</h3><p>We must install the Airtable plugin in our Bubble app to connect and sync our Airtable account.</p><p>Head over to the plugins sections and install the free plugin created by the Bubble team.</p><p>Once installed, Bubble will ask you to give a label to your connection. This label is only for your reference, so choose whatever you like. Then click on expand and paste the API key.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-06-at-12.42.06-PM.png" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="1944" height="502" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Screenshot-2022-07-06-at-12.42.06-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Screenshot-2022-07-06-at-12.42.06-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Screenshot-2022-07-06-at-12.42.06-PM.png 1600w, https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-06-at-12.42.06-PM.png 1944w" sizes="(min-width: 720px) 720px"></figure><p>We now need to connect our Airtable base to our Bubble app. Choose the Base, Table and View that you want to connect. You can choose which actions you want to perform to your Airtable base.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Connecting-Airtable-Plugin-In-Bubble-Tutorial-NocodeAssistant.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="688"></figure><p>Hit Initialise. Bubble will make an API call to your base and show you a schema of the response. Make any adjustments, if necessary, to your data.</p><p>These settings affect how you can manipulate your Airtable data in the Bubble app. If you choose to &apos;Ignore field&apos;, Bubble will not fetch this field, and you won&apos;t access this field in your app.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-06-at-1.03.27-AM.png" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="2000" height="1068" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Screenshot-2022-07-06-at-1.03.27-AM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Screenshot-2022-07-06-at-1.03.27-AM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Screenshot-2022-07-06-at-1.03.27-AM.png 1600w, https://nocodeassistant.com/content/images/2022/07/Screenshot-2022-07-06-at-1.03.27-AM.png 2042w" sizes="(min-width: 720px) 720px"></figure><p>Click Save.</p><h3 id="reading-the-airtable-base-in-bubble">Reading the Airtable base in Bubble</h3><p>Let&apos;s say you want to display the data in a repeating group.</p><p>The Type of Content of the Repeating group will be the name of the Airtable base. In the current case, the Type of Content will be &apos;Teams&apos; as this is the name of the base.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Reading-airtable-data-in-Bubble.io.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="535"><figcaption>Getting Airtable data in Bubble repeating group</figcaption></figure><p>As we use an API (the plugin makes API calls) to connect Airtable and Bubble, the Data source will be an external API.</p><p>Now you can use the repeating group the way you usually do.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Any field marked as &apos;Ignored&apos; will not be accessible.</div></div><h3 id="creating-a-record-in-airtable-using-bubble">Creating a record in Airtable using Bubble</h3><p>Adding a new record to your Airtable base is like creating a record in your Bubble app database.</p><p>You need a workflow and an action where you&apos;ll pass the input values.</p><p>The only difference is that you will not use the &quot;Create a new thing&quot; action. Instead, you&apos;ll use the &quot;Airtable - Create a new record&quot; action.</p><p>I have created 2 input fields and 2 date pickers in the Bubble app and a button to trigger the workflow.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Creating-a-record-in-Airtable-in-Bubble.io-Nocodeassistant-tutorials.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="535"><figcaption>Creating a new record in Airtable</figcaption></figure><p>Bubble will send the date and time values in a format Airtable can understand, so you don&apos;t have to worry about formatting the date.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">In the case of a single select field in Airtable, if you pass an existing option value, Airtable will assign the option that matches the value you gave. If there is no existing option, Airtable will create a new one.</div></div><h3 id="modify-a-record-in-airtable-using-bubble">Modify a record in Airtable using Bubble</h3><p>Modifying a record has a few steps. </p><ol><li>We will create a popup and input fields to display the current value of the record. </li><li>We&apos;ll pass the relevant Airtable record to the popup.</li><li>We will create a workflow to modify the selected record.</li></ol><p>I&apos;ve created a simple popup and added the input fields and date pickers.</p><p>To pass and work on a specific Airtable record, we will give a Type of content to our popup. We can then dynamically pass the Airtable record using workflows.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Type-of-content-of-popup.png" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="2000" height="1104" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Type-of-content-of-popup.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Type-of-content-of-popup.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Type-of-content-of-popup.png 1600w, https://nocodeassistant.com/content/images/2022/07/Type-of-content-of-popup.png 2144w" sizes="(min-width: 720px) 720px"><figcaption>Type of content of the popup</figcaption></figure><p>To display the current record data like the Name and Status of the record, we can define the Initial content of the input fields. The initial content is the initial value of any input field.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Setting-initial-content-of-popup.png" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="2000" height="964" srcset="https://nocodeassistant.com/content/images/size/w600/2022/07/Setting-initial-content-of-popup.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/07/Setting-initial-content-of-popup.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/07/Setting-initial-content-of-popup.png 1600w, https://nocodeassistant.com/content/images/2022/07/Setting-initial-content-of-popup.png 2058w" sizes="(min-width: 720px) 720px"><figcaption>Define the Initial content for all input fields</figcaption></figure><p>Once we finish the first step, let&apos;s move on to the next step.</p><p>We will create a workflow where the user clicks on any cell of the repeating group, showing the popup and passing the current cell&apos;s Team to the popup.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/07/Showing-popup-in-Bubble.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="535"></figure><p>Once we have the setup to show a popup, pass the current cell&apos;s Team and display the current information as initial content, we can move on to the final step.</p><p>Modifying the record.</p><p>We will trigger a workflow when the button &apos;Update&apos; is clicked.</p><p>The &apos;Airtable - Modify a record&apos; action will allow us to pass the updated values and the appropriate record id.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Modify-a-record-in-Airtable.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="535"><figcaption>Modify a record in Airtable</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/list-or-searches-which-is-faster-in-bubble/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">List or Searches - Which is faster in Bubble.io?</div><div class="kg-bookmark-description">Is it quicker to fetch data from lists or searches? It depends on a few factors, and no one approach will work in all scenarios.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="How to connect Airtable with Bubble.io"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.png" alt="How to connect Airtable with Bubble.io"></div></a></figure><h3 id="deleting-a-record-in-airtable-using-bubble">Deleting a record in Airtable using Bubble</h3><p>Deleting a record is a one-step workflow. I&apos;ve created an icon in the repeating group that will trigger the workflow when clicked.</p><p>We need to add an action &apos;Airtable - Delete a record&apos;. We will need to pass the Team record that has to be deleted, which in this case will be the Current cell&apos;s Team or the Parent group&apos;s Team.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/07/Delete-Record-in-Airtable-Bubble.io-Nocodeassistant-tutorials.gif" class="kg-image" alt="How to connect Airtable with Bubble.io" loading="lazy" width="960" height="535"><figcaption>Deleting a record in Airtable</figcaption></figure><h3 id="why-cant-we-filter-on-all-of-our-fields">Why can&apos;t we filter on all of our fields?</h3><p>You can filter data to the extent that Airtable allows.</p><h3 id="why-cant-we-create-or-modify-all-of-the-fields">Why can&apos;t we create or modify all of the fields?</h3><p>Some fields in Airtable have been generated automatically, such as Rollups and Counts. These values are not alterable or creatable via API calls.</p><h3 id="what-type-of-values-can-we-send-to-airtable">What type of values can we send to Airtable?</h3><p>Currently, we can only send text and number values to Airtable.</p><h3 id="how-can-we-modify-linked-records">How can we modify linked records?</h3><p>For linked records, you need to get them from Airtable. To create a new record with a collaborator field, you must have that collaborator on another record. Then use that collaborator field.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="How to connect Airtable with Bubble.io"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="How to connect Airtable with Bubble.io"></div></a></figure><hr><p>Editor - <a href="https://bubble.io/page?type=page&amp;name=airtable_plugin&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1">https://bubble.io/page?type=page&amp;name=airtable_plugin&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1</a></p><p>Preview - <a href="https://nocodeassistant-tutorials.bubbleapps.io/version-test/airtable_plugin">https://nocodeassistant-tutorials.bubbleapps.io/version-test/airtable_plugin</a></p><hr><p>What are some of the ways you use Airtable with Bubble? How have they worked for you?</p><p>If you enjoyed this article, share it with your friends and colleagues!</p><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[3 proven tips to make your Bubble app searches faster today]]></title><description><![CDATA[Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters]]></description><link>https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/</link><guid isPermaLink="false">62683d94e8daf0427390b191</guid><category><![CDATA[Database]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Thu, 28 Apr 2022 14:28:05 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="3 proven tips to make your Bubble app searches faster today"><p>Congratulations! You&apos;ve created a product in Bubble, and it&apos;s gaining traction. Your app is receiving praise from the press and users.</p><p>You&apos;re now getting responses like these: &quot;Your app is neat. However, I find it to be a bit slow. Can you make the data searches faster?&quot;</p><p>So you&apos;re wondering, &quot;Should I upgrade my Bubble server or not?&quot;</p><p>A quick tip from a fellow Bubble developer: make sure your database searches are set up correctly before worrying about upgrading your server capacity.</p><p>Don&apos;t get me wrong &#x2014; upgrading your server capacity is a good thing. But what if I told you there was an alternative where you could solve the problem of slow app speed at just about no cost?</p><p>I&apos;m not going to tell you how to get 100,000 items from your database in 0.01 seconds. That&apos;s not the aim of this Bubble tutorial.</p><h3 id="what-are-database-searches">What are database searches?</h3><p>A database search is a way of finding specific information stored in your Bubble app database. The search can be for a single item or a list of items.</p><p>Searching for a single item is usually straightforward. Even if you set up this search poorly, it won&apos;t slow down your Bubble app too much.</p><p>However, when fetching a list of items, even a tiny mistake can compound and slow your app.</p><p>And no matter which application you build, your application revolves around CRUD (Create Read Update Delete) operations.</p><p>Getting the Read part right is essential for any app. There are many different ways to build a search. But not all of them are great.</p><p>Before we start optimising our Bubble app, let&apos;s look at the difference between Client-side and server-side filtering.</p><h3 id="client-side-vs-server-side-filtering">Client-side vs server-side filtering</h3><p>1. Server-side filters - The filters and constraints are applied on the Bubble server. These filters are faster because fewer data has to download to filter the results.</p><p>2. Client-side filters - The filters and constraints are applied not on the Bubble server but in the user&apos;s browser itself. It may lead to slower performance. When you filter a search client-side, Bubble downloads the complete dataset to your browser and then filters the downloaded data.</p><p>It is clear that we need to try and avoid client-side filtering as much as possible.</p><p>Now let&apos;s see how we can optimise our database searches.</p><h3 id="1-use-privacy-rules">1. Use privacy rules</h3><p>You might be wondering how privacy rules can help improve the app&apos;s speed. Aren&apos;t privacy rules used to keep your Bubble app secure, and who has access to the data?</p><p>Yes. Privacy rules are for your Bubble app&apos;s security.</p><p>However, we need to understand how privacy rules work in Bubble.</p><p>When you use server-side filtering, Bubble searches your database for records.</p><p>If we add constraints to this search, Bubble will have to search fewer records, and the search will be faster as a result. Easy to understand.</p><p>Bubble&apos;s privacy settings ensure that data is accessible only to people who meet some criteria. They work like search constraints.</p><p>Having privacy rules will make Bubble search fewer records in some instances.</p><h3 id="2-reduce-nested-searches">2. Reduce nested searches</h3><p>Suppose you&apos;re building a project management application. This application has three different data types: Projects, Tasks, and Sub-tasks.</p><p>Project is the overarching concept, and all the Tasks and Sub-tasks can be said to be a part of a Project.</p><p>Each Project has multiple Tasks, and each Task has multiple Sub-tasks.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials-Database-Struc.png" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="560" height="230"></figure><p>Task data type has a field to store a relational link to the relevant Project. And Sub-task field has a field to store a relational link to the appropriate Task.</p><p>We want to list all the upcoming Sub-tasks in a table for the user to see.</p><p>One method would be to search for all Sub-tasks where the Task is in a search for all the Tasks associated with this Project.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-2.png" width="1494" height="724" loading="lazy" alt="3 proven tips to make your Bubble app searches faster today" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Bubble-app-search-faster-nocodeassistant-2.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Bubble-app-search-faster-nocodeassistant-2.png 1000w, https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-2.png 1494w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-1.png" width="1460" height="722" loading="lazy" alt="3 proven tips to make your Bubble app searches faster today" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Bubble-app-search-faster-nocodeassistant-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Bubble-app-search-faster-nocodeassistant-1.png 1000w, https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-1.png 1460w" sizes="(min-width: 720px) 720px"></div></div></div></figure><p>Sounds complicated?</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-video.gif" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="960" height="588"></figure><p>Well, it is. And if something seems complicated to understand with words, it is likely to be even more complex when you build it. And slow.</p><p>Another method, which is simpler and faster, is to create a field in the Sub-tasks data type to store a relational link to the relevant Project.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-28-at-7.51.54-PM.png" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="1786" height="804" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-28-at-7.51.54-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-28-at-7.51.54-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-28-at-7.51.54-PM.png 1600w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-28-at-7.51.54-PM.png 1786w" sizes="(min-width: 720px) 720px"></figure><p>You can now search for all the Sub-tasks where the Project is the current Project.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-nested-search.png" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="1410" height="734" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Bubble-app-search-faster-nocodeassistant-nested-search.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Bubble-app-search-faster-nocodeassistant-nested-search.png 1000w, https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-nested-search.png 1410w" sizes="(min-width: 720px) 720px"></figure><p>This will reduce the database search time and reduce the time it takes to perform CRUD operations in workflows.</p><h3 id="3-avoid-advanced-filter">3. Avoid advanced filter</h3><p>Advanced filters are a powerful component of Bubble. However, it would be best if you were carefully using them.</p><p>Advanced filters in Bubble use client-side filtering. And client-side filters can significantly slow down your app if the dataset is large.</p><p>Let&apos;s say we have a list of 10,000 Products. We want to fetch Products where the Name field contains &quot;A&quot;.</p><p>One way to do this is <em>Search for Product (unconstrained) :filter (Advanced: This Product&apos;s Name contains &quot;W&quot;)</em></p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-1.png" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="1498" height="802" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-1.png 1000w, https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-1.png 1498w" sizes="(min-width: 720px) 720px"></figure><p>This will load the list of 10,000 Products into the user&apos;s browser and then filter it.</p><p>The other way to do it is <em>Search for Product (constraint Name contains W)</em></p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-2.png" class="kg-image" alt="3 proven tips to make your Bubble app searches faster today" loading="lazy" width="1492" height="766" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-2.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-2.png 1000w, https://nocodeassistant.com/content/images/2022/04/Bubble-app-search-faster-nocodeassistant-advanced-filter-search-2.png 1492w" sizes="(min-width: 720px) 720px"></figure><p>The second method is more efficient.</p><p>But there will be times when you&apos;ll need to use advanced filters. In such a case, we should try to send the user&apos;s browser as few items as possible.</p><p>Don&apos;t just send everything. Send only the list of things that could pass the Advanced filter you will do afterwards.</p><p>Optimise.</p><hr><p>You may not think about it, but Bubble gives you much control over how your database searches are structured and executed.</p><p>Your app&apos;s performance is just as important as the user experience. Design is essential, but the end results are more critical.</p><p>Instead of upgrading your server capacity, try to optimise your database search queries.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/list-or-searches-which-is-faster-in-bubble/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">List or Searches - Which is faster in Bubble.io?</div><div class="kg-bookmark-description">Is it quicker to fetch data from lists or searches? It depends on a few factors, and no one approach will work in all scenarios.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=79098d7874" alt="3 proven tips to make your Bubble app searches faster today"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.png" alt="3 proven tips to make your Bubble app searches faster today"></div></a></figure><hr><p>Did you find the strategies listed in this tutorial helpful? What are some of your favourite ways to improve your database searches? How have they worked for you?</p><p>If you enjoyed this article, share it with your friends and colleagues!</p><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[What are Bubble templates and why should you care?]]></title><description><![CDATA[When building Bubble apps, you might feel overwhelmed with the work needed. One way to save time and resources is with templates. However, using a template may not be the best choice for everyone.]]></description><link>https://nocodeassistant.com/what-are-bubble-templates/</link><guid isPermaLink="false">62658fc7645ebab96097d183</guid><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Tue, 26 Apr 2022 12:19:28 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Design-6--1-.webp" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Design-6--1-.webp" alt="What are Bubble templates and why should you care?"><p>When building apps, one of the things you might think about is how to save time and resources. One way to do this with Bubble is to use templates.</p><p>However, there are reasons why using a Bubble template may not be the best option. There are also reasons why using a template could be the best choice for your Bubble MVP.</p><h3 id="what-is-an-mvp">What is an MVP?</h3><p>The moment you have an idea for a business, you need to assess if it&apos;s a viable one. There are a few different ways to approach this. One option is to launch a minimum viable product &#x2014; or MVP.</p><p>MVPs are simple, and the core components of the template are adequate for you to test your business concept. For example, let&apos;s say you want to start a service that connects people who need help moving with people who have trucks. That&apos;s a great idea!</p><p>Your MVP might be a website that takes information from users and connects them by email. You can get this done quickly and cheaply, so you can start testing your idea in the real world.</p><p>The nice thing about MVPs is they are prototypes, not finished products. You can change or improve them based on what you learn during testing.</p><p>Creating an MVP helps you avoid months of work developing something no one will use &#x2014; or even worse, jumping right into building something that no one will ever see because it doesn&apos;t solve a problem for anyone.</p><p>After all, it&apos;s easy to think your ideas are excellent when they&apos;re just floating around in your head &#x2014; but it&apos;s quite another thing to find out if others agree once you put those ideas out there in some tangible form.</p><h3 id="why-use-bubbleio-to-build-an-mvp">Why use Bubble.io to build an MVP</h3><p>With no-code tools like Bubble, you can get your product to market faster.</p><p>&quot;Good enough is better than perfect&quot; applies here: fast to market is better than perfect. And you can build a product way more quickly in Bubble than from scratch.</p><p>Because of its flexibility, no-code lets you iterate without a headache.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Don&apos;t try to build every feature first, or even every feature you think your users want. Focus on getting something out as soon as possible, then listen for feedback and learn what it means for the future of your product.</div></div><p>And because startups often pivot, you want the process of making changes to be as smooth as possible - especially if you&apos;re trying to keep development costs down.</p><p>Using a flexible stack, you can change it yourself without needing a dev team or a technical founder.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="What are Bubble templates and why should you care?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="What are Bubble templates and why should you care?"></div></a></figure><h3 id="what-is-a-bubble-template">What is a Bubble template?</h3><p>These Bubble templates can be a great starting point for creating your MVP. Templates are pre-made pages or elements with or without built-in functionality. They can help you save time and make your Bubble app look professional.</p><p>The templates make it possible for you to use copies of apps that are already successful and come with pre-integrated features.</p><p>For example, if you&apos;re building a marketplace similar to Airbnb, you can use a template for Airbnb in Bubble. This way, you&apos;ll have most of the core features taken care of without building it yourself in Bubble.</p><h3 id="types-of-templates-in-bubble">Types of templates in Bubble</h3><p>Different Bubble.io developers and agencies offer templates in Bubble. And the way they build the templates can vary.</p><p>You&apos;ll find hundreds of templates on offer on the Bubble marketplace. Some of the most common Bubble templates are:</p><ol><li>CRMs</li><li>Dashboard</li><li>Landing pages</li><li>Marketplaces</li><li>E-commerce sites</li><li>Internal tools</li><li>Directory sites</li><li>On-demand services</li><li>Project management</li><li>Online stores</li></ol><p>Bubble templates can be a great way to start your own business, usually costing between $149 and $399.</p><h3 id="benefits-of-using-a-bubbleio-template">Benefits of using a Bubble.io template?</h3><p>Bubble is a no-code platform that allows you to create an app without writing code. However, the language it&apos;s designed in is its language, and it takes some learning to get up to speed.</p><p>Some of the apparent benefits of using a Bubble template are</p><ol><li>It will take you less time to build your MVP.</li><li>It will save you the money you would&apos;ve otherwise paid for a Bubble developer.</li><li>The template might come with pre-built complex features like payments, oAuth login etc.</li><li>You can learn the basics of Bubble with a template than if you were starting entirely from scratch.</li></ol><h3 id="problems-with-using-templates-in-bubbleio">Problems with using templates in Bubble.io?</h3><p>There are a few disadvantages to using a Bubble template. A few are only encountered when you try to scale your Bubble MVP.</p><ol><li>The template might not be optimised, and you might need to rebuild your app from scratch. This might be due to the database architecture, workflows that use many resources, or a clunky design.</li><li>The templates are provided as-is. They don&apos;t come with customisation support. If you need to make any changes to the template, you can either do it yourself or hire a Bubble developer.</li><li>The Bubble template may not have detailed documentation. This can slow you down as even experienced Bubble developers will need some time to familiarise themselves with the template.</li><li>They may not be a perfect fit for your business use case. Every market is unique, and businesses can differ significantly from one another. The template may not be designed to meet your industry&apos;s business processes and standards.</li></ol><h3 id="when-should-you-use-a-bubble-template">When should you use a Bubble template?</h3><ol><li>Your MVP is simple, and the core components of the template are a good foundation for you to test your business concept.</li><li>You want to copy a template feature in a separate Bubble app. Once you have the template, you can see the workflows and understand how it is designed. You can use this knowledge to create a module like this in your app.</li><li>You want to use the template as a starting point and add the features missing in the template on your own.</li></ol><h3 id="how-to-find-bubble-templates">How to find Bubble templates?</h3><ol><li>Go to the <a href="https://bubble.io/templates">Bubble Marketplace</a>.</li><li>Search for keywords related to your app. For example, if you want to build a site like Airbnb, try typing &quot;marketplace.&quot;</li><li>To narrow it further, select the template category from the dropdown.</li></ol><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-26-at-5.27.26-PM.png" class="kg-image" alt="What are Bubble templates and why should you care?" loading="lazy" width="2000" height="1143" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-26-at-5.27.26-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-26-at-5.27.26-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-26-at-5.27.26-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/04/Screenshot-2022-04-26-at-5.27.26-PM.png 2400w" sizes="(min-width: 720px) 720px"></figure><h3 id="what-does-it-cost-to-use-a-template">What does it cost to use a template?</h3><p>Most Bubble templates sell for $149 to $399, but a few sell for a higher price.</p><p>For most people, their ideal Bubble template will cost them $299. This template will have the UI, workflows, data structure and security measures.</p><p>You might need to change some of the practices in these templates when you want to scale your app. This should not discourage you as you use the MVP template.</p><h3 id="can-you-make-a-bubble-template">Can you make a Bubble template?</h3><p>Yes, you can. You can convert a Bubble app into a template and launch it on the Bubble marketplace. </p><ol><li>Create your seller identity by going to your <a href="http://bubble.io/account">Bubble account page</a>. Go to Marketplace - Seller profile. Create a Seller profile to list plugins and templates on the Bubble marketplace.</li><li>Go to the <a href="http://bubble.io/my_templates">Template</a> section in your Bubble account. Click on &quot;New template&quot;.</li><li>You can name your template and choose to either use an existing app or create a new one. </li><li>Once you&apos;re done, submit it for review.</li></ol><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-26-at-11.48.25-PM.png" width="2000" height="992" loading="lazy" alt="What are Bubble templates and why should you care?" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-26-at-11.48.25-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-26-at-11.48.25-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-26-at-11.48.25-PM.png 1600w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-26-at-11.48.25-PM.png 2032w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/04/submit_template_popup.png" width="1260" height="1188" loading="lazy" alt="What are Bubble templates and why should you care?" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/submit_template_popup.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/submit_template_popup.png 1000w, https://nocodeassistant.com/content/images/2022/04/submit_template_popup.png 1260w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h3 id="how-to-use-a-bubble-template-in-your-app">How to use a Bubble template in your app?</h3><p>You cannot import Bubble templates into an existing app. You can only use a Bubble template for a new app. </p><p>The Bubble template serves as the foundation of your Bubble.io app. The template contains all the pages, data structures, workflows and integrations required for your app to function. These templates are easily customised so that you can make them fit your needs.</p><ol><li>Go to your Bubble.io account and create a new app.</li><li>Give a name to your app and fill in the rest of the details.</li><li>Select the template you purchased in the &quot;Start from a template&quot; dropdown.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/NocodeAssistant-Bubble-Template-Tutorial.gif" class="kg-image" alt="What are Bubble templates and why should you care?" loading="lazy" width="960" height="549"><figcaption>Using a Bubble template</figcaption></figure><h3 id="can-you-edit-a-bubble-template">Can you edit a Bubble template?</h3><p>Yes. You can edit everything from the text styling, colours, branding, workflows, database structure etc. You can edit a template as you would edit any Bubble app.</p><h3 id="how-to-customise-a-bubble-template">How to customise a Bubble template?</h3><p>It&apos;s not uncommon to make changes to your Bubble template. As I mentioned above, they may not be a perfect fit for your business. </p><p>You have two ways of customising a Bubble template.</p><ol><li>Do it yourself. If you are familiar with Bubble, you can do it yourself. After all, Bubble is meant to help non-technical people build apps without writing a line of code. </li><li>Hire a Bubble developer. You can find Bubble developers on <a href="https://codemap.io/">Codemap.io</a>, the <a href="https://forum.bubble.io/">Bubble forum</a> or put in a <a href="https://bubble.io/rfp">Request for Proposal from Bubble agencies</a>. At <a href="https://nocodeassistant.agency">NocodeAssistant</a> we can help you tweak the template.</li></ol><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=46e8ad9db9" alt="What are Bubble templates and why should you care?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="What are Bubble templates and why should you care?"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[Easy Guide To Learn Backend Workflows In Bubble In 5 minutes]]></title><description><![CDATA[Backend workflows are server-side workflows in Bubble.io. Use them to schedule actions in the future or work with a big list. ]]></description><link>https://nocodeassistant.com/bubble-backend-workflows/</link><guid isPermaLink="false">6245562cf470d064c9d50491</guid><category><![CDATA[Workflows]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Sun, 03 Apr 2022 15:33:27 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Backend-workflows-in-Bubble-Nocode-Tutorial-NocodeAssistant.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Backend-workflows-in-Bubble-Nocode-Tutorial-NocodeAssistant.png" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"><p>Backend workflows are server-side workflows. You can use them for the majority of your work, but there are some things that they are not suitable for.</p><p>If you&apos;re working with an extensive data set or need to &apos;schedule&apos; a workflow to run in the future, the standard workflows you&apos;re familiar with will not work.</p><p>In this tutorial, we&apos;ll understand how and where we can use backend workflows in Bubble.io. </p><h3 id="where-do-the-backend-workflows-run-in-bubble">Where do the backend workflows run in Bubble?</h3><p>The backend workflows don&apos;t run in the browser of the user. They run server-side.</p><p>These workflows won&apos;t use up the user&apos;s computing/processing power.</p><h3 id="why-use-backend-workflows-in-bubble">Why use backend workflows in Bubble?</h3><ol><li>If you need to &apos;schedule&apos; some actions in the future, you&apos;ll need to use backend workflows. For example, charge the user after one month when the trial ends; send a reminder a week before an event.</li><li>Another benefit is that the user doesn&apos;t have to wait for these background workflows to finish. The user can navigate to another page, start another backend workflow or do anything else. Bubble will handle these workflows in the background, so you won&apos;t notice them.</li><li>You are iterating on a big list. With the standard workflows, you can either change a single thing or a list of things together. With backend workflows, you can work on a list one item at a time. This can be useful if you&apos;re working with a big list as you won&apos;t blow up your Bubble application&apos;s capacity.</li><li>Your application will be well-organised as you can create a backend workflow and trigger it from various places. You only need to update the workflow once rather than multiple times.</li></ol><h3 id="enabling-backend-workflows-in-bubble">Enabling backend workflows in Bubble</h3><p>Backend workflows are available for all paid plans on Bubble. However, they need to be enabled.</p><p>Go to Settings &gt; API &gt; Enable Workflow API and backend workflows to enable them.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/Creating-a-database-trigger-in-bubble.io---NocodeAssistant.gif" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="960" height="524"><figcaption>Enabling backend workflows</figcaption></figure><h3 id="creating-a-backend-workflow-in-bubble">Creating a backend workflow in Bubble</h3><p>Go to the backend workflows sections in your Bubble app.</p><p>Add a new backend workflow under General &gt; New API workflow...</p><p>Once you do that, you can now configure the workflow&apos;s settings. You can give it a name, event colour etc. Ignore the rest of the options for now, and let&apos;s begin with adding a parameter.</p><p>As these workflows run in the background, we pass the required data to the backend workflow and let Bubble run it. This information that we give is with the help of parameters.</p><p>Parameters have a &apos;Type of Content&apos; and a &apos;Key&apos;.</p><p>The &apos;Type of Content&apos; is the type of data you&apos;re passing. Typically it is a data type, but you can also pass numbers, text etc. The Key is nothing but a name that you use to reference your value.</p><p>You can also choose whether some value you&apos;re passing is a list of things or optional.</p><p><strong>Sending birthday emails to your app users</strong></p><p>Let&apos;s create a backend workflow to send an email to the user on their birthday.<br><br>We&apos;ll start by creating a new API workflow.After naming our workflow, we set its parameters.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/scheduling-a-backend-worklfow-in-Bubble.io-NocodeAssistant.gif" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="960" height="530"></figure><p>We need to know the user who is supposed to get the email and the birthdate for this workflow. To keep things simple, we will send the birthday email only once. The birthdate is optional, as we can schedule it for the birthdate and then reschedule it to run again after one year.<br><br>As we need to pass the User record, the Type of user parameter will be the User data type. For the birthday, it will be a date.<br><br>We don&apos;t need to pass multiple dates or users, so we&apos;ll keep the &apos;is a list/array&apos; checkbox unchecked.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-3.35.51-PM.png" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="1484" height="886" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-03-at-3.35.51-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-03-at-3.35.51-PM.png 1000w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-3.35.51-PM.png 1484w" sizes="(min-width: 720px) 720px"><figcaption>Backend workflow parameters</figcaption></figure><p>We&apos;ll add a &apos;Send email&apos; step in this backend workflow. We can refer to the parameters that we have defined in our actions.<br><br>For the To field, we can use the user parameter that we just defined and access all the User table fields. Furthermore, if we needed to mention the birthday in the email, we could use the birthday parameter that we created.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.03.58-PM.png" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="1598" height="884" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-03-at-4.03.58-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-03-at-4.03.58-PM.png 1000w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.03.58-PM.png 1598w" sizes="(min-width: 720px) 720px"><figcaption>Sending an email using backend workflows</figcaption></figure><h3 id="triggering-a-backend-workflow-in-bubble">Triggering a backend workflow in Bubble</h3><p>We can start a backend workflow from any page in our Bubble application. To start a backend workflow in Bubble, we&apos;ll find the &quot;Schedule API workflow&quot; action under custom events.</p><p>After selecting the desired workflow, a new set of settings will open.</p><p>We&apos;ll need to pass the parameters we defined when creating this backend workflow. Bubble will show you all the parameter values that you need to provide.</p><p>You can use any means necessary to pass this information. You can use &apos;Do a Search&apos;, the Result of the previous step or even give the response of an API call.</p><p>Finally, we must pass the date and time when this backend workflow should run. If you want it to run right away, you can put the Current date/time as the Scheduled date.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.17.03-PM.png" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="2000" height="1013" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-03-at-4.17.03-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-03-at-4.17.03-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-03-at-4.17.03-PM.png 1600w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.17.03-PM.png 2022w" sizes="(min-width: 720px) 720px"></figure><p>Taking our birthday example forward, let&apos;s say that you have this simple UI where you ask the user for their birthday.</p><p>Assuming you want to send this email immediately, we need to start the backend workflow. We don&apos;t need to schedule it. We can trigger the backend workflow either instantly or schedule it for a later date.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Triggering-a-backend-workflow-in-Bubble.io-NocodeAssistant.gif" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="960" height="485"></figure><p>We&apos;ll add the &apos;Schedule API workflow&apos; action. The Scheduled date will be the Current date/time as we want it to be sent at the earliest. </p><h3 id="scheduling-a-backend-workflow-for-a-future-time-in-bubble">Scheduling a backend workflow for a future time in Bubble</h3><p>We only need to change the Scheduled date to schedule a backend workflow for a future time.</p><p>Pick the backend workflow you want to schedule, and then choose when you want it to run.</p><p>You can also schedule multiple backend workflows together, but be sure to have some time in between them. To ensure your system is scalable, you should have a 3-5 seconds time gap between two backend workflows.</p><p>We only need to make one small change to schedule the above example for a future date.</p><p>We&apos;ll change the Scheduled date to Date/TimePicker Birthday&apos;s value. And that&apos;s it.</p><p>The backend workflow is scheduled.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.27.11-PM.png" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="1836" height="930" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-03-at-4.27.11-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-03-at-4.27.11-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-03-at-4.27.11-PM.png 1600w, https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.27.11-PM.png 1836w" sizes="(min-width: 720px) 720px"><figcaption>Scheduling for a future date</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/recursive-workflows-in-bubble/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Recursive workflows for Beginners | Bubble.io</div><div class="kg-bookmark-description">A recursive workflow is a workflow that can schedule itself to run in the future. They help you work on a large list, one item at a time.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/07/Easy-guide-to-learn-recursive-workflows-in-10-minutes.png" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"></div></a></figure><h3 id="cancelling-a-scheduled-workflow-in-bubble">Cancelling a scheduled workflow in Bubble</h3><p>The &apos;Schedule API Workflow&apos; action returns an ID. This ID can be used to abort a scheduled workflow.</p><p>You can cancel a future workflow execution by using the &apos;Cancel a scheduled API Workflow&apos; or &apos;Cancel a list of scheduled API Workflows&apos; actions. This action will require a workflow ID or a list of workflow IDs.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/04/Cancelling-a-backend-workflow-in-Bubble.io-NocodeAssistant.gif" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="960" height="485"><figcaption>Manually cancelling a scheduled backend workflow</figcaption></figure><h3 id="inspecting-the-upcoming-workflows">Inspecting the upcoming workflows</h3><p>The Scheduler section of the Logs tab shows all the upcoming workflows.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/04/Screenshot-2022-04-03-at-4.29.28-PM.png" class="kg-image" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes" loading="lazy" width="2000" height="757" srcset="https://nocodeassistant.com/content/images/size/w600/2022/04/Screenshot-2022-04-03-at-4.29.28-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/04/Screenshot-2022-04-03-at-4.29.28-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/04/Screenshot-2022-04-03-at-4.29.28-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/04/Screenshot-2022-04-03-at-4.29.28-PM.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>You can cancel upcoming events by clicking on the cancel button in each row. This cancels the current row workflow.</p><h3 id="things-to-look-out-for">Things to look out for</h3><ol><li>Ensure you respect your Bubble application&apos;s privacy rules when creating a backend workflow. Check the &quot;Ignore privacy rules when running the workflow&quot; checkbox if you want the backend workflow to override the privacy rules.</li><li>Ensure you give a 3-5 seconds time gap if you schedule multiple back-end workflows.</li></ol><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/5-common-mistakes-to-avoid-when-building-no-code-apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 common mistakes to avoid when building with Bubble</div><div class="kg-bookmark-description">Are you building with Bubble.io? Avoid these 5 common mistakes when building your Bubble.io app.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"></div></a></figure><h3 id="how-are-backend-workflows-different-from-database-triggers">How are backend workflows different from database triggers?</h3><ol><li>Database triggers start automatically when their trigger condition is satisfied. On the other hand, backend workflows require to be triggered using workflows.</li><li>You can schedule a backend for a time in future. Database triggers cannot be scheduled.</li><li>You can override the privacy settings of your Bubble application with backend workflows. Database triggers will always respect your Bubble application&apos;s privacy rules.</li><li>You can manually cancel a backend workflow, but you cannot do the same with a database trigger.</li></ol><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/database-triggers/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Database triggers in Bubble.io</div><div class="kg-bookmark-description">Database triggers are a way of setting off workflows automatically in the backend when something changes in your database. Learn how to use them in your Bubble app</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/favicon.png" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/03/Blog-banner.png" alt="Easy Guide To Learn Backend Workflows In Bubble In 5 minutes"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[What are Database Triggers in Bubble and how to use them?]]></title><description><![CDATA[Database triggers are a way of setting off workflows automatically in the backend when something changes in your database. Learn how to use them in your Bubble app]]></description><link>https://nocodeassistant.com/database-triggers/</link><guid isPermaLink="false">5ff06c03f470d064c9d4fa91</guid><category><![CDATA[Database]]></category><category><![CDATA[Workflows]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Tue, 29 Mar 2022 19:24:39 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Bubble-Database-Triggers-How-to-Use-Them-Nocode-Tutorial-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Bubble-Database-Triggers-How-to-Use-Them-Nocode-Tutorial-1.png" alt="What are Database Triggers in Bubble and how to use them?"><p>Database triggers are a way of setting off workflows automatically in the backend when something changes in your database. When you change an item of our chosen data type, Bubble checks the trigger&apos;s condition to see if the workflow should run.</p><p>They&apos;re handy when modifying a data type in different parts of your Bubble app.</p><p>You can create a database trigger once. It will automatically take care of the required actions&#x2014;no need to duplicate the workflow.</p><p>Use cases include:</p><ul><li>Workflows can be triggered when you modify data in the Data panel of the editor.</li><li>Workflows can be triggered when data is changed through the Data API.</li><li>Implementing a &quot;Schedule API workflow&quot; that will run every time a specific type of modification is made to your data</li></ul><p>This feature is valuable. The fact we can reference both the old and new versions of the data entry is convenient.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="What are Database Triggers in Bubble and how to use them?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="What are Database Triggers in Bubble and how to use them?"></div></a></figure><h3 id="when-do-they-run">When do they run?</h3><p>When creating a new database trigger, we describe a data type and a field to be checked for updates. These two things work together to create a trigger.</p><p>When working with database triggers, you&apos;ll need to be familiar with two data types:</p><ul><li>The &quot;Thing Before Change&quot; is the data of the original thing.</li><li>The &quot;Thing Now&quot; is the current data.</li></ul><p>The &quot;Thing&quot; is the data type of the trigger.</p><p>If a workflow modifies a thing multiple times, it will only fire triggers once.</p><p>Triggers are also activated when a thing is created or deleted. If it was created, &quot;Thing Before Change is empty&quot; would be true. And if it was deleted, &quot;Thing Now is empty&quot; will be valid.</p><h3 id="creating-a-database-trigger">Creating a database trigger</h3><p>Database triggers are available for all paid plans on Bubble. However, they need to be enabled.</p><p>Go to Settings &gt; API &gt; Enable Workflow API and backend workflows to enable them.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/03/Creating-a-database-trigger-in-bubble.io---NocodeAssistant.gif" class="kg-image" alt="What are Database Triggers in Bubble and how to use them?" loading="lazy" width="960" height="524"></figure><p>Then in the page selector dropdown in the upper left, you&apos;ll see the &quot;Back-end workflows&quot; page, which includes new kinds of workflows, including database change triggers.</p><h3 id="everyday-use-cases">Everyday use cases</h3><p>Many apps we&apos;ve seen built by others have complicated logic. They have 20 or 30 workflows that trigger the same API workflow because they all need to share logic.</p><p>Using database trigger workflows, you can make your app more straightforward to maintain by deleting all those actions.</p><p><strong>Updating the user&apos;s slug when the user&apos;s name is changed</strong></p><p>You want to update the user&apos;s slug whenever they update their name.</p><p>This is the perfect example of a database trigger because you have a &quot;Thing before&quot;, the user&apos;s old name, and a &quot;Thing now&quot;, the user&apos;s new name.</p><p>We can create a database trigger to check the data type user and the field fullName.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/03/Updating-the-user-s-slug-with-database-triggers-Nocodeassistant-Bubble.io-1.gif" class="kg-image" alt="What are Database Triggers in Bubble and how to use them?" loading="lazy" width="960" height="532"><figcaption>Update the slug with database triggers</figcaption></figure><p>No matter where we create the workflow to update the fullName of the User, this database trigger will keep a watch and automatically trigger when the name is changed.</p><p><strong>Triggering an email when a new record is created</strong></p><p>A database trigger can be fired when a new record is created. In this case, the condition will be that the &quot;Thing before&quot; will be empty.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/03/Triggering-an-email-when-a-new-record-is-created-in-Bubble.io-NocodeAssistant.gif" class="kg-image" alt="What are Database Triggers in Bubble and how to use them?" loading="lazy" width="960" height="532"><figcaption>Send an email when a new record is created</figcaption></figure><p>The &quot;Thing before&quot; will be empty as it is a new record.</p><p><strong>Scheduling a backend workflow when a new record is created</strong></p><p>It is important to remember that a database trigger will not cause another database trigger to fire. So in case you update a data type, say Country, when the State is updated, another database trigger should run whenever the Country table is updated. </p><p>In this case, the second database trigger will not be executed. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/03/Trigger-api-workflow-with-database-trigger-in-Bubble.io-NocodeAssistant.gif" class="kg-image" alt="What are Database Triggers in Bubble and how to use them?" loading="lazy" width="960" height="532"><figcaption>You can schedule backend workflow with database triggers</figcaption></figure><p>A workaround is to create a backend workflow to update the Country. Whenever a State is updated, the backend workflow will run to update the Country. <br><br>This will help then the database trigger for Country as well.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/bubble-backend-workflows/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Backend workflows for Beginners | Bubble.io</div><div class="kg-bookmark-description">Backend workflows are server-side workflows in Bubble.io. Use them to schedule actions in the future or work with a big list.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="What are Database Triggers in Bubble and how to use them?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Backend-workflows-in-Bubble-Nocode-Tutorial-NocodeAssistant.png" alt="What are Database Triggers in Bubble and how to use them?"></div></a></figure><h3 id="when-should-they-not-be-used">When should they not be used?</h3><p>Database triggers have improved a lot since they were introduced. They are more reliable, and there is no reason not to use them.</p><p>That being said, there are some things to be considered.</p><p><strong>Database triggers don&apos;t follow the privacy rules you define for your application</strong></p><p>Any searches performed during the workflow will return all results, not just the results the current user can see. </p><p>Don&apos;t rely on privacy results to filter the results to prevent this. Instead, apply constraints and advanced filters.</p><p><strong>A database trigger cannot trigger another database trigger</strong> </p><p>Suppose a workflow initiated by a trigger modifies data. In that case, Bubble will not start any subsequent triggers, even if those modifications are eligible for starting other trigger events.</p><p><strong>You need to use &quot;Thing Now&quot; and &quot;Thing Before Change&quot;</strong></p><p>You can only use &quot;Thing Now&quot; and &quot;Thing Before Change&quot; to define the &quot;Only when&#x2026;&quot; condition. The complete list of data sources is available in the actions kicked off by the trigger.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/3-tips-to-make-bubble-app-search-faster/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">3 proven tips to make your Bubble.io app searches faster today</div><div class="kg-bookmark-description">Learn how to solve the problem of a slow app (without upgrading your server). 1. Use privacy rules 2. Reduce nested searches 3. Avoid advanced filters</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="What are Database Triggers in Bubble and how to use them?"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Improve-Bubble-App-Searches-Faster-Database-NocodeAssistant-Nocode-Tutorials.png" alt="What are Database Triggers in Bubble and how to use them?"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[How To Create An Admin Role in Bubble & Grant Privileges]]></title><description><![CDATA[You can different user roles in your Bubble.io app. These roles can have different privileges and access to different functions.]]></description><link>https://nocodeassistant.com/admin-role-in-bubble/</link><guid isPermaLink="false">5f80d4fe186c79eefbdfd22d</guid><category><![CDATA[General Tips]]></category><category><![CDATA[Database]]></category><category><![CDATA[Workflows]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Mon, 28 Feb 2022 21:14:07 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/How-To-Create-An-Admin-Role-in-Bubble----Grant-Privileges-NocodeAssistant-Nocode-Tutorial-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/How-To-Create-An-Admin-Role-in-Bubble----Grant-Privileges-NocodeAssistant-Nocode-Tutorial-1.png" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges"><p>Nearly every app we create for our clients has an Admin role. This role allows the user to have almost god-like powers in the application. </p><p>They can delete content, remove users, make changes to content etc. This role is for the person who owns the application or their team members. The application owner can invite team members and grant them privileges.</p><p>This article will teach you how to create an Admin role in your Bubble application. We&#x2019;ll work with the example of a Facebook clone, and the Admin should be able to</p><ul><li>Restrict access of certain pages to the Admin.</li><li>Delete posts that violate the application policy.</li><li>If users engage in harmful behaviour, ban them.</li><li>Allow/disallow groups created by users before opening them to the application users.</li></ul><h3 id="creating-the-role">Creating the role</h3><p>In our client applications, we assign a role to all the users, even if there is only one role for the application other than the Admin.</p><p>Having user roles allows from the beginning will enable you to hide admin pages, restrict functions solely for the admin, etc.</p><p>I prefer having an Option set to store the different user roles instead of a Data type. As the user roles are static and universal, it is better to use an Option set &#x2013; faster and more efficient.</p><p>To create a new Option set, go to Data - Option sets - New option set.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screen-Recording-2022-02-28-at-4.02.42-PM.gif" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2880" height="1650"></figure><p>I created one additional attribute, &#x201C;public_name&#x201D;, to simplify it. The &#x201C;public_name&#x201D; attribute will be what the users can see when signing up. This attribute is entirely optional.</p><h3 id="assigning-user-roles">Assigning user roles</h3><p>Since we have only two user roles in this example, we will assign all the users the &#x201C;General User&#x201D; role during signing up. In the User data type, we have a field called user_role that stores each user&apos;s assigned role. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.36.45-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="946" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.36.45-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.36.45-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.36.45-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-7.36.45-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>user_role field in User data type</figcaption></figure><p>We ask the user for their name, email and password on the login page. We aren&#x2019;t asking them to choose a role as they all will be assigned the same role. </p><p>If your application has more than one user role for general users, you can create your business logic to give them roles. </p><p>We&#x2019;ll store this role when signing up to keep things simple. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.38.25-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="1094" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.38.25-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.38.25-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.38.25-PM.png 1600w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.38.25-PM.png 2146w" sizes="(min-width: 720px) 720px"><figcaption>Assigning a role to user</figcaption></figure><h3 id="restricting-page-access">Restricting page access</h3><p>There can be pages in your Bubble app which you don&#x2019;t want any users to access except the Admin. It can be the Admin dashboard page, for example. </p><p>We&apos;ll create a conditional workflow to restrict this page to be only accessible by users whose user_role field in the User data type is Admin. </p><p>Create a &#x201C;Do when condition is true&#x201D; workflow in the workflows. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.05.18-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="870" height="798" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-27-at-11.05.18-PM.png 600w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.05.18-PM.png 870w" sizes="(min-width: 720px) 720px"></figure><p>Next, we need to create a condition that will run this workflow when true. Simple to guess, the condition will be that if the user_role field is not Admin, the user should be navigated to another page, say the homepage. </p><p>So I created a condition that <em>Only when the Current User&#x2019;s user_role is not Admin</em>, Bubble should navigate the user to the index page.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.11.02-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="1536" height="884" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-27-at-11.11.02-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-27-at-11.11.02-PM.png 1000w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.11.02-PM.png 1536w" sizes="(min-width: 720px) 720px"></figure><h3 id="delete-posts-that-violate-the-application-policy">Delete posts that violate the application policy</h3><p>To delete posts, we need a field in the data type where the posts are stored to flag them as deleted. </p><p>A simple data structure that I&#x2019;ve created to store the posts and flag them is to have an isVisible field in the Posts data type. This field will decide whether the Posts is visible to the application users or not. This Yes/No type field will be set to Yes by default.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.40.42-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="870" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.40.42-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.40.42-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.40.42-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-7.40.42-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Creating a flag called isVisible in the Posts data type</figcaption></figure><p>I could simply delete the posts, but it is better to hide the posts than outright delete them as a safe practice. This way, you can retrieve the posts if needed in future and also, it is faster to update a field in Bubble than to delete a record. &#xA0;</p><p>We&#x2019;ll now create a workflow to allow the ability to update the isVisible field only to the Admin. </p><p>In the repeating group displaying the Posts, we have a constraint to search for Posts where the isVisible field is Yes. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.43.09-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="1850" height="982" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.43.09-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.43.09-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.43.09-PM.png 1600w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.43.09-PM.png 1850w" sizes="(min-width: 720px) 720px"><figcaption>Applying constraint in the repeating group to show only unflagged Posts</figcaption></figure><p>Next, we&#x2019;ll add a small icon. This icon, when clicked, will run a workflow that will update the isVisible field to No. As a result, this post will not show in the repeating group results as the constraint we applied above will filter it out. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screen-Recording-2022-02-28-at-7.58.00-PM.gif" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2880" height="1650"></figure><p>Now that we have a workflow to flag a post, we would like only the Admin to have the ability to do this operation. </p><p>With the help of conditionals on the icon, we can add a condition that this icon should only be visible to the Admin. This icon will not be visible by default and only be visible to the Admin.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.52.32-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="1146" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.52.32-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.52.32-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.52.32-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-7.52.32-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Flag icon visible to the Admin</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-7.53.02-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="1144" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-7.53.02-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-7.53.02-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-7.53.02-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-7.53.02-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Flag icon NOT visible to users other than Admin</figcaption></figure><p>The condition will be Only when the Current User&#x2019;s user_role is Admin, and the property to change will be to check This element is visible.</p><h3 id="if-users-engage-in-harmful-behaviour-ban-them">If users engage in harmful behaviour, ban them</h3><p>Like deleting a post, we can also flag users if they indulge in harmful behaviour. We can have a field in the User data type that determines whether the user has permission to use the application or not. </p><p>The field named isActive will determine whether the user can use the application. It is a simple Yes/No type field, which, when marked No, will restrict access. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.05.36-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="1039" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-8.05.36-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-8.05.36-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-8.05.36-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-8.05.36-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>isActive field in User data type</figcaption></figure><p>On the Admin dashboard page, we have a repeating group that displays a list of all the users and their information. And in the repeating group, we have a toggle button. This toggle button is linked to the isActive field in the User data type using auto-binding.</p><p>Auto-binding is a feature in Bubble.io where the input&#x2019;s value is associated with a field in a data type. And when the input&#x2019;s value is changed, the corresponding field is updated in the database. Auto-binding allows you to edit a field&#x2019;s value without using workflows.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/auto-binding-and-its-use/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Auto-binding feature in Bubble.io and its use</div><div class="kg-bookmark-description">You can auto-update your Bubble database without using any workflows. Improving your UX for your users</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/favicon.png" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/Autobinding.png" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges"></div></a></figure><p>Linking the toggle button with the isActive field in the User data type using Auto-binding, we can easily control a user&apos;s access to our application. If the toggle button is unchecked, the user no longer has access to the application. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screen-Recording-2022-03-01-at-12.06.50-AM.gif" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2880" height="1650"></figure><p>Now all that is left is to create workflows to</p><ul><li>Prevent the user from logging in if the active field is No</li><li>Logging out the user and navigating them to the login page <br></li></ul><p>We&#x2019;ll create a simple reusable element with required workflows and place this reusable element on each page. Alternatively, if we already have a reusable element on every page, say the header, we can create the workflows in the header element itself. Doing this will save us the trouble of making the workflows again and again on each page.</p><p>I created a reusable element called user_access and made the reusable element a popup. This popup won&#x2019;t be visible to the user, so we can skip creating any visual elements here.</p><p>We create a &#x201C;Do when condition is true&#x201D; to log users out and navigate them to the login page. As you can guess, the conditional statement will be Only when the Current User&#x2019;s isActive is No, go to page login. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screen-Recording-2022-02-28-at-8.08.21-PM.gif" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2880" height="1650"></figure><p>Whichever page we place this reusable element user_acess on will redirect inactive users to the login page.</p><p>We also need to add a condition to the login button on the login page. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.12.34-PM-1.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="1834" height="1104" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-8.12.34-PM-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-8.12.34-PM-1.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-8.12.34-PM-1.png 1600w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.12.34-PM-1.png 1834w" sizes="(min-width: 720px) 720px"></figure><p>In the workflow of the login button, we add another condition: if the isActive field of the user who just logged in is No, the user will be shown an alert and immediately logged out.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.13.52-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="1770" height="1288" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-8.13.52-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-8.13.52-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-8.13.52-PM.png 1600w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.13.52-PM.png 1770w" sizes="(min-width: 720px) 720px"></figure><h3 id="allow-disallow-groups-created-by-users">Allow/disallow groups created by users</h3><p>Users can also create groups and build a small community in our social media application. However, we would like to curate the groups and balance quality and quantity.</p><p>All the created groups are not made public to the application users unless approved by the Admin. The Admin can see the groups with pending approval, and approve or reject the group. </p><p>Doing this is simple in Bubble.io. We simply need a field to store whether a group is approved or not. In the Groups data type, we can create a Yes/No field called isApproved. This field&apos;s value will be No by default, but it will turn to Yes once approved. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-28-at-8.16.35-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2000" height="883" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-28-at-8.16.35-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-28-at-8.16.35-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/02/Screenshot-2022-02-28-at-8.16.35-PM.png 1600w, https://nocodeassistant.com/content/images/size/w2400/2022/02/Screenshot-2022-02-28-at-8.16.35-PM.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>isApproved field to control the group&apos;s visibility</figcaption></figure><p>And wherever we are displaying the list of available groups, we can add a constraint to that repeating group to filter out groups that are not approved. In the repeating group, we can have a constraint to search for Groups where the isApproved field is Yes.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.39.37-PM.png" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="1378" height="664" srcset="https://nocodeassistant.com/content/images/size/w600/2022/02/Screenshot-2022-02-27-at-11.39.37-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/02/Screenshot-2022-02-27-at-11.39.37-PM.png 1000w, https://nocodeassistant.com/content/images/2022/02/Screenshot-2022-02-27-at-11.39.37-PM.png 1378w" sizes="(min-width: 720px) 720px"></figure><p>Back in the Admin dashboard, the repeating group displaying the list of groups pending approvals have a checkbox next to the group&apos;s name and basic details. When the checkbox is checked, a workflow should trigger to update the isApproved field as Yes.</p><p>We&#x2019;ll create a new workflow that triggers automatically when an input&#x2019;s value is changed. Click on Add a new event in the workflows - Elements - An input&#x2019;s value is changed. Now select the checkbox as the element to watch. We&#x2019;ll add an action to make changes to the current cell&#x2019;s Group. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/02/Screen-Recording-2022-03-01-at-2.36.17-AM.gif" class="kg-image" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges" loading="lazy" width="2880" height="1650"></figure><p>We will select <em>Make changes to a thing</em>, and the thing to Thing to change will be the Current cell&#x2019;s Group.</p><p>Now the Admin can approve or reject groups created by users and curate the available groups.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/restrict-page-access-using-user-roles/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Paywall and page level user access restriction in Bubble.io</div><div class="kg-bookmark-description">You can easily paywall pages or restrict access to certain users. For free in just 5 minutes</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/Paywall-and-page-level-access-restriction.png" alt="How To Create An Admin Role in Bubble &amp; Grant Privileges"></div></a></figure><hr><p>If you need some help with your Bubble app or if you need a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[Easy way to add a dark mode to your Bubble app]]></title><description><![CDATA[In this tutorial, you'll learn how to create a Light and Dark mode for your Bubble app. All in less than 5 mins.]]></description><link>https://nocodeassistant.com/adding-dark-mode-in-your-bubble-app/</link><guid isPermaLink="false">6162a506f470d064c9d50188</guid><category><![CDATA[UI]]></category><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Mon, 11 Oct 2021 19:16:06 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/04/Easy-way-to-add-a-dark-mode-to-your-Bubble-app-Nocode-Tutorials-Nocodeassistant--1-.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/04/Easy-way-to-add-a-dark-mode-to-your-Bubble-app-Nocode-Tutorials-Nocodeassistant--1-.png" alt="Easy way to add a dark mode to your Bubble app"><p>In this tutorial, you&apos;ll learn how to create a Light and Dark mode for your Bubble app. With a few conditional statements in your Bubble application, you can make it more sophisticated and user-friendly.</p><p>To enable dark mode in your Bubble app, you will need the following:</p><ol><li>Toggle button to switch between the two themes</li><li>Custom state to save the selected theme choice</li><li>Conditional statements on the visual elements</li></ol><p>In the end, we will learn how to store the theme preference in the database and apply the styling changes directly to the element styles. It is a faster way to do things compared to using custom states.</p><h3 id="toggle-button-to-allow-switching">Toggle button to allow switching</h3><p>You can install the Ionic elements plugin if you don&apos;t have it in your Bubble app. This plugin will let you place a toggle button in your app.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2021/10/Toggle-button-in-Bubble.io-NocodeAssistant-Bubble-tutorials.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="564" height="214"><figcaption>Place Ionic Toggle in your app</figcaption></figure><p>Once you have installed it, you can place the toggle button anywhere. The profile section is a good place for users to choose their preferences.<br><br>I&apos;ll leave the Preset status of this toggle unchecked, but you can check it if you like.</p><h3 id="saving-the-user-s-theme-choice">Saving the user&apos;s theme choice</h3><p>We&apos;ll use a custom state to keep track of the theme. We only need a simple Yes/No type custom state.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/10/Custom-state-in-Bubble.io-NocodeAssistant-Bubble-tutorials.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1474" height="752" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/Custom-state-in-Bubble.io-NocodeAssistant-Bubble-tutorials.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/Custom-state-in-Bubble.io-NocodeAssistant-Bubble-tutorials.png 1000w, https://nocodeassistant.com/content/images/2021/10/Custom-state-in-Bubble.io-NocodeAssistant-Bubble-tutorials.png 1474w" sizes="(min-width: 720px) 720px"></figure><p>You can create a custom text or number state, but you&apos;ll need more complex conditional statements.<br><br>We&apos;ll use the Toggle button to change the custom state. Having a custom state of Yes/No will help us because we need only one workflow to update it.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/10/Toggle-custom-state-bubble.io-nocodeassistant-tutorials.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1504" height="780" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/Toggle-custom-state-bubble.io-nocodeassistant-tutorials.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/Toggle-custom-state-bubble.io-nocodeassistant-tutorials.png 1000w, https://nocodeassistant.com/content/images/2021/10/Toggle-custom-state-bubble.io-nocodeassistant-tutorials.png 1504w" sizes="(min-width: 720px) 720px"></figure><p>The value might be confusing at first, but this is the correct way to toggle a Yes/no custom state. The custom state value will change to Yes if the current value is No, and vice versa.</p><p>You can also store the value in the database at this point. I&apos;ll go into more detail on this below.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.07.02-PM.png" width="1792" height="1386" loading="lazy" alt="Easy way to add a dark mode to your Bubble app" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-12-at-1.07.02-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-12-at-1.07.02-PM.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/05/Screenshot-2022-05-12-at-1.07.02-PM.png 1600w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.07.02-PM.png 1792w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.06.06-PM-1.png" width="1964" height="980" loading="lazy" alt="Easy way to add a dark mode to your Bubble app" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-12-at-1.06.06-PM-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-12-at-1.06.06-PM-1.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/05/Screenshot-2022-05-12-at-1.06.06-PM-1.png 1600w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.06.06-PM-1.png 1964w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption>Storing the toggle value in the database</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/custom-states-in-bubble/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Using custom states in Bubble</div><div class="kg-bookmark-description">Custom state is the one of the most powerful features of Bubble. And many Bubble beginners struggle to use them.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=dfec48dd9a" alt="Easy way to add a dark mode to your Bubble app"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/Custom-States-101.png" alt="Easy way to add a dark mode to your Bubble app"></div></a></figure><h3 id="changing-the-colour-of-visual-elements">Changing the colour of visual elements</h3><p>The last step is to change the colour of the visual elements. </p><p>I&apos;ve created a text, a group and a button to help you understand. The conditions remain the same to use this on all sorts of elements. </p><p>For example, we can change the font colour.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2021/10/change-color-in-dark-mode-in-bubble.io-application-nocodeassistant.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1816" height="594" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/change-color-in-dark-mode-in-bubble.io-application-nocodeassistant.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/change-color-in-dark-mode-in-bubble.io-application-nocodeassistant.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2021/10/change-color-in-dark-mode-in-bubble.io-application-nocodeassistant.png 1600w, https://nocodeassistant.com/content/images/2021/10/change-color-in-dark-mode-in-bubble.io-application-nocodeassistant.png 1816w" sizes="(min-width: 720px) 720px"><figcaption>Conditional statement to change the font colour</figcaption></figure><p>The conditional statement will need to check if the custom state value is Yes. If Yes, the font will be white. Otherwise, the text will be the same colour as the Style attached.</p><p>We can also change the Group&apos;s background colour.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials-1.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1496" height="830" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials-1.png 1000w, https://nocodeassistant.com/content/images/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials-1.png 1496w" sizes="(min-width: 720px) 720px"></figure><p>Finally, we want to change the background colour of the entire page. We&apos;ll use the same conditional statement to change the background colour.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1594" height="884" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials.png 1000w, https://nocodeassistant.com/content/images/2021/10/dark-mode-in-bubble.io-app-nocodeassistant-tutorials.png 1594w" sizes="(min-width: 720px) 720px"></figure><h3 id="can-we-store-the-user-s-theme-selection-in-the-database">Can we store the user&apos;s theme selection in the database?</h3><p>Absolutely. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.07.02-PM-1.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1792" height="1386" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-12-at-1.07.02-PM-1.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-12-at-1.07.02-PM-1.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2022/05/Screenshot-2022-05-12-at-1.07.02-PM-1.png 1600w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-1.07.02-PM-1.png 1792w" sizes="(min-width: 720px) 720px"></figure><p>You can create a Yes/No field in the User table to store user preferences and modify the conditional statement. Instead of the custom state, you&apos;ll check this field to update the element styling.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-12.37.09-PM.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1376" height="800" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-12-at-12.37.09-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-12-at-12.37.09-PM.png 1000w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-12-at-12.37.09-PM.png 1376w" sizes="(min-width: 720px) 720px"><figcaption>Fetching user preferences from the database</figcaption></figure><p>Just make sure that if you&apos;re saving the choice, the <em>Preset status</em> of the Toggle will be Dynamic to pull the value from the database. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2021/10/Screenshot-2021-10-12-at-12.41.24-AM.png" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="1048" height="666" srcset="https://nocodeassistant.com/content/images/size/w600/2021/10/Screenshot-2021-10-12-at-12.41.24-AM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/10/Screenshot-2021-10-12-at-12.41.24-AM.png 1000w, https://nocodeassistant.com/content/images/2021/10/Screenshot-2021-10-12-at-12.41.24-AM.png 1048w" sizes="(min-width: 720px) 720px"><figcaption>Dynamic toggle value</figcaption></figure><h3 id="can-we-apply-the-conditional-statements-directly-to-the-element-styles">Can we apply the conditional statements directly to the element styles?</h3><p>Absolutely.</p><ol><li>Go to the Styles section.</li><li>Select the element.</li><li>Click on Conditional.</li><li>Add the condition and the changes you&apos;d like.</li></ol><p>Adding conditional statements to the Style will save you time and keep your app organised. </p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/05/Dark-mode-in-Styles.gif" class="kg-image" alt="Easy way to add a dark mode to your Bubble app" loading="lazy" width="960" height="540"></figure><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Ensure that the theme preference value is accessible from the User table and assign Styles to all the elements you want to change.</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/5-common-mistakes-to-avoid-when-building-no-code-apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">5 common mistakes to avoid when building with Bubble</div><div class="kg-bookmark-description">Are you building with Bubble.io? Avoid these 5 common mistakes when building your Bubble.io app.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Easy way to add a dark mode to your Bubble app"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2023/03/5-mistakes-to-avoid-when-building-with-bubble.io.png" alt="Easy way to add a dark mode to your Bubble app"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/what-are-bubble-templates/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">What are Bubble templates and why should you care?</div><div class="kg-bookmark-description">When building Bubble apps, you might feel overwhelmed with the work needed. One way to save time and resources is with templates. However, using a template may not be the best choice for everyone.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=dfec48dd9a" alt="Easy way to add a dark mode to your Bubble app"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Design-6--1-.webp" alt="Easy way to add a dark mode to your Bubble app"></div></a></figure><hr><p>Editor - <a href="https://bubble.io/page?type=page&amp;name=light_dark_theme&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1">https://bubble.io/page?type=page&amp;name=light_dark_theme&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1</a></p><p>Preview - <a href="https://nocodeassistant-tutorials.bubbleapps.io/version-test/light_dark_theme">https://nocodeassistant-tutorials.bubbleapps.io/version-test/light_dark_theme</a></p><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[Opening a popup on page load in Bubble]]></title><description><![CDATA[A nice tip on how to show a popup when a user lands on a specific page. You can customize popups based on where the visitor is. For instance, you can show a payment alert if someone lands on a page which mentions pricing or make them fill out an email form if they land on the landing page.]]></description><link>https://nocodeassistant.com/opening-a-popup-on-page-load/</link><guid isPermaLink="false">6150258bf470d064c9d500e9</guid><category><![CDATA[Workflows]]></category><category><![CDATA[UI]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Sun, 26 Sep 2021 08:48:50 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2021/09/Opening-a-popup-on-page-load-in-Bubble.io-NocodeAssistant.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2021/09/Opening-a-popup-on-page-load-in-Bubble.io-NocodeAssistant.png" alt="Opening a popup on page load in Bubble"><p>URL parameters are a great way to open different popups after the page has loaded. </p><p>This could be to show an image, display a message, video or popup etc. You can use URL parameters to do A/B testing and schedule email broadcasts. </p><p>If you&apos;re interested in using URL parameters, then keep reading this short tutorial.</p><p>Say a visitor lands on a specific page and you want to show a popup with a payment alert or a message from the admin. In this Bubble tutorial, I will go over how you can create a workflow which will show a popup on landing on a specific page.</p><h3 id="url-parameter-and-key">URL parameter and key</h3><p>We need to decide a URL parameter that we&apos;ll be passing. Bubble will check the URL for this parameter, and if found, will trigger a workflow. I&apos;ve named my parameter as <em>open </em>and the key will be <em>yes</em>.</p><p>You can keep anything as the parameter name and the key. It&apos;s upto you. Here&apos;s a guide that&apos;ll get you up to speed on URL parameters.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/how-to-use-parameters-in-bubble-io/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to use URL parameters in Bubble.io</div><div class="kg-bookmark-description">You can use URL parameters to pass information between pages and trigger workflows in Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/favicon.png" alt="Opening a popup on page load in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/Using-URL-Parameters-in-bubble.png" alt="Opening a popup on page load in Bubble"></div></a></figure><h3 id="triggering-the-workflow">Triggering the workflow</h3><p>To trigger the workflow everytime a user lands on the page, we&apos;ll be using the &quot;Page is loaded&quot; event.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-1.png" class="kg-image" alt="Opening a popup on page load in Bubble" loading="lazy" width="930" height="726" srcset="https://nocodeassistant.com/content/images/size/w600/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-1.png 600w, https://nocodeassistant.com/content/images/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-1.png 930w" sizes="(min-width: 720px) 720px"></figure><p> This workflow will be triggered everywhere the page is loaded or refreshed. </p><p>Next, we need to put a condition on this workflow as we want it to be triggered only when the URL contains our selected parameter.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-2.png" class="kg-image" alt="Opening a popup on page load in Bubble" loading="lazy" width="2000" height="632" srcset="https://nocodeassistant.com/content/images/size/w600/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-2.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-2.png 1000w, https://nocodeassistant.com/content/images/size/w1600/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-2.png 1600w, https://nocodeassistant.com/content/images/2021/09/Popup-on-page-load-in-Bubble.io-app-NocodeAssistant-Bubble-tutorials-2.png 2024w" sizes="(min-width: 720px) 720px"></figure><p>Now unless the URL has this parameter, this workflow will not run. We could&apos;ve defined this condition at the Step level as well rather than the workflow level, but it is always better to have different workflow for different scenarios.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2021/09/Screenshot-2021-09-26-at-1.53.13-PM.png" class="kg-image" alt="Opening a popup on page load in Bubble" loading="lazy" width="1014" height="540" srcset="https://nocodeassistant.com/content/images/size/w600/2021/09/Screenshot-2021-09-26-at-1.53.13-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2021/09/Screenshot-2021-09-26-at-1.53.13-PM.png 1000w, https://nocodeassistant.com/content/images/2021/09/Screenshot-2021-09-26-at-1.53.13-PM.png 1014w" sizes="(min-width: 720px) 720px"></figure><h3 id="what-if-we-remove-this-parameter-from-the-url">What if we remove this parameter from the URL?</h3><p>If you remove this parameter from the URL, either manually or using some workflow, the popup will not open. As the <em>Only when</em> condition that we&apos;ve defined at the workflow level will not get fulfilled, all the steps in that workflow will be disregarded. </p><h3 id="how-to-remove-the-url-parameter-using-workflows">How to remove the URL parameter using workflows?</h3><p>Let&apos;s say that you ask the user to fill in some information in the popup and press a button to save it to the database. </p><p>You can add another step in the workflow where you&apos;re saving the data to your database. That step will be to simply take the user to the same page where they are currently, but without sending this parameter.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/how-to-use-parameters-in-bubble-io/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to use URL parameters in Bubble.io</div><div class="kg-bookmark-description">You can use URL parameters to pass information between pages and trigger workflows in Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/favicon.png" alt="Opening a popup on page load in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/Using-URL-Parameters-in-bubble.png" alt="Opening a popup on page load in Bubble"></div></a></figure><hr><p>Editor - <a href="https://bubble.io/page?type=page&amp;name=url_param_popup&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1">https://bubble.io/page?type=page&amp;name=url_param_popup&amp;id=nocodeassistant-tutorials&amp;tab=tabs-1</a></p><p>Preview - <a href="https://nocodeassistant-tutorials.bubbleapps.io/version-test/url_param_popup?open=yes">https://nocodeassistant-tutorials.bubbleapps.io/version-test/url_param_popup?open=yes</a></p><hr><p>If you need some help with your Bubble app or if you need a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item><item><title><![CDATA[Complete guide to Operations on List in Bubble]]></title><description><![CDATA[In this short Bubble tutorial, we'll teach you how to work with lists. The two aspects of them: creating and manipulating. ]]></description><link>https://nocodeassistant.com/operations-on-a-list/</link><guid isPermaLink="false">6132352bf470d064c9d4ffed</guid><category><![CDATA[General Tips]]></category><dc:creator><![CDATA[Himanshu Sharma]]></dc:creator><pubDate>Sun, 19 Sep 2021 19:31:07 GMT</pubDate><media:content url="https://nocodeassistant.com/content/images/2022/05/Complete-guide-to-Operations-on-List-in-Bubble.png" medium="image"/><content:encoded><![CDATA[<img src="https://nocodeassistant.com/content/images/2022/05/Complete-guide-to-Operations-on-List-in-Bubble.png" alt="Complete guide to Operations on List in Bubble"><p>Bubble is adaptable. Lists are one of the main reasons why it is so. This Bubble tutorial will teach you how to work with lists.</p><p>The two main aspects of them are creating and manipulating.</p><p>First, let&apos;s understand what lists are in Bubble, how we can use them and when we should avoid them (according to Bubble&apos;s co-founder Josh). We&apos;ll then see how we can create a list and manipulate them. </p><h3 id="what-are-lists-in-bubble">What are lists in Bubble?</h3><p>Lists are just what the name implies. A list of &apos;items&apos;. They can be empty, have one entry, or have multiple entries.</p><p>In layman&apos;s terms, they are just lists of values.</p><p>So if your field&apos;s type is &apos;text&apos;, they can contain multiple text values - &apos;apple&apos;, &apos;banana&apos;, and &apos;cherry&apos;. But they can also be empty. Lists can also be a list of numbers, images, files, dates etc.</p><h3 id="what-can-you-store-in-lists">What can you store in lists?</h3><p>You can store a list of texts, images, files, dates, date ranges, data types, and option sets.</p><p>While they can store a list of items, they are basic. There is no other data stored with them. There is no way to associate more information with any item on the list.</p><p>A more advanced list is created when the field type (so what you would typically have text, number, image) is configured to another data type. It can either be a system one (User - you can have a list of Users who like your Blog Post) or one you created yourself.</p><p>So you can create a list of entries in another table/thing. You can add/remove/clear the list just as you can with text values.</p><h3 id="when-should-you-avoid-lists-in-bubble">When should you avoid lists in Bubble?</h3><p>Lists are helpful in Bubble. However, you need to consider the use case of the list you create.</p><p>A list is helpful when the number of items in the list won&apos;t be large. According to Bubble&apos;s co-founder, Josh</p><!--kg-card-begin: markdown--><blockquote>
<p>If your list is short &#x2013; you know you&apos;ll never have more than 20 - 30 invoices per company, for instance &#x2013; then yes, using a list will load a little faster. However, ... the list will start slowing things down once the total number of invoices goes beyond the number you actually want to display at any one time.</p>
</blockquote>
<!--kg-card-end: markdown--><p>So use lists only when you know the list size will be small. To build a functionality similar to wishlists, likes, retweets etc., where the number of items can be thousands, use a different data type.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/list-or-searches-which-is-faster-in-bubble/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">List or Searches - Which is faster in Bubble.io?</div><div class="kg-bookmark-description">Is it quicker to fetch data from lists or searches? It depends on a few factors, and no one approach will work in all scenarios.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Complete guide to Operations on List in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/07/List-is-faster-or-search-in-Bubble.png" alt="Complete guide to Operations on List in Bubble"></div></a></figure><h3 id="how-to-create-a-list-in-bubble">How to create a list in Bubble?</h3><p>There are two ways you can create a list in Bubble</p><ol><li>List in a custom state</li><li>List in a data type</li></ol><p>Typically we use a list in a custom state for temporary purposes. It is not stored in the database, and the value is erased when you refresh the page. Everyday use cases are for calculations, selection of items etc.</p><p>To create a list in a custom state, we need to select an element (preferably the page itself) - and create a custom state on the page. Just check the &apos;This state is a list&apos; checkbox.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/05/create-a-list-custom-state-in-Bubble-Nocodeassistant-Bubble-tutorials-1.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="588"></figure><p>A list created in a data type is stored in the database. We keep this list in a data type as a field, and to make changes to the list, we use workflows.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/05/create-a-list-in-database-in-Bubble-Nocodeassistant-Bubble-tutorials-1.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="588"></figure><h3 id="common-bubble-operators-with-lists">Common Bubble operators with lists</h3><ul><li>:plus item - This operation adds an item to a list of things. It returns a new list with the original list plus the new item appended to the end. The new item will be skipped if it is already on the list.</li><li>:minus item - This removes an item from a list of things. It returns an updated list with the original list removed from the list. It will be ignored if the new item is not on the list.</li><li>:first item - Returns a single item from the list of items. The returned item is the first item on the list.</li><li>:last item - Returns a single item from the list of items. The returned item is the last item on the list.</li><li>:random item - Returns a single item from the list of items. The returned item is any random item on the list. The randomness is not guaranteed.</li><li>:count - Returns the total number of items in the list.</li><li>:item # - Returns a single item from the list of items. The returned item is the # item on the list.</li><li>set list - Overwrites the current list with the new list. The new list of things should be of the same type.</li><li>add list - Adds all the new list entries to the existing list. If an item is already on the list, it will not be added again.</li><li>remove list - Returns the current list after eliminating any items common to the current list and the provided list.</li><li>clear list - Deletes the current list and replaces it with an empty list.</li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text">The process of performing CRUD (Create Read Update Delete) actions on a list in a custom state is slightly different than when the list is in a data type.</div></div><h3 id="setup">Setup</h3><p>I have created a repeating group for this tutorial. The repeating group is fetching a list of Users and there are two buttons - Add and Remove.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/how-to-display-a-list-in-a-repeating-group-in-bubble-io/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to display a list in a Repeating Group in Bubble.io</div><div class="kg-bookmark-description">Displaying a list of texts in a RG is tricky, but it is easy once you understand how RGs work.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/favicon.png" alt="Complete guide to Operations on List in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/06/How-to-display-a-list-in-repeating-groups.png" alt="Complete guide to Operations on List in Bubble"></div></a></figure><p>I want to store the list in a custom state called selected_users with a Type of content of User.</p><p>There is also a field named selected_users in the User table which stores a list of Users.</p><figure class="kg-card kg-image-card"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-04-at-8.36.02-PM.png" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="1376" height="648" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-04-at-8.36.02-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-04-at-8.36.02-PM.png 1000w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-04-at-8.36.02-PM.png 1376w" sizes="(min-width: 720px) 720px"></figure><h3 id="add-a-single-entry-to-a-list">Add a single entry to a list</h3><p>The simplest workflow. To add an item to a list, we need to use either the <u>:plus item</u> or the <u>add</u> operator.</p><p>I have created a repeating group for this tutorial. The repeating group is fetching a list of Users, and there are two buttons - Add and Remove.</p><p>You can use any other method to refer to an item you want to add to the list.</p><p><strong>Custom state</strong></p><ol><li>Select the trigger and create a new workflow.</li><li>Go to Element actions - Set state.</li><li>Choose the element where the custom state has been created and select the custom state.</li><li>Put the value as the custom state&apos;s value: plus item the value that you want to add.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Adding-an-item-to-a-list-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="522"><figcaption>Adding an item to a list in a custom state</figcaption></figure><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">You will not be able to put the value as Current cell&apos;s User. You want to add a value to the current list, even if it&apos;s empty. So you&apos;ll need to first select the custom state value and then add the item that you want to add.&#xA0;</div></div><p><strong>Database</strong></p><p>To save an item to a list stored in the database, the operator changes from :plus item to add. </p><p>Assuming that there is an existing record in the User table where we can store a list of Users, the workflow will be </p><ol><li>Select the record that you want to update.</li><li>Choose the field where the list is stored.</li><li>Put the value of the field as - add the record that you want to add.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Adding-an-item-to-a-list-in-database-Bubble.io-tutorial.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Adding an item to a list in the database</figcaption></figure><h3 id="remove-a-single-entry-from-a-list">Remove a single entry from a list</h3><p>To remove an item from a list, we need to use either the <u>:minus item</u> or the <u>remove</u> operator.</p><p>I am using the same setup that I used in the example above. The repeating group fetches a list of Users, and there are two buttons - Add and Remove.</p><p>You can use any other method to refer to an item you want to add to the list.</p><p><strong>Custom state</strong></p><ol><li>Select the trigger and create a new workflow.</li><li>Go to Element actions - Set state.</li><li>Choose the element where the custom state has been created and select the custom state.</li><li>Put the value as the custom state&apos;s value: minus item the value that you want to remove.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Remove-an-item-to-a-list-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Remove an item from a list in a custom state</figcaption></figure><p><strong>Database</strong></p><p>To remove an item from a list stored in the database, the operator changes from :minus item to remove.</p><p>Assuming that there is an existing record in the User table where we can store a list of Users, the workflow will be</p><ol><li>Select the record that you want to update.</li><li>Choose the field where the list is stored.</li><li>Put the value of the field as - remove the record that you want to add.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Remove-an-item-from-a-list-in-database.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Remove an item from a list in the database</figcaption></figure><h3 id="add-a-list-of-items-to-a-list">Add a list of items to a list</h3><p>We have a repeating group that displays a list of users. We want to add all the repeating group&apos;s users to a list which may or may not have any existing users.</p><p>The Bubble operator we will use for this operation will be <u>merged with</u> or <u>add list</u>.</p><p><strong>Custom state</strong></p><ol><li>Select the trigger and create a new workflow.</li><li>Go to Element actions - Set state.</li><li>Choose the element where the custom state is created and select the custom state.</li><li>Put the value as the custom state&apos;s value: merged with the list that you want to add.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Add-a-list-of-item-to-a-list-in-custom-state-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Adding a list of items to a list in a custom state</figcaption></figure><p>As we want to add the entire repeating group&apos;s value to the custom state list, the value will be the custom state&apos;s value merged with the repeating group list of Users.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The merged with operator will not allow any duplicates. If your custom state list value is [himanshu, mike, joe] and your repeating group list is [sarah, sam, joe], the final value in the merged list will be [himanshu, mike, joe, sarah, sam].</div></div><p><strong>Database</strong></p><p>To add a list of items to a list stored in the database, the operator changes from merged with to add list.</p><p>Assuming that there is an existing record in the User table where we can store a list of Users, the workflow will be</p><ol><li>Select the record that you want to update.</li><li>Choose the field where the list is stored. In this case, the repeating group&apos;s value.</li><li>Put the value of the field as - add list the list that you want to add.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Add-a-list-of-items-to-a-list-in-database-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Adding a list of items to a list in the database</figcaption></figure><h3 id="remove-a-list-of-items-from-a-list">Remove a list of items from a list</h3><p>We have a repeating group that displays a list of users. We want to remove all the repeating group&apos;s users from a list which may or may not have any existing users.</p><p>The Bubble operator we will use for this operation will be :<u>minus list</u> or <u>remove list</u>.</p><p><strong>Custom state</strong></p><ol><li>Select the trigger and create a new workflow.</li><li>Go to Element actions - Set state.</li><li>Choose the element where the custom state is created and select the custom state.</li><li>Put the value as the custom state&apos;s value: minus list with the list that you want to remove.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Remove-a-list-of-items-from-a-list-in-custom-state-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Removing a list of items to a list in a custom state</figcaption></figure><p>As we want to add the entire repeating group&apos;s value to the custom state list, the value will be the custom state&apos;s value :minus list of the repeating group list of Users.</p><p><strong>Database</strong></p><p>To remove a list of items to a list stored in the database, the operator changes from :minus list with to remove list.</p><p>Assuming that there is an existing record in the User table where we can store a list of Users, the workflow will be</p><ol><li>Select the record that you want to update.</li><li>Choose the field where the list is stored. In this case, the repeating group&apos;s value.</li><li>Put the value of the field as - remove list the list that you want to remove.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Remove-a-list-of-items-from-a-list-in-database-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Removing a list of items from a list in the database</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/how-to-sort-repeating-group/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beginner&#x2019;s guide to sorting in a Repeating Group in Bubble.io</div><div class="kg-bookmark-description">In this Bubble.io tutorial, we&#x2019;ll learn how to sort the results in your repeating group. You can sort items in ascending order or descending order.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=5f328566d5" alt="Complete guide to Operations on List in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2021/09/Employee-Onboarding-2-1.png" alt="Complete guide to Operations on List in Bubble"></div></a></figure><h3 id="joining-two-lists-together-in-bubble">Joining two lists together in Bubble?</h3><p>You can join two lists together, provided they are of the same type (Users, text, numbers etc). </p><p>Say we have a list of Users whose Status field is Inactive and another list of Users whose Status field is Dormant. We want to merge these two lists together and display the result in a repeating group.</p><p>You might think that it&apos;s easy.</p><p> I&apos;ll put two constraints in the data source of the repeating group. Unfortunately, that won&apos;t work. The constraints work as AND and not OR. So the result of such a search will be empty as there won&apos;t be any Users with both the Status options.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-05-at-1.45.58-PM.png" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="1348" height="826" srcset="https://nocodeassistant.com/content/images/size/w600/2022/05/Screenshot-2022-05-05-at-1.45.58-PM.png 600w, https://nocodeassistant.com/content/images/size/w1000/2022/05/Screenshot-2022-05-05-at-1.45.58-PM.png 1000w, https://nocodeassistant.com/content/images/2022/05/Screenshot-2022-05-05-at-1.45.58-PM.png 1348w" sizes="(min-width: 720px) 720px"><figcaption>Incorrect method</figcaption></figure><p>The solution is to use the <u>merged with</u> operator.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nocodeassistant.com/content/images/2022/05/Merge-two-lists-in-Bubble.io.gif" class="kg-image" alt="Complete guide to Operations on List in Bubble" loading="lazy" width="960" height="635"><figcaption>Correct method to merge two lists</figcaption></figure><p>The merged with operator will allow us to define the constraints on the same field twice. This will function as a OR search instead of AND.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nocodeassistant.com/complete-bubble-review/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Honest Bubble.io Review - the most user-friendly and powerful app builder?</div><div class="kg-bookmark-description">Bubble is an amazing platform to build your business. It&#x2019;s easy to use and can be up and running in a very short time. However, there are some limitations to what Bubble can do. Get an honest review of the pros and cons of Bubble.io.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nocodeassistant.com/assets/icon-192x192.png?v=81ada7c7fc" alt="Complete guide to Operations on List in Bubble"><span class="kg-bookmark-author">NocodeAssistant</span><span class="kg-bookmark-publisher">Himanshu Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nocodeassistant.com/content/images/2022/04/Bubble.io-Review-NocodeAssistant-Nocode-tutorials-and-tips.png" alt="Complete guide to Operations on List in Bubble"></div></a></figure><hr><p>If you need some help with your Bubble app or a team of Bubble developers to build a Bubble app for you, reach out to me at himanshu@nocodeassistant.com. You can also follow me on <a href="https://twitter.com/Heman_shu">Twitter</a>.</p>]]></content:encoded></item></channel></rss>