<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Raju Gangitla</title>
    <description>The latest articles on DEV Community by Raju Gangitla (@raju_gangitla_91920e1427f).</description>
    <link>https://dev.to/raju_gangitla_91920e1427f</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2062737%2F2732c2bb-2c78-4089-9a34-14f78631018a.png</url>
      <title>DEV Community: Raju Gangitla</title>
      <link>https://dev.to/raju_gangitla_91920e1427f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raju_gangitla_91920e1427f"/>
    <language>en</language>
    <item>
      <title>Automating People Data Sync: n8n Workflow for Twenty CRM and Google Sheets 🚀</title>
      <dc:creator>Raju Gangitla</dc:creator>
      <pubDate>Thu, 31 Oct 2024 09:19:25 +0000</pubDate>
      <link>https://dev.to/raju_gangitla_91920e1427f/automating-people-data-sync-n8n-workflow-for-twenty-crm-and-google-sheets-5789</link>
      <guid>https://dev.to/raju_gangitla_91920e1427f/automating-people-data-sync-n8n-workflow-for-twenty-crm-and-google-sheets-5789</guid>
      <description>&lt;p&gt;Did you know that keeping your data in sync can boost your team's efficiency? In this article, we'll show you how to create an &lt;strong&gt;n8n workflow that automatically adds, updates, and deletes people&lt;/strong&gt; data in &lt;strong&gt;Google Sheets&lt;/strong&gt; whenever changes happen in the &lt;a href="https://twenty.com/" rel="noopener noreferrer"&gt;Twenty CRM&lt;/a&gt; dashboard. Let’s dive in!&lt;/p&gt;

&lt;h2&gt;
  
  
  TL:DR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Set Up n8n&lt;/strong&gt;: Create an account and configure your n8n environment.&lt;br&gt;
&lt;strong&gt;2. Connect to Twenty&lt;/strong&gt;: Use the Twenty API to integrate with n8n.&lt;br&gt;
&lt;strong&gt;3. Configure Google Sheets&lt;/strong&gt;: Set up your Google Sheets connection in n8n.&lt;br&gt;
&lt;strong&gt;4. Create Workflow&lt;/strong&gt;: Build a workflow to automatically add, update, and delete people data.&lt;br&gt;
&lt;strong&gt;5. Test Your Workflow&lt;/strong&gt;: Ensure it functions correctly with real-time changes from the Twenty dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xfr0zcnavs1fd2rkncs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xfr0zcnavs1fd2rkncs.gif" alt="Excited gif" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Twenty CRM: Your Open-Source CRM Solution 🚀
&lt;/h2&gt;

&lt;p&gt;Meet &lt;strong&gt;Twenty CRM&lt;/strong&gt;! This powerful, open-source tool helps you manage customer relationships with ease, giving you &lt;strong&gt;control over your data and customization&lt;/strong&gt;. If you’re a fan of open-source solutions, give it a try and &lt;a href="https://github.com/twentyhq/twenty" rel="noopener noreferrer"&gt;show some support with a ⭐!&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Set Up n8n
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.📝Create an n8n Account:&lt;/strong&gt; Sign up for a free account at &lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;n8n.io&lt;/a&gt; and choose your hosting option (cloud or self-hosted).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.🔍Familiarize Yourself with the Interface:&lt;/strong&gt; Explore the n8n dashboard, focusing on the nodes panel for integrations and the workflow area for building your automation.&lt;/p&gt;

&lt;p&gt;After SignIn, you will see the below page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkx4x69zsib8zk38ywko.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkx4x69zsib8zk38ywko.png" alt="Image description" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create Your Workflow by Adding a Webhook Node
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Webhook Node in n8n&lt;/strong&gt;: Showing where to add a Webhook node and set it to POST&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a088cseuatot5gjatgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a088cseuatot5gjatgo.png" alt="Select event" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2. Adding Webhook URL in Twenty CRM:&lt;/strong&gt; Add thr Webhook url in the Twenty CRM dashbaord&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Testing Webhook Response:&lt;/strong&gt; Show the successful webhook response in n8n after creating a test entry in Twenty CRM&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx5wyr9fzz9bgjh1vbmdd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx5wyr9fzz9bgjh1vbmdd.png" alt="testing" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add Google Sheets and Switch Nodes for CRUD Operations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add a Switch Node&lt;/strong&gt;: Attach a Switch node to the Webhook node and set up routing rules for Create, Update, and Delete events, using the webhook payload to define conditions for each.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5lrodivrag2vnqxumz1.png" alt="switch" width="800" height="346"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Google Sheets Node:&lt;/strong&gt;Add a Google Sheets node and connect it to the Create and Update routes from the Switch node. Choose &lt;strong&gt;Add or Update&lt;/strong&gt; Row in Google Sheets and enter your credentials.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Map Data to Google Sheets:&lt;/strong&gt; Select your Google Sheet and map the fields from the webhook data to the sheet’s columns for both &lt;strong&gt;Create and Update&lt;/strong&gt; actions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xsdaufuweq7x9ouc297.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xsdaufuweq7x9ouc297.png" alt="Credentials" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Handle Delete Events:&lt;/strong&gt; Add a Google Sheets node for deletions and set it to &lt;strong&gt;Get Rows&lt;/strong&gt;. Configure a filter condition to identify rows for deletion based on a unique field. Pass this output to another Google sheet node where it will &lt;strong&gt;delete the row by index&lt;/strong&gt; (that we got in previous node)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzaked5d5jemlxgk7zpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzaked5d5jemlxgk7zpc.png" alt="Delete Events" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Test your Workflow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Activate Listening Mode:&lt;/strong&gt; In n8n, click Listen for Test Event on the Webhook node to enable real-time data capture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger Events in Twenty CRM:&lt;/strong&gt; Go to your Twenty CRM dashboard and create, update, or delete a person to trigger events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify Data in Google Sheets:&lt;/strong&gt; After each action in Twenty CRM, check the Google Sheet to confirm that the data has been added, updated, or deleted as expected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwdsl2ohx7xgvjh9is14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwdsl2ohx7xgvjh9is14.png" alt="Test your Workflow" width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting Tips:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;After completing your testing, switch to the &lt;strong&gt;production webhook URL&lt;/strong&gt; in the Twenty CRM dashboard to ensure live data flows correctly.&lt;/li&gt;
&lt;li&gt;Once configured, set your workflow to &lt;strong&gt;active&lt;/strong&gt; in n8n to see it in action in real-time!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf37y7fgaot14y4zojzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf37y7fgaot14y4zojzs.png" alt="Troubleshooting" width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You’ve successfully integrated &lt;strong&gt;Twenty CRM&lt;/strong&gt; with &lt;strong&gt;Google Sheets&lt;/strong&gt; using n8n, automating your data management. Enjoy streamlined processes and improved efficiency as you focus on growing your business!&lt;/p&gt;

&lt;p&gt;If you have any doubt or you stuck somewhere feel free to drop a comment &lt;/p&gt;

</description>
      <category>productivity</category>
      <category>automation</category>
      <category>opensource</category>
      <category>crm</category>
    </item>
    <item>
      <title>Working by Day, Hacking by Night: My oss.gg Hackathon Experience</title>
      <dc:creator>Raju Gangitla</dc:creator>
      <pubDate>Thu, 31 Oct 2024 03:59:24 +0000</pubDate>
      <link>https://dev.to/raju_gangitla_91920e1427f/working-by-day-hacking-by-night-my-ossgg-hackathon-experience-381c</link>
      <guid>https://dev.to/raju_gangitla_91920e1427f/working-by-day-hacking-by-night-my-ossgg-hackathon-experience-381c</guid>
      <description>&lt;p&gt;October was here, and that meant &lt;strong&gt;Hacktoberfest&lt;/strong&gt; was in full swing! This year, I stumbled upon a hackathon that took open-source contributions to the next level: &lt;strong&gt;oss.gg&lt;/strong&gt;. It was an exciting twist on the usual coding grind, especially with amazing prizes up for grabs, including the &lt;strong&gt;M3 MacBook&lt;/strong&gt; I’d been dreaming about! Balancing my day job and a flurry of issues and pull requests, I eagerly jumped into the Hacktoberfest adventure.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Started 🚀
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmlqpzd4w2ovhbyin4qfa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmlqpzd4w2ovhbyin4qfa.png" alt="Hacktoberfest" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last year was my intro to &lt;strong&gt;Hacktoberfest&lt;/strong&gt; and open source—totally uncharted territory. I signed up, browsed some repos, and found a few issues… but contributing? Yeah, that was harder than it looked! Still, I managed to solve two &lt;strong&gt;good first issues&lt;/strong&gt; after fumbling around a bit. It was a small win, but it lit a fire! I decided right then: next year, I’d be back, better and ready to make a real impact. Time to &lt;strong&gt;level up&lt;/strong&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  My Contributions 🌟
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv220p2q08mixppcc5dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv220p2q08mixppcc5dn.png" alt="Image description" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This year, I was ready to tackle Hacktoberfest head-on! Armed with determination and a bit of caffeine, I &lt;strong&gt;set up my projects locally all on my own—talk&lt;/strong&gt; about a win! Here’s what I contributed to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Formbricks&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dub&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Papermark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unkey&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I dove straight into an exciting issue: &lt;code&gt;implementing a templates page&lt;/code&gt; in Formbricks. It took me three days of coding magic, and guess what? I solved it all by myself—no &lt;code&gt;questions asked!&lt;/code&gt; 🎩✨ The maintainer was super impressed, and it felt like the perfect kick-off to my Hacktoberfest adventure! Let the coding fun begin!&lt;/p&gt;

&lt;p&gt;After diving into &lt;strong&gt;Hacktoberfest&lt;/strong&gt;, my contributions skyrocketed! 🚀 Check out my stats:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dub&lt;/strong&gt;: 3 contributions 🎶&lt;br&gt;
&lt;strong&gt;Papermark&lt;/strong&gt;: 3 contributions 📄&lt;br&gt;
&lt;strong&gt;Formbricks&lt;/strong&gt;: 5 contributions 📦&lt;br&gt;
&lt;strong&gt;Unkey&lt;/strong&gt;: 4 contributions 🔑&lt;br&gt;
All in all, I think I crushed it this year! 💪🎉 Who knew coding could be this much fun? Here’s to leveling up and making an impact in the open-source world!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjgrqt5iadfbtjtee0r8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjgrqt5iadfbtjtee0r8.png" alt="oss.gg" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  A Month of Hustle 💼💻
&lt;/h2&gt;

&lt;p&gt;This month, I was grinding from &lt;strong&gt;11 AM to 8 PM&lt;/strong&gt; at work and then contributing until &lt;strong&gt;2 AM!&lt;/strong&gt; 😅 It wasn't all smooth sailing, though. I &lt;strong&gt;struggled to set up some projects and&lt;/strong&gt; found a few codebases that felt like they were written in a &lt;strong&gt;secret language&lt;/strong&gt;! 🤔&lt;/p&gt;

&lt;p&gt;There were times I thought about giving up on those tricky issues, but guess what? Your boy didn’t throw in the towel! 💪 I persevered and tackled almost all the challenges I faced. &lt;strong&gt;What a comeback&lt;/strong&gt;! 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  Fun Fact 🤔💡
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes, I'd &lt;strong&gt;fall asleep&lt;/strong&gt; for just a few minutes, and voilà—a brilliant solution to my coding problem would hit me! So, I'd &lt;strong&gt;jump out of bed&lt;/strong&gt; and dive back into coding, because who needs sleep when &lt;strong&gt;inspiration strikes&lt;/strong&gt;? 😄💻&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Closing Thoughts: A Journey of Growth
&lt;/h2&gt;

&lt;p&gt;Through &lt;strong&gt;Hacktoberfest&lt;/strong&gt; and &lt;strong&gt;oss.gg&lt;/strong&gt;, I discovered a new side of myself! I challenged myself to learn new &lt;code&gt;technologies&lt;/code&gt;, explore &lt;code&gt;codebases&lt;/code&gt;, and write top-notch code—like leveling up in a video game! 🎮✨&lt;/p&gt;

&lt;p&gt;So, here’s my advice: if you’re thinking about diving in, don’t throw in the towel! &lt;strong&gt;Keep pushing, keep shining&lt;/strong&gt;, and remember—every line of code brings you closer to greatness! 🌟💻&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>hackathon</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Self-Hosting Twenty CRM: A Complete Guide</title>
      <dc:creator>Raju Gangitla</dc:creator>
      <pubDate>Tue, 29 Oct 2024 13:09:21 +0000</pubDate>
      <link>https://dev.to/raju_gangitla_91920e1427f/self-hosting-twenty-crm-a-complete-guide-559n</link>
      <guid>https://dev.to/raju_gangitla_91920e1427f/self-hosting-twenty-crm-a-complete-guide-559n</guid>
      <description>&lt;p&gt;Did you know that &lt;strong&gt;self-hosting software&lt;/strong&gt; can give you greater control over your data and customization? If you're looking to set up &lt;strong&gt;Twenty CRM&lt;/strong&gt; on your own server, you've come to the right place! With a few straightforward steps, you’ll be ready to harness the power of Twenty CRM in a &lt;strong&gt;secure, self-managed environment.&lt;/strong&gt; Let’s dive in and get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Expect:
&lt;/h2&gt;

&lt;p&gt;This guide will walk you through:&lt;br&gt;
&lt;strong&gt;Preparing Your Server&lt;/strong&gt;: Setting up the server and essential configurations.&lt;br&gt;
&lt;strong&gt;Installing and Setting Up Twenty CRM&lt;/strong&gt;: Step-by-step instructions for a smooth installation.&lt;br&gt;
&lt;strong&gt;Testing and Troubleshooting&lt;/strong&gt;: Tips to ensure everything runs well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc5u4g2yl355th4tr05b.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc5u4g2yl355th4tr05b.gif" alt="Excited" width="220" height="154"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Twenty CRM: Your Open-Source CRM Solution 🚀
&lt;/h2&gt;

&lt;p&gt;Meet &lt;strong&gt;Twenty CRM&lt;/strong&gt;! This powerful, open-source tool helps you manage customer relationships with ease, giving you &lt;strong&gt;control over your data and customization&lt;/strong&gt;. If you’re a fan of open-source solutions, give it a try and &lt;a href="https://github.com/twentyhq/twenty" rel="noopener noreferrer"&gt;show some support with a ⭐!&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Four Steps to Self-Host Twenty CRM
&lt;/h2&gt;
&lt;h2&gt;
  
  
  Step 1: Prepare Your Environment ⚙️
&lt;/h2&gt;

&lt;p&gt;To start, make sure your server meets the basic requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System Requirements:&lt;/strong&gt; Minimum 2GB RAM to handle CRM processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker &amp;amp; Docker Compose:&lt;/strong&gt; Ensure both are up-to-date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Quick Start with One Command:&lt;/strong&gt; Install Twenty CRM using a one-line script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash &amp;lt;(curl -sL https://git.new/20)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.Manual Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download and configure the &lt;code&gt;.env&lt;/code&gt;file, then generate secure tokens:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openssl rand -base64 32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;These tokens enhance security for CRM processes, including access and login.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Download Configuration Files 📁
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.Environment and Docker Compose Files:&lt;/strong&gt; Download the &lt;code&gt;essential .env&lt;/code&gt; and &lt;code&gt;docker-compose.yml&lt;/code&gt; files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -O https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.Configure the &lt;code&gt;.env&lt;/code&gt; File:&lt;/strong&gt; Open the file to set variables such as database passwords and server URLs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tip: Avoid altering any settings not explicitly mentioned in the guide to prevent conflicts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 3: Launch the Application 🚀
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.Run Containers:&lt;/strong&gt; Launch the application using Docker Compose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2.Check Container Status:&lt;/strong&gt; Ensure the containers are running smoothly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;        If issues arise, review logs using:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Access and Configure 🔧
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.Local Access:&lt;/strong&gt; Access the CRM interface via &lt;code&gt;http://localhost:3000.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.External Access Setup:&lt;/strong&gt; To enable remote access, modify the &lt;code&gt;SERVER_URL&lt;/code&gt; in your &lt;code&gt;.env&lt;/code&gt; file to match your public IP or domain, then restart:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose down &amp;amp;&amp;amp; docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3.Firewall and Port Access:&lt;/strong&gt; Ensure that port 3000 is open and accessible if you’re using an external setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Troubleshooting Tips 🔍
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unable to Log In:&lt;/strong&gt; Run these commands to reset the database if login fails:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issues Behind a Reverse Proxy:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Ensure headers like &lt;code&gt;X-Forwarded-For&lt;/code&gt; and &lt;code&gt;X-Forwarded-Proto&lt;/code&gt; are set.&lt;/li&gt;
&lt;li&gt;Restart both the proxy server and the CRM containers.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server URL Conflicts:&lt;/strong&gt; Verify that the &lt;code&gt;SERVER_URL&lt;/code&gt; in &lt;code&gt;.env&lt;/code&gt;matches your access URL, especially if using SSL.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Tip: Review Docker Compose logs for details on any setup issues.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Conclusion: Self-Hosted CRM, Tailored for You 🚀
&lt;/h2&gt;

&lt;p&gt;With this guide, you’ve set up &lt;strong&gt;Twenty CRM&lt;/strong&gt; to be fully self-hosted, giving you control over your data, privacy, and customization. This flexible, open-source setup is now tailored to meet your business needs—empowering you to manage client relationships with confidence. Enjoy the benefits of an efficient, secure, and scalable CRM that grows with you!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>management</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>📝In-App Surveys Made Simple with Formbricks in React Native: A Complete Guide ❤️‍🔥</title>
      <dc:creator>Raju Gangitla</dc:creator>
      <pubDate>Sun, 13 Oct 2024 16:28:41 +0000</pubDate>
      <link>https://dev.to/raju_gangitla_91920e1427f/in-app-surveys-made-simple-with-formbricks-in-react-native-a-complete-guide-o9e</link>
      <guid>https://dev.to/raju_gangitla_91920e1427f/in-app-surveys-made-simple-with-formbricks-in-react-native-a-complete-guide-o9e</guid>
      <description>&lt;p&gt;Did you know that in-app surveys can increase response rates by &lt;strong&gt;6 to 10 times&lt;/strong&gt; compared to email surveys? If you're looking to gather valuable user insights, setting up an in-app survey in your &lt;strong&gt;React Native&lt;/strong&gt; app takes just minutes. You're in the right place to get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Expect:
&lt;/h2&gt;

&lt;p&gt;In this article, I'll take you on an exciting journey to integrate Formbricks into your React Native app. You’ll discover how to effortlessly add features like a dynamic &lt;strong&gt;Feedback Box&lt;/strong&gt;, &lt;strong&gt;invite users for meaningful interviews, gauge feature satisfaction&lt;/strong&gt;, and much more. &lt;/p&gt;

&lt;p&gt;Let’s jump in and revolutionize the way you gather user feedback!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzcc616b3t7rgb671nig.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzcc616b3t7rgb671nig.gif" alt="So Excited" width="220" height="154"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Formbricks: Open-Source Forms and Surveys🤸
&lt;/h2&gt;

&lt;p&gt;Let me introduce Formbricks! We help you &lt;strong&gt;gain valuable insights into user perceptions&lt;/strong&gt; with targeted questions to enhance user experience. Plus, it’s open-source! If you appreciate our work, &lt;a href="https://github.com/formbricks/formbricks" rel="noopener noreferrer"&gt;show us some love with a ⭐!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu0mvq96u39uwdhtvfc5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu0mvq96u39uwdhtvfc5.jpg" alt="star" width="747" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4 Easy Steps
&lt;/h2&gt;

&lt;p&gt;Ready to jump in? Here’s what we’ll accomplish together:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a free Formbricks Cloud account&lt;/li&gt;
&lt;li&gt;Create your first survey&lt;/li&gt;
&lt;li&gt;Set up the Formbricks Widget in your app&lt;/li&gt;
&lt;li&gt;Restart your app and enjoy your brand new in app survey&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  1. Create a free Formbricks Cloud account 🚀
&lt;/h2&gt;

&lt;p&gt;While self-hosting is always an option, if you’re after speed and simplicity, the cloud is the way to go! Just &lt;a href="https://app.formbricks.com/auth/signup" rel="noopener noreferrer"&gt;sign up&lt;/a&gt;, follow the quick onboarding steps, and you'll be all set:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioqtkg8d68ntyk4ug5o0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioqtkg8d68ntyk4ug5o0.png" alt="Formbricks onbaording " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Build Your First Survey 🛠️
&lt;/h2&gt;

&lt;p&gt;Ready to create your survey? Jump into a template, then head over to the survey settings to fine-tune everything:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1a98vzfml63aq3s3r1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1a98vzfml63aq3s3r1w.png" alt="Settings" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, you'll find a survey trigger that lets you specify when the survey should be activated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgluzha3ma3nlck4zehtp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgluzha3ma3nlck4zehtp.png" alt="Add action " width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ve got two options here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;New Session&lt;/strong&gt;: The survey will automatically pop up every time a new user session starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Trigger&lt;/strong&gt;: Set your own specific action to trigger the survey when you see fit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pick the option that best suits your needs and customize your survey flow!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5r7ic8fjo9zefrt757f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5r7ic8fjo9zefrt757f.png" alt="Session" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvl4u9jf8frkot0qlq1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvl4u9jf8frkot0qlq1g.png" alt="Capture sction" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll also find additional settings like &lt;strong&gt;Response Options, Recontact Options, and Survey Placement&lt;/strong&gt; to help you tailor the survey for an even more personalized experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p5jb56xdumejyb1n0xn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p5jb56xdumejyb1n0xn.png" alt="More options" width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you're satisfied, hit that &lt;strong&gt;Publish&lt;/strong&gt; button! 🎉&lt;/p&gt;

&lt;p&gt;You’ll land on the &lt;strong&gt;Summary Page&lt;/strong&gt;, your central hub for all survey responses. Here, you'll find a &lt;strong&gt;Connect&lt;/strong&gt; button—use it to link your website or app to Formbricks and start collecting feedback!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3qne6wkyc9rs47ogsmvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3qne6wkyc9rs47ogsmvp.png" alt="Connect button" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Unleash the Formbricks Widget 🧙
&lt;/h2&gt;

&lt;p&gt;When you click on &lt;strong&gt;connect&lt;/strong&gt; button it will take you to this page where you can see the Formbricks sdk connection status &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5grx1wxno47lg5grz2a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5grx1wxno47lg5grz2a.png" alt="Conenction status" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just below, you'll find a manual with a code snippet. This is where you can grab your &lt;strong&gt;environmentId&lt;/strong&gt; and &lt;strong&gt;API host&lt;/strong&gt; to complete the setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopac8r2e21psyfq3f6h2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopac8r2e21psyfq3f6h2.png" alt="keys" width="738" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step is to install the &lt;strong&gt;Formbricks React Native SDK&lt;/strong&gt; using your preferred package manager, such as npm, pnpm, or yarn in your React Native App.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @formbricks/react-native
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, update your &lt;strong&gt;App.js/App.tsx&lt;/strong&gt; file to initialize Formbricks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// other imports
import Formbricks from "@formbricks/react-native";

const config = {
  environmentId: "&amp;lt;environment-id&amp;gt;",
  apiHost: "&amp;lt;api-host&amp;gt;",
  userId: "&amp;lt;user-id&amp;gt;",
};

export default function App() {
  return (
    &amp;lt;&amp;gt;
      {/* Your app content */}
      &amp;lt;Formbricks initConfig={config} /&amp;gt;
    &amp;lt;/&amp;gt;
  );
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4.Restart Your App &amp;amp; Keep an Eye on the Console👀
&lt;/h2&gt;

&lt;p&gt;Restart your app and open your browser console. If everything’s working as expected, you'll see your survey appear in the bottom right corner!&lt;/p&gt;

&lt;p&gt;And that’s it—you're all set! 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👏 Congrats, you nailed it! 🚀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0i09sx9fiyfyaoixqwf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0i09sx9fiyfyaoixqwf3.png" alt="Formbricks survey" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging Support – For When Things Don’t Go as Planned 🐛
&lt;/h2&gt;

&lt;p&gt;If your survey is playing hard to find, don’t worry! Here’s a quick cheat sheet to help you out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connectivity Issues&lt;/strong&gt;&lt;br&gt;
Head back to &lt;a href="https://app.formbricks.com" rel="noopener noreferrer"&gt;app.formbricks.com&lt;/a&gt; and check the &lt;strong&gt;Website and App Connection&lt;/strong&gt; in &lt;strong&gt;Configuration&lt;/strong&gt;. If it's showing "Not connected," it means your app hasn't communicated with Formbricks Cloud yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadbfffjd9l5aywdjx0w3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadbfffjd9l5aywdjx0w3.png" alt="Conenctivity Issues" width="800" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fix&lt;/strong&gt;: Double-check your widget's heartbeat in your browser console. For that make sure that &lt;code&gt;debug: true&lt;/code&gt; mode is enabled in the Formbricks embedding. If things look off, we've got your back over at our &lt;a href="https://formbricks.com/discord" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Survey not loaded&lt;/strong&gt;&lt;br&gt;
Your app is communicating with Formbricks Cloud, but the widget hasn't loaded your survey yet.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5f6xncjomjdshysae47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5f6xncjomjdshysae47.png" alt="survey status" width="800" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fix&lt;/strong&gt;: Ensure your survey is no longer in draft mode and is set to "in progress" on the Survey Summary page in Formbricks Cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Reflect and Learn
&lt;/h2&gt;

&lt;p&gt;Today, we explored how to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect Formbricks with your app&lt;/li&gt;
&lt;li&gt;Create engaging in-app surveys&lt;/li&gt;
&lt;li&gt;Display them effortlessly within your app&lt;/li&gt;
&lt;li&gt;Send the collected data to your analysis backend
Now, you’re ready to unlock the full potential of in-app surveys!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check out these best practices for inspiration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/cancel-subscription" rel="noopener noreferrer"&gt;Learn from chrun &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://formbricks.com/docs/best-practices/interview-prompt" rel="noopener noreferrer"&gt;Interview prompt&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/pmf-survey" rel="noopener noreferrer"&gt;Product Market Fit Survey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/improve-trial-cr" rel="noopener noreferrer"&gt;Trial Conversion Survey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/feature-chaser" rel="noopener noreferrer"&gt;Feature Chaser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/feedback-box" rel="noopener noreferrer"&gt;Feedback Box&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://formbricks.com/docs/best-practices/docs-feedback" rel="noopener noreferrer"&gt;Docs Feedback&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Comment for which you'd like the next tutorial!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79b4iz3wzpzb3qah6y5n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79b4iz3wzpzb3qah6y5n.jpg" alt="star 2" width="747" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To help us continue creating these articles,&lt;a href="https://github.com/formbricks/formbricks" rel="noopener noreferrer"&gt; leave us a sparkling &lt;/a&gt;⭐!&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;br&gt;
Raju&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
  </channel>
</rss>
