<?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[Microbots Blog]]></title><description><![CDATA[Automate customer engagement journeys using data directly from your database.]]></description><link>https://blog.microbots.dev/</link><image><url>https://blog.microbots.dev/favicon.png</url><title>Microbots Blog</title><link>https://blog.microbots.dev/</link></image><generator>Ghost 5.2</generator><lastBuildDate>Mon, 20 Apr 2026 21:19:56 GMT</lastBuildDate><atom:link href="https://blog.microbots.dev/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[An alternative to Zapier for bulk actions on your own Database]]></title><description><![CDATA[With Microbots, you can make hundreds of workflows on your own database without writing a single line of code. Imagine the time and energy that you are saving!]]></description><link>https://blog.microbots.dev/zapier-on-your-own-database/</link><guid isPermaLink="false">634fe3bbcd037a020b34acd1</guid><category><![CDATA[NoCode]]></category><category><![CDATA[Cron Jobs]]></category><category><![CDATA[SaaS]]></category><category><![CDATA[Startups]]></category><category><![CDATA[Founder]]></category><category><![CDATA[Zapier]]></category><dc:creator><![CDATA[Microbots]]></dc:creator><pubDate>Fri, 21 Oct 2022 10:03:41 GMT</pubDate><content:encoded><![CDATA[<p>Automating jobs tangential to your business will give you the bandwidth to focus on the core product. These tangential jobs may involve frequent communication with your users, writing tedious jobs for deleting or uploading data, an interface for team members to upload images in an S3 bucket, etc.</p><p>Now, these jobs are not core to the product but are necessary for a business. Ask yourself, if this is a good investment of your developer&apos;s time and energy in building these workflows and Cron jobs.</p><p>Wouldn&apos;t it be awesome if someone else can do these tasks so the team can focus on the core product? </p><p>Introducing you to <a href="https://microbots.dev">Microbots</a>, where you can make hundreds of workflows on your own database without writing a single line of code. Imagine the time and energy that you are saving!</p><p>Here are a few examples of these workflows could be:</p><ol><li>Sending user communication via Email, SMS, Whatsapp, etc. using your own data</li><li>Periodical deletion or upload of data in the database</li></ol><p>... and many more!</p><p>Let us discuss each of the mentioned workflows in detail if these have to run from your own database. </p><h2 id="user-communication">User Communication</h2><p>Communicating with your users ensures better retention. Now, that does not mean spamming your users with marketing chants but personalized communication every now and then. This could be as simple as &quot;We think creating Heatmaps will be useful for you but I don&apos;t think you are using it now. Why don&apos;t you go here and make one!&quot;. &#xA0;</p><h3 id="how-are-you-doing-it-now">How are you doing it now?</h3><ol><li>Asking your developers to write Cron jobs for sending weekly reports, payment reminder emails, free trial expiration, etc?</li><li>Using a 3rd party tool and paying money per subscriber for replicating the data that you already have? &#xA0;</li></ol><p>Whether you are doing it via Method 1 or Method 2, you end up wasting money, resources, or both. </p><h3 id="how-you-can-do-it-with-microbots">How you can do it with Microbots?</h3><p>Microbots give you a simple UI to build these communication flows. The steps are pretty simple and can be done by Microbots interface without needing any developer&apos;s effort from your team. </p><p>The steps are simple:</p><ol><li>Connect with your database and Email Service API Provider</li><li>Create a segment or set up rules to identify users</li><li>Choose a schedule or frequency at which you would like to run the communication flow. &#xA0;</li></ol><figure class="kg-card kg-video-card"><div class="kg-video-container"><video src="https://blog.microbots.dev/content/media/2022/10/Connect-Your-Database-and-Email-API.mp4" poster="https://img.spacergif.org/v1/800x600/0a/spacer.png" width="800" height="600" loop autoplay muted playsinline preload="metadata" style="background: transparent url(&apos;https://blog.microbots.dev/content/images/2022/10/media-thumbnail-ember37.jpg&apos;) 50% 50% / cover no-repeat;"></video><div class="kg-video-overlay"><button class="kg-video-large-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button></div><div class="kg-video-player-container kg-video-hide"><div class="kg-video-player"><button class="kg-video-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button><button class="kg-video-pause-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><rect x="3" y="1" width="7" height="22" rx="1.5" ry="1.5"/><rect x="14" y="1" width="7" height="22" rx="1.5" ry="1.5"/></svg></button><span class="kg-video-current-time">0:00</span><div class="kg-video-time">/<span class="kg-video-duration"></span></div><input type="range" class="kg-video-seek-slider" max="100" value="0"><button class="kg-video-playback-rate">1&#xD7;</button><button class="kg-video-unmute-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M15.189 2.021a9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h1.794a.249.249 0 0 1 .221.133 9.73 9.73 0 0 0 7.924 4.85h.06a1 1 0 0 0 1-1V3.02a1 1 0 0 0-1.06-.998Z"/></svg></button><button class="kg-video-mute-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M16.177 4.3a.248.248 0 0 0 .073-.176v-1.1a1 1 0 0 0-1.061-1 9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h.114a.251.251 0 0 0 .177-.073ZM23.707 1.706A1 1 0 0 0 22.293.292l-22 22a1 1 0 0 0 0 1.414l.009.009a1 1 0 0 0 1.405-.009l6.63-6.631A.251.251 0 0 1 8.515 17a.245.245 0 0 1 .177.075 10.081 10.081 0 0 0 6.5 2.92 1 1 0 0 0 1.061-1V9.266a.247.247 0 0 1 .073-.176Z"/></svg></button><input type="range" class="kg-video-volume-slider" max="100" value="100"></div></div></div></figure><h3 id="delete-or-upload-data-periodically">Delete or Upload data periodically</h3><p>Every business has data dumps that they want to periodically delete from their own database and also sometimes they want to upload it to an S3 bucket or Google Cloud Storage, etc. Each and every team is supposed to write such Cron jobs that are tedious, bulky, and repetitive. &#xA0;</p><h3 id="how-are-you-doing-it-now-1">How are you doing it now?</h3><p>Currently, someone from the team is responsible for writing as well as maintaining these Cron jobs. The code becomes bulky over time and it is hard to maintain if the person responsible for this moves from the company.</p><p>It should not be so hard, right? I think most of the developers would agree with me on this.</p><h3 id="how-can-you-do-it-via-microbots">How can you do it via Microbots?</h3><p>Again, Microbots give you a simple UI to build, maintain and schedule these Cron jobs saving your developers time and effort. </p><p>The steps are simple:</p><ol><li>Connect with your database </li><li>Build a query for data that you want to delete or upload</li><li>If upload, connect to an S3 bucket, etc</li><li>Choose a schedule at which you wish to upload or delete your data</li></ol><figure class="kg-card kg-video-card"><div class="kg-video-container"><video src="https://blog.microbots.dev/content/media/2022/10/Upload-and-delete-data.mp4" poster="https://img.spacergif.org/v1/800x600/0a/spacer.png" width="800" height="600" loop autoplay muted playsinline preload="metadata" style="background: transparent url(&apos;https://blog.microbots.dev/content/images/2022/10/media-thumbnail-ember81.jpg&apos;) 50% 50% / cover no-repeat;"></video><div class="kg-video-overlay"><button class="kg-video-large-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button></div><div class="kg-video-player-container kg-video-hide"><div class="kg-video-player"><button class="kg-video-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button><button class="kg-video-pause-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><rect x="3" y="1" width="7" height="22" rx="1.5" ry="1.5"/><rect x="14" y="1" width="7" height="22" rx="1.5" ry="1.5"/></svg></button><span class="kg-video-current-time">0:00</span><div class="kg-video-time">/<span class="kg-video-duration"></span></div><input type="range" class="kg-video-seek-slider" max="100" value="0"><button class="kg-video-playback-rate">1&#xD7;</button><button class="kg-video-unmute-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M15.189 2.021a9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h1.794a.249.249 0 0 1 .221.133 9.73 9.73 0 0 0 7.924 4.85h.06a1 1 0 0 0 1-1V3.02a1 1 0 0 0-1.06-.998Z"/></svg></button><button class="kg-video-mute-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M16.177 4.3a.248.248 0 0 0 .073-.176v-1.1a1 1 0 0 0-1.061-1 9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h.114a.251.251 0 0 0 .177-.073ZM23.707 1.706A1 1 0 0 0 22.293.292l-22 22a1 1 0 0 0 0 1.414l.009.009a1 1 0 0 0 1.405-.009l6.63-6.631A.251.251 0 0 1 8.515 17a.245.245 0 0 1 .177.075 10.081 10.081 0 0 0 6.5 2.92 1 1 0 0 0 1.061-1V9.266a.247.247 0 0 1 .073-.176Z"/></svg></button><input type="range" class="kg-video-volume-slider" max="100" value="100"></div></div></div></figure><p>Do you have use cases where you want to do certain Database operations and do not want to write code for it? Drop them in our comment box and Microbots will make them happen!</p>]]></content:encoded></item><item><title><![CDATA[How to setup User Emails for SaaS Startups]]></title><description><![CDATA[Understand how to set up a complete flow for user communication without writing any code.  ]]></description><link>https://blog.microbots.dev/how-to-setup-user-emails-for-small-scale-saas-startups/</link><guid isPermaLink="false">634e52b7cd037a020b34abed</guid><category><![CDATA[NoCode]]></category><category><![CDATA[SaaS]]></category><category><![CDATA[Founder]]></category><category><![CDATA[Startups]]></category><category><![CDATA[Transactional Email]]></category><category><![CDATA[Email Marketing]]></category><dc:creator><![CDATA[Microbots]]></dc:creator><pubDate>Tue, 18 Oct 2022 10:18:56 GMT</pubDate><content:encoded><![CDATA[<p>Are you building a SaaS startup? If yes, this article will help you in building a flow for user emails.</p><p>SaaS products, your users are going to be in a long-term relationship with you and not just a fling! To build a relationship, you need to communicate. You need to understand their needs as well as you need to clearly communicate what is in there for them.</p><p>And, yes, this long-term relationship would mean recurring revenue or subscription money for your startup.</p><p>I am <a href="https://microbots.dev" rel="noopener">Microbots</a> and I will tell you how to set up an effective series of communication with your users! For SaaS customers, emails are the best channel to reach out. So, this article will be focussed more on emails.</p><p>Type of Emails:</p><ol><li>Transactional Emails</li><li>Onboarding Emails</li><li>Drip/Marketing Emails</li><li>Feedback Emails</li></ol><h3 id="transactional-emails">Transactional Emails</h3><p>Transactional emails are the key emails that are sent to a user on a specific event like:</p><ol><li>Personalized Discount Emails</li><li>Payment Emails</li><li>Free Trial Expiry Emails</li></ol><p>&#x2026; and many more.</p><p>These emails should be done on pure transactions and should not be associated with your marketing, onboarding, or feedback emails.</p><p>As these are the key emails that are supposed to reach users, you probably should not have an unsubscribe link on these emails.</p><p>Let&#x2019;s see how you can set up Free Trial Expiry Emails with <a href="https://microbots.dev" rel="noopener">Microbots</a> instead of investing the time and energy in writing Cron jobs for the same. Also, not only do you send emails but you also get a cool analytics dashboard for your transactional emails if you send them via <a href="https://microbots.dev" rel="noopener">Microbots</a>!</p><h4 id="step-1-connect-your-database">Step 1: Connect Your Database</h4><p>The first step is to connect your database with your Microbots account. Choose the required Database template like Mongo, MySQL, Postgre SQL, or many more.</p><p>Once you select the template, you need to fill in the required information for Microbots to connect with your database</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/choosetemplate_screely.png" class="kg-image" alt loading="lazy" width="1520" height="824" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/choosetemplate_screely.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/choosetemplate_screely.png 1000w, https://blog.microbots.dev/content/images/2022/10/choosetemplate_screely.png 1520w" sizes="(min-width: 720px) 720px"><figcaption>Choose your database&#xA0;template</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/filldetails_screely-1.png" class="kg-image" alt loading="lazy" width="1522" height="830" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/filldetails_screely-1.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/filldetails_screely-1.png 1000w, https://blog.microbots.dev/content/images/2022/10/filldetails_screely-1.png 1522w" sizes="(min-width: 720px) 720px"><figcaption>Fill in the required information to connect with your&#xA0;database</figcaption></figure><p>As soon as, you connect your DB, Microbots will parse all the tables and their fields.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/parsetables_screely-1.png" class="kg-image" alt loading="lazy" width="1506" height="828" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/parsetables_screely-1.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/parsetables_screely-1.png 1000w, https://blog.microbots.dev/content/images/2022/10/parsetables_screely-1.png 1506w" sizes="(min-width: 720px) 720px"><figcaption>Parsed tables</figcaption></figure><p>You can also add descriptions to the fields in the tables so that everyone on your team can understand the field types.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/parsefields_screely.png" class="kg-image" alt loading="lazy" width="1520" height="832" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/parsefields_screely.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/parsefields_screely.png 1000w, https://blog.microbots.dev/content/images/2022/10/parsefields_screely.png 1520w" sizes="(min-width: 720px) 720px"><figcaption>Parsed fields on a&#xA0;table</figcaption></figure><h4 id="step-2-connect-your-email-service-provider">Step 2: Connect Your Email Service Provider</h4><p>Once you have connected the database, you also need to connect with an Email Service Provider like Amazon SES, Sendgrid, Netcore, or Mandrill (now part of Mailchimp). You can just choose the template and fill in a couple of details to connect with your ESP</p><figure class="kg-card kg-image-card"><img src="https://blog.microbots.dev/content/images/2022/10/connectses_screely.png" class="kg-image" alt loading="lazy" width="1510" height="832" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/connectses_screely.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/connectses_screely.png 1000w, https://blog.microbots.dev/content/images/2022/10/connectses_screely.png 1510w" sizes="(min-width: 720px) 720px"></figure><h4 id="step-3-create-a-segment">Step 3: Create a Segment</h4><p>Once you have established the desired connections, you now need to create a segment of users whose free trial is about to be expired. Let&apos;s say your product offers a week&apos;s free trial. So, you can choose the range for user creation in the last week. Also, you can add as many rules as you want to refine this segment.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/free_trial_segment_screely-1.png" class="kg-image" alt loading="lazy" width="1498" height="824" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/free_trial_segment_screely-1.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/free_trial_segment_screely-1.png 1000w, https://blog.microbots.dev/content/images/2022/10/free_trial_segment_screely-1.png 1498w" sizes="(min-width: 720px) 720px"><figcaption>Create a segment for Free Trial Users</figcaption></figure><h4 id="step-4-select-or-insert-email-template">Step 4: Select or Insert Email Template</h4><p>You can choose and modify an Email from Microbots&apos; existing templates or you can add your own. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/freetrial_expiry_email_screely.png" class="kg-image" alt loading="lazy" width="1500" height="820" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/freetrial_expiry_email_screely.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/freetrial_expiry_email_screely.png 1000w, https://blog.microbots.dev/content/images/2022/10/freetrial_expiry_email_screely.png 1500w" sizes="(min-width: 720px) 720px"><figcaption>Choose from Email templates or make your own</figcaption></figure><h4 id="step-5-choose-a-run-schedule">Step 5: Choose a Run Schedule</h4><p>The last step is to assign a frequency at which you need to run these emails. Since our example free trial is for a week, we chose the segment of users who signed up on the date i.e. greater than or equal to the last 7 days and less than the last 8 days. We can run this automation once a day and this will send free trial expiry email to our users whose trial is about to end.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.microbots.dev/content/images/2022/10/schedule_screely.png" class="kg-image" alt loading="lazy" width="1514" height="830" srcset="https://blog.microbots.dev/content/images/size/w600/2022/10/schedule_screely.png 600w, https://blog.microbots.dev/content/images/size/w1000/2022/10/schedule_screely.png 1000w, https://blog.microbots.dev/content/images/2022/10/schedule_screely.png 1514w" sizes="(min-width: 720px) 720px"><figcaption>Schedule your emails</figcaption></figure><p>This is just one small example of a transactional email that you need to set up as soon as you launch your payment flow. You need to send signup emails, reminders before the free trial ends, payment reminders, plan expiry, discount codes, etc. </p><p>Hope this is helpful! Follow our <a href="https://medium.com/@microbots_dev">medium channel </a>to read about how to create a complete flow for your onboarding, marketing, and feedback emails without writing any code.<br></p>]]></content:encoded></item><item><title><![CDATA[Keeping two tables in MySQL in sync]]></title><description><![CDATA[<p>We had a simple requirement. We needed a few tables part of a remote database A to be synced within our database B.</p><p>Looks pretty simple, so we set out to find all the options to make this happen.</p><h3 id="airbyte">Airbyte</h3><p>The first option that we checked out was <a href="https://airbyte.com/">Airbyte</a>. &#xA0;</p>]]></description><link>https://blog.microbots.dev/mysql-table-sync-3/</link><guid isPermaLink="false">62baef423fa068020de839f7</guid><dc:creator><![CDATA[Microbots]]></dc:creator><pubDate>Wed, 22 Jun 2022 04:36:57 GMT</pubDate><content:encoded><![CDATA[<p>We had a simple requirement. We needed a few tables part of a remote database A to be synced within our database B.</p><p>Looks pretty simple, so we set out to find all the options to make this happen.</p><h3 id="airbyte">Airbyte</h3><p>The first option that we checked out was <a href="https://airbyte.com/">Airbyte</a>. &#xA0;At that point, for the MySql version in source, it did not support <a href="https://blog.microbots.dev/mysql-table-sync/#incremental-sync">incremental sync</a> but only <a href="https://blog.microbots.dev/mysql-table-sync/#incremental-appends-and-updates">incremental appends and updates</a> but it sufficed for our use case. In order to learn the difference between these modes of syncing you may check the sections below.</p><p>Airbyte was the fastest option to try out and setup. It performed a fast <a href="https://blog.microbots.dev/mysql-table-sync/#initial-sync">initial sync</a> but beyond that the updates started to fail a lot. Sometimes they were due to lost connection, and sometimes for unknown reasons. Also all the failed updates caused some residual data to be left in the destination database which quickly caused the disk to fill up. I believe Airbyte was still in a beta phase and all these processes were not very clean at that point. The team was supportive and I tried various methods but eventually, we moved to other solutions.</p><h3 id="pt-table-sync">pt-table-sync</h3><p>It&apos;s a tool in <a href="https://www.percona.com/doc/percona-toolkit/2.1/pt-table-sync.html">Percona</a> toolkit which is very highly regarded. I learnt that for replication it needs the binlog format to be STATEMENT, otherwise it will try to set it via SUPER privilege for the session. &#xA0;Unfortunately, we did not have the right permissions for the setup and therefore this was not an option.</p><h3 id="zongji">ZongJi</h3><p>Finally, we moved on to cooking up our own solution using <a href="https://github.com/nevill/zongji">ZongJi</a>, which is a simple binlog reader for MySql. &#xA0;It requires binlog format to be ROW, which was suited for us and this along with <a href="https://www.npmjs.com/package/@rodrigogs/mysql-events">mysql-events</a> gave us binlog events in the master which we could easily apply to our slave tables for reliable replication.</p><hr><h3 id="initial-sync">Initial Sync</h3><p>All sync methods usually start with a full copy of the initial table to the destination. The changes beyond that point are usually copied to the destination via below methods.</p><h3 id="incremental-sync">Incremental Sync</h3><p>Incremental sync means updating all the changes from the source to the destination including inserts, updates as well as deletes. This is the best option for syncing two sources as it ensures an exact match along with the least amount of data overhead.</p><p>Usually, to achieve this, a log of all transactions on the table is needed like the <code><a href="https://dev.mysql.com/doc/internals/en/binary-log-overview.html">binlog</a></code> in MySql and <code><a href="https://www.mongodb.com/docs/manual/core/replica-set-oplog/">oplog</a></code> in MongoDB.</p><h3 id="incremental-appends-and-updates">Incremental Appends and Updates</h3><p>This ensures that all the inserts and updates are synced with the destination but deletes are not. So all the data in the destination table is correct, except that it may have some extra rows. &#xA0;This is also a good option for many use cases.</p><p>To achieve this you just need a cursor field in the source table. An example of a cursor field would be say an <code>update_time</code> field that updates for a row when any other field in the row is changed. If this is available, we can just check for records that have update_time newer than last update and copy just those rows to the destination. Since deleted rows cannot be discovered with it, this method fails to sync deletes.</p><p>The extra deletes can then be synced by an occasional full copy.</p>]]></content:encoded></item></channel></rss>