<?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"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[I'm Rohit, a software engineer specializing in automation, Python, and Node.js. I create efficient backend systems and streamline workflows. Follow for tech tips!]]></description><link>https://rohit-lavvanshi.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 23 Jun 2026 00:54:03 GMT</lastBuildDate><atom:link href="https://rohit-lavvanshi.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A Comprehensive Guide to Integrating Shopify with Make]]></title><description><![CDATA[Introduction
Integrating Shopify with Make (formerly Integromat) is a powerful way to streamline and automate your e-commerce operations. With this integration, you can manage various aspects of your Shopify store-such as orders, products, customers,...]]></description><link>https://rohit-lavvanshi.hashnode.dev/a-comprehensive-guide-to-integrating-shopify-with-make</link><guid isPermaLink="true">https://rohit-lavvanshi.hashnode.dev/a-comprehensive-guide-to-integrating-shopify-with-make</guid><category><![CDATA[shopify]]></category><category><![CDATA[automation]]></category><category><![CDATA[integration]]></category><dc:creator><![CDATA[Rohit Lavvanshi]]></dc:creator><pubDate>Sat, 03 Aug 2024 18:03:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1722708118130/c827717a-6f8c-4be3-a490-c8c0158d5521.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction"><strong>Introduction</strong></h2>
<p>Integrating Shopify with Make (formerly Integromat) is a powerful way to streamline and automate your e-commerce operations. With this integration, you can manage various aspects of your Shopify store-such as orders, products, customers, and more-directly from the Make platform. This guide will introduce you to the process of connecting your Shopify store with Make, whether you choose to use the standard OAuth connection or create a custom app for enhanced functionality.</p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>Ensure you have the following:</p>
<ol>
<li><p>A Shopify account. You can sign up at <a target="_blank" href="https://www.shopify.com/signup">Shopify</a>.</p>
</li>
<li><p>A Make account. You can sign up at <a target="_blank" href="https://www.make.com/">Make.com</a>.</p>
</li>
<li><p>Basic understanding of APIs and webhooks.</p>
</li>
</ol>
<h3 id="heading-shopify-modules-in-make">Shopify Modules in Make</h3>
<p>With Shopify in Make, you can manage the orders, products, product variants, product images, collects, custom collections, customers, articles, pages, refunds, fulfillments, fulfillment orders, fulfillment services, inventories, abandoned checkouts, transations, discounts, metafields, payments, and themes in your Shopify account.</p>
<p>Refer to the <a target="_blank" href="https://shopify.dev/docs/api/admin-rest">Shopify API documentation</a> for a list of available endpoints.</p>
<h2 id="heading-connecting-shopify-to-make"><strong>Connecting Shopify to Make</strong></h2>
<p>Shopify offers two types of connections:</p>
<ul>
<li><p>Standard OAuth connection (displayed as <strong>Shopify</strong> in the Create connection dialog) - use this by default</p>
</li>
<li><p>Custom app (displayed as <strong>Shopify (custom or private apps)</strong>) - use this if the standard connection does not work</p>
</li>
</ul>
<p>To connect your Shopify account to Make, follow these steps:</p>
<h3 id="heading-connecting-shopify-using-the-standard-connection-type"><strong>Connecting Shopify using the standard connection type</strong></h3>
<p>Use the Shopify connection type by default. If creating the connection causes errors, use the custom or private app connection type.</p>
<ol>
<li><p>Insert a Shopify module into a scenario. Under Connection, click <strong>Add</strong>.</p>
<ul>
<li>The Create a Connection dialog appears.</li>
</ul>
</li>
</ol>
<p>    <img src="https://www.make.com/en/help/image/uuid-92350fa7-763a-9d59-110c-c711de085b20.png" alt="61d6b0ba0e363.png" class="image--center mx-auto" /></p>
<ol start="2">
<li><p>In the <strong>Connection type</strong>, select <strong>Shopify</strong>.</p>
</li>
<li><p>Type a <strong>Connection name</strong>.</p>
</li>
<li><p>Enter the <strong>Myshopify.com subdomain</strong> of your store.</p>
<ul>
<li>For example, if the URL of your store is <code>https://mystore.myshopify.com</code>, the subdomain to enter in the connection dialog is <code>mystore</code>.</li>
</ul>
</li>
<li><p>Click <strong>Save</strong>.</p>
<ul>
<li>The system opens Shopify in a new window. Shopify asks you to log in and install the Make app and approve its access to your store data.</li>
</ul>
</li>
<li><p>In the Shopify <strong>Install</strong> dialog, review the privacy and per</p>
</li>
<li><p>missions details, and then click <strong>Install unlisted app</strong>.</p>
</li>
</ol>
<p><img src="https://www.make.com/en/help/image/uuid-310a2cd8-80ab-efd1-a7a0-459e2ab1d46f.png" alt="61d6b0bb34b8f.png" class="image--center mx-auto" /></p>
<p><strong>Connecting Shopify using a Shopify private or custom app</strong></p>
<p>Use the <strong>Shopify (custom or private app)</strong> connection type if the standard Shopify connection type does not work for you.</p>
<p>This connection type requires creating a custom app in your Shopify store.</p>
<ol>
<li><p>Log in to your Shopify store, click <strong>Apps</strong>, then click <strong>App and sales channel settings</strong>.</p>
<p> <img src="https://www.make.com/en/help/image/uuid-61eda1b3-c193-0e7d-96b9-2aa34855c961.png" alt="shopify_app_settings.png" class="image--center mx-auto" /></p>
</li>
<li><p>On the <strong>Apps and channels</strong> screen, click <strong>Develop apps</strong>.</p>
<p> <img src="https://www.make.com/en/help/image/uuid-3324b5e9-9b61-c64e-10d2-53efda42f0b6.png" alt="shopify_develop_apps.png" class="image--center mx-auto" /></p>
</li>
<li><p>Click <strong>Allow custom app development</strong>, then confirm this action again by clicking <strong>Allow custom app development</strong> on the next screen.</p>
<ul>
<li>This will allow you to create an API token that you will use when creating the connection in Make.</li>
</ul>
</li>
<li><p>Click <strong>Create an app</strong>.</p>
</li>
<li><p>Type an <strong>App name</strong>, select an <strong>App developer</strong>, and click <strong>Create app</strong>.</p>
</li>
<li><p>Click <strong>Configuration</strong>, then click <strong>Configure</strong> next to <strong>Admin API integration</strong>.</p>
<p> <img src="https://www.make.com/en/help/image/uuid-8da2034d-1dfd-0763-7713-ca3bda03bf64.png" alt="shopify_app_configuration_api.png" class="image--center mx-auto" /></p>
</li>
<li><p>On the Admin API integration screen, select scopes (permissions) that represent the actions you will need Make to perform. Then click <strong>Save</strong>.</p>
</li>
<li><p>Switch to the <strong>API credentials</strong> tab and under <strong>Access tokens</strong>, click <strong>Install app</strong>. In the dialog that appears, confirm the action by clicking <strong>Install app</strong>.</p>
<ul>
<li>Shopify creates an Admin API access token. Click <strong>Reveal token once</strong> and copy the token. You will enter this token into Make in the next step.</li>
</ul>
</li>
</ol>
<p>    <img src="https://www.make.com/en/help/image/uuid-faaabfc1-143f-2aa5-e4ac-63352d4d3d22.png" alt="shopify_reveal_token.png" class="image--center mx-auto" /></p>
<ol start="9">
<li><p>In Make, add a Shopify module to a scenario. Under <strong>Connection</strong>, click <strong>Add</strong>, then fill in the required details shown in the following image.</p>
</li>
<li><p>Click <strong>Save</strong>.</p>
</li>
</ol>
<h2 id="heading-public-app-connection"><strong>Public App Connection</strong></h2>
<p>Use this to connect your Public App created in your Partner Dashboard.</p>
<p>To create an app:</p>
<ol>
<li><p>From your Partner Dashboard, click <em>Apps</em> &gt; <em>Create</em> app.</p>
</li>
<li><p>Provide an app name, URL, and Redirect URLs.</p>
</li>
<li><p>Click <strong>Create app</strong>. You are directed to your app's overview page, where you can view the API key and API secret that you will need for the module's connection configuration.</p>
</li>
</ol>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Connection Type</strong></td><td><code>Shopify (public apps)</code>.</td></tr>
</thead>
<tbody>
<tr>
<td><strong>Connection name</strong></td><td>Enter the name of the connection.</td></tr>
<tr>
<td><strong>Domain</strong></td><td>Enter the name of your Shopify domain. If your Shopify store address is https://<em>mystore</em>.myshopify.com, enter "<em>mystore</em>".</td></tr>
<tr>
<td><strong>Client ID</strong></td><td>Enter the API key for the app, as defined in the Partner Dashboard.</td></tr>
<tr>
<td><strong>Client Secret</strong></td><td>Enter the API secret key for the app, as defined in the Partner Dashboard.</td></tr>
<tr>
<td><strong>Scope</strong></td><td>Specify needed scopes. If you requested both the read and write access scopes for a resource, then enter only for the write access scope. The read access scope is omitted because it’s implied by the write access scope. For example, if your request included <code>scope=read_orders,write_orders</code>, then check only for the <code>write_orders</code> scope.</td></tr>
</tbody>
</table>
</div><h2 id="heading-private-app-connection"><strong>Private App Connection</strong></h2>
<p>To establish a private app connection, you need to create a private app to obtain the <em>API Key</em> and <em>Password</em>.</p>
<p>1. Log in to your Shopify administration.</p>
<p>2. Navigate to <strong>Apps</strong> &gt; <strong>Manage private apps</strong>.</p>
<p><img src="https://www.make.com/en/help/image/uuid-dabcae40-88eb-c4a1-46eb-5b0b03437b6d.gif" alt="61d6b0c7a680d.gif" /></p>
<p>3. Click the <strong>Create new private app</strong> button<a target="_blank" href="https://www.make.com/en/help/app/shopify#private-app-connection_body">(</a>).</p>
<p>4. Fill in the required fields<a target="_blank" href="https://www.make.com/en/help/app/shopify#private-app-connection_body">,</a> click <strong>Save</strong><a target="_blank" href="https://www.make.com/en/help/app/shopify#private-app-connection_body">,</a> and <strong>Create App</strong>.</p>
<p><img src="https://www.make.com/en/help/image/uuid-93fcc0e0-ff80-85cb-0738-55ad6fbc4ef5.gif" alt="61d6b0cb6fd7b.gif" /></p>
<p>5. Find the generated <strong>API Key</strong> and <strong>Password</strong> in the Admin API section.</p>
<p><img src="https://www.make.com/en/help/image/uuid-5767ac98-bd17-7da2-1c33-a78366a4ed0a.png" alt="61d6b0cf6eeb4.png" /></p>
<p>6. Go to <strong>Make,</strong> and open the <strong>Make an API Call</strong> module's <strong>Create a Connection</strong> dialog for the Shopify private app.</p>
<p>7. Enter the <em>Domain</em> (if your Shopify online store address is, for example, <em>xyz</em>.myshopify.com, enter only "<em>xyz</em>".) and <em>API Key</em> and <em>Password</em> provided in step 5 to the respective fields, and click the <em>Continue</em> button to establish the connection.</p>
<p>The connection has been established. You can set up the private app's <strong>Make an API Call</strong> module.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Integrating Shopify with Make enhances your e-commerce efficiency by automating tasks like order management and customer updates. Whether you use the standard OAuth connection or set up a custom app, you’ll streamline operations and save valuable time. Explore Make’s automation features to optimize your Shopify store’s performance and enjoy a more seamless workflow.</p>
]]></content:encoded></item><item><title><![CDATA[Mastering Docker: A Comprehensive Guide for Beginners]]></title><description><![CDATA[What is Docker?
Docker is an open-source platform that automates the deployment, scaling, and management of applications in lightweight, portable containers. Containers package an application and its dependencies, ensuring that it runs consistently a...]]></description><link>https://rohit-lavvanshi.hashnode.dev/mastering-docker-a-comprehensive-guide-for-beginners</link><guid isPermaLink="true">https://rohit-lavvanshi.hashnode.dev/mastering-docker-a-comprehensive-guide-for-beginners</guid><category><![CDATA[Docker]]></category><category><![CDATA[containers]]></category><category><![CDATA[coding]]></category><category><![CDATA[Programming Blogs]]></category><dc:creator><![CDATA[Rohit Lavvanshi]]></dc:creator><pubDate>Wed, 24 Jul 2024 18:17:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1721844992987/73abdc28-813d-4f48-8798-393d2c8e0bda.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-what-is-docker">What is Docker?</h3>
<p>Docker is an open-source platform that automates the deployment, scaling, and management of applications in lightweight, portable containers. Containers package an application and its dependencies, ensuring that it runs consistently across different environments, from a developer's local machine to a production server.</p>
<h3 id="heading-why-use-docker">Why Use Docker?</h3>
<ul>
<li><p><strong>Consistency:</strong> Ensures the application behaves the same regardless of where it runs.</p>
</li>
<li><p><strong>Isolation:</strong> Applications run in their containers without affecting others.</p>
</li>
<li><p><strong>Efficiency:</strong> Containers are lightweight, starting quickly and using fewer resources.</p>
</li>
<li><p><strong>Scalability:</strong> Easy to scale applications up or down to meet demand.</p>
</li>
</ul>
<h3 id="heading-key-concepts">Key Concepts</h3>
<ol>
<li><p><strong>Containers:</strong> Lightweight and portable executable units containing everything needed to run a piece of software.</p>
</li>
<li><p><strong>Images:</strong> Immutable snapshots of containers. They serve as a blueprint for creating containers.</p>
</li>
<li><p><strong>Dockerfile:</strong> A script with instructions on how to build an image.</p>
</li>
<li><p><strong>Docker Hub:</strong> A cloud-based repository for Docker images.</p>
</li>
<li><p><strong>Docker Compose:</strong> A tool for defining and running multi-container Docker applications.</p>
</li>
</ol>
<h3 id="heading-getting-started-with-docker">Getting Started with Docker</h3>
<h4 id="heading-step-1-install-docker">Step 1: Install Docker</h4>
<p><strong>For Windows and Mac:</strong></p>
<ul>
<li><p>Download Docker Desktop from the <a target="_blank" href="https://www.docker.com/products/docker-desktop">official Docker website</a>.</p>
</li>
<li><p>Follow the installation instructions.</p>
</li>
</ul>
<p><strong>For Linux:</strong></p>
<ul>
<li><p>Use the package manager to install Docker. For example, on Ubuntu:</p>
<pre><code class="lang-bash">  sudo apt-get update
  sudo apt-get install docker-ce docker-ce-cli containerd.io
</code></pre>
</li>
<li><p>Start Docker:</p>
<pre><code class="lang-bash">  sudo systemctl start docker
  sudo systemctl <span class="hljs-built_in">enable</span> docker
</code></pre>
</li>
</ul>
<h4 id="heading-step-2-verify-the-installation">Step 2: Verify the Installation</h4>
<p>Open a terminal or command prompt and run:</p>
<pre><code class="lang-bash">docker --version
</code></pre>
<p>You should see the Docker version installed on your system.</p>
<h4 id="heading-step-3-run-your-first-container">Step 3: Run Your First Container</h4>
<p>Docker provides a simple way to run containers. Let's run a "Hello World" container to verify everything is set up correctly:</p>
<pre><code class="lang-bash">docker run hello-world
</code></pre>
<p>This command pulls the "hello-world" image from Docker Hub, creates a container, and runs it. You should see a message confirming that Docker is working correctly.</p>
<h4 id="heading-step-4-working-with-docker-images">Step 4: Working with Docker Images</h4>
<p><strong>Pulling an Image:</strong> To pull an image from Docker Hub, use:</p>
<pre><code class="lang-bash">docker pull &lt;image_name&gt;
</code></pre>
<p>For example, to pull the official Python image:</p>
<pre><code class="lang-bash">docker pull python
</code></pre>
<p><strong>Listing Images:</strong> To see all downloaded images:</p>
<pre><code class="lang-bash">docker images
</code></pre>
<h4 id="heading-step-5-creating-your-own-docker-image">Step 5: Creating Your Own Docker Image</h4>
<p>To create a custom Docker image, you need to write a <code>Dockerfile</code>. Here's a basic example for a Python application:</p>
<ol>
<li><p><strong>Create a Directory:</strong></p>
<pre><code class="lang-bash"> mkdir myapp
 <span class="hljs-built_in">cd</span> myapp
</code></pre>
</li>
<li><p><strong>Write a Python Script:</strong> Create a file named <a target="_blank" href="http://app.py"><code>app.py</code></a>:</p>
<pre><code class="lang-python"> print(<span class="hljs-string">"Hello, Docker!"</span>)
</code></pre>
</li>
<li><p><strong>Write a Dockerfile:</strong> Create a file named <code>Dockerfile</code> with the following content:</p>
<pre><code class="lang-dockerfile"> <span class="hljs-comment"># Use the official Python image from the Docker Hub</span>
 <span class="hljs-keyword">FROM</span> python:<span class="hljs-number">3.9</span>-slim

 <span class="hljs-comment"># Set the working directory</span>
 <span class="hljs-keyword">WORKDIR</span><span class="bash"> /app</span>

 <span class="hljs-comment"># Copy the current directory contents into the container at /app</span>
 <span class="hljs-keyword">COPY</span><span class="bash"> . /app</span>

 <span class="hljs-comment"># Run the Python script</span>
 <span class="hljs-keyword">CMD</span><span class="bash"> [<span class="hljs-string">"python"</span>, <span class="hljs-string">"app.py"</span>]</span>
</code></pre>
</li>
<li><p><strong>Build the Docker Image:</strong></p>
<pre><code class="lang-bash"> docker build -t my-python-app .
</code></pre>
</li>
<li><p><strong>Run the Docker Container:</strong></p>
<pre><code class="lang-bash"> docker run my-python-app
</code></pre>
</li>
</ol>
<p>You should see the output: <code>Hello, Docker!</code></p>
<h3 id="heading-using-docker-compose">Using Docker Compose</h3>
<p>Docker Compose is a tool for defining and running multi-container Docker applications. With a <code>docker-compose.yml</code> file, you can configure your application's services.</p>
<p><strong>Example:</strong></p>
<ol>
<li><p><strong>Create a</strong> <code>docker-compose.yml</code> file:</p>
<pre><code class="lang-yaml"> <span class="hljs-attr">version:</span> <span class="hljs-string">'3'</span>
 <span class="hljs-attr">services:</span>
   <span class="hljs-attr">web:</span>
     <span class="hljs-attr">image:</span> <span class="hljs-string">nginx</span>
     <span class="hljs-attr">ports:</span>
       <span class="hljs-bullet">-</span> <span class="hljs-string">"80:80"</span>
   <span class="hljs-attr">redis:</span>
     <span class="hljs-attr">image:</span> <span class="hljs-string">redis</span>
</code></pre>
</li>
<li><p><strong>Run the Application:</strong></p>
<pre><code class="lang-bash"> docker-compose up
</code></pre>
</li>
</ol>
<p>This command starts an Nginx web server and a Redis database.</p>
<h3 id="heading-advanced-dockerfile-tips">Advanced Dockerfile Tips</h3>
<ol>
<li><p><strong>Multi-Stage Builds:</strong> Multi-stage builds allow you to use multiple <code>FROM</code> statements in your Dockerfile. This helps reduce the final image size by separating build and runtime dependencies.</p>
<pre><code class="lang-dockerfile"> <span class="hljs-comment"># Stage 1: Build</span>
 <span class="hljs-keyword">FROM</span> golang:alpine AS builder
 <span class="hljs-keyword">WORKDIR</span><span class="bash"> /app</span>
 <span class="hljs-keyword">COPY</span><span class="bash"> . .</span>
 <span class="hljs-keyword">RUN</span><span class="bash"> go build -o myapp</span>

 <span class="hljs-comment"># Stage 2: Run</span>
 <span class="hljs-keyword">FROM</span> alpine
 <span class="hljs-keyword">WORKDIR</span><span class="bash"> /app</span>
 <span class="hljs-keyword">COPY</span><span class="bash"> --from=builder /app/myapp .</span>
 <span class="hljs-keyword">CMD</span><span class="bash"> [<span class="hljs-string">"./myapp"</span>]</span>
</code></pre>
</li>
<li><p><strong>Caching Layers:</strong> Docker caches each layer of an image build, so try to order your Dockerfile instructions to leverage this. Frequently changing instructions (e.g., <code>COPY . .</code>) should be placed after infrequently changing ones (e.g., <code>RUN apt-get update</code>).</p>
</li>
<li><p><strong>Environment Variables:</strong> Use environment variables to configure your application and avoid hardcoding values.</p>
<pre><code class="lang-dockerfile"> <span class="hljs-keyword">ENV</span> APP_ENV=production
</code></pre>
</li>
</ol>
<h3 id="heading-docker-networking">Docker Networking</h3>
<p>Docker provides a robust networking model to connect containers. By default, Docker creates a bridge network for containers to communicate.</p>
<p><strong>Creating a Custom Network:</strong></p>
<ol>
<li><p><strong>Create a Network:</strong></p>
<pre><code class="lang-bash"> docker network create mynetwork
</code></pre>
</li>
<li><p><strong>Run Containers in the Network:</strong></p>
<pre><code class="lang-bash"> docker run -d --name db --network mynetwork postgres
 docker run -d --name web --network mynetwork -p 80:80 nginx
</code></pre>
</li>
<li><p><strong>Communicate Between Containers:</strong> Containers can communicate using container names as DNS names within the network. For example, the web container can reach the db container using <code>db</code> as the hostname.</p>
</li>
</ol>
<h3 id="heading-docker-volumes">Docker Volumes</h3>
<p>Volumes are used to persist data generated by and used by Docker containers. They are the preferred mechanism for persisting data generated by and used by Docker containers.</p>
<p><strong>Creating and Using Volumes:</strong></p>
<ol>
<li><p><strong>Create a Volume:</strong></p>
<pre><code class="lang-bash"> docker volume create myvolume
</code></pre>
</li>
<li><p><strong>Mount a Volume to a Container:</strong></p>
<pre><code class="lang-bash"> docker run -d --name db -v myvolume:/var/lib/postgresql/data postgres
</code></pre>
</li>
</ol>
<h3 id="heading-managing-docker-containers">Managing Docker Containers</h3>
<p><strong>Listing Containers:</strong> To list all running containers:</p>
<pre><code class="lang-bash">docker ps
</code></pre>
<p>To list all containers (running and stopped):</p>
<pre><code class="lang-bash">docker ps -a
</code></pre>
<p><strong>Stopping a Container:</strong></p>
<pre><code class="lang-bash">docker stop &lt;container_id&gt;
</code></pre>
<p><strong>Removing a Container:</strong></p>
<pre><code class="lang-bash">docker rm &lt;container_id&gt;
</code></pre>
<p><strong>Removing an Image:</strong></p>
<pre><code class="lang-bash">docker rmi &lt;image_name&gt;
</code></pre>
<h3 id="heading-debugging-and-logging">Debugging and Logging</h3>
<ol>
<li><p><strong>View Logs:</strong> To view logs for a container:</p>
<pre><code class="lang-bash"> docker logs &lt;container_id&gt;
</code></pre>
</li>
<li><p><strong>Attach to a Running Container:</strong></p>
<pre><code class="lang-bash"> docker attach &lt;container_id&gt;
</code></pre>
</li>
<li><p><strong>Execute Commands in a Running Container:</strong></p>
<pre><code class="lang-bash"> docker <span class="hljs-built_in">exec</span> -it &lt;container_id&gt; /bin/bash
</code></pre>
</li>
</ol>
<h3 id="heading-best-practices">Best Practices</h3>
<ul>
<li><p><strong>Keep Images Small:</strong> Use slim or alpine versions of base images.</p>
</li>
<li><p><strong>Multi-stage Builds:</strong> Use multi-stage builds to reduce the final image size.</p>
</li>
<li><p><strong>Tagging:</strong> Use meaningful tags for your images.</p>
</li>
<li><p><strong>Security:</strong> Regularly update your images to include security patches.</p>
</li>
<li><p><strong>Minimize the Number of Layers:</strong> Combine commands in the Dockerfile where possible.</p>
</li>
<li><p><strong>Use .dockerignore:</strong> Similar to .gitignore, it helps reduce the build context sent to the Docker daemon.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Docker simplifies the process of developing, shipping, and running applications. By encapsulating your application and its dependencies into containers, you ensure consistency across different environments and streamline the development workflow.</p>
<p>For further reading and more advanced topics, refer to the <a target="_blank" href="https://docs.docker.com/">official Docker documentation</a>. Happy Dockering!</p>
]]></content:encoded></item><item><title><![CDATA[Unleash the Power of Automation: Integrate Gmail with Make.com]]></title><description><![CDATA[Introduction
Automating Emails with Gmail OAuth and Google Cloud Console for Make.com
Discover how to seamlessly integrate Make.com with Gmail OAuth using Google Cloud Console to automate your email workflows. Whether you're looking to enhance commun...]]></description><link>https://rohit-lavvanshi.hashnode.dev/unleash-the-power-of-automation-integrate-gmail-with-makecom</link><guid isPermaLink="true">https://rohit-lavvanshi.hashnode.dev/unleash-the-power-of-automation-integrate-gmail-with-makecom</guid><dc:creator><![CDATA[Rohit Lavvanshi]]></dc:creator><pubDate>Sun, 14 Jul 2024 08:01:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1720942334474/402bbaef-cc68-4a9d-a1e5-2c2a181c1d9a.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Automating Emails with Gmail OAuth and Google Cloud Console for Make.com</p>
<p>Discover how to seamlessly integrate Make.com with Gmail OAuth using Google Cloud Console to automate your email workflows. Whether you're looking to enhance communication efficiency, automate notifications, or personalize user interactions, this blog is your comprehensive guide. Join us as we navigate through setting up OAuth, integrating Make.com, and leveraging Google's powerful tools to streamline your email processes.</p>
<p>Let's automate emails with Gmail OAuth—empowering your Make.com experience with efficiency and precision!</p>
<h2 id="heading-prerequisites">Prerequisites:</h2>
<p>Before getting started, ensure you have the following:</p>
<ul>
<li><p><strong>Google Account:</strong> You'll need a Google Account to access Google Cloud Console and create OAuth credentials.</p>
</li>
<li><p><strong>Make.com Account:</strong> Sign up for a Make.com account to leverage its project management and automation capabilities (<a target="_blank" href="http://Make.com">Make.com</a><a target="_blank" href="https://www.make.com">sign-up page).</a></p>
</li>
</ul>
<h2 id="heading-why-makecom-for-gmail-automation">Why Make.com for Gmail Automation?</h2>
<p>Make.com empowers users to visually create, build, and automate without limits. Whether you're managing projects, collaborating with teams<a target="_blank" href="https://www.make.com">,</a> or optimizing workflows, Make.com provides a robust platform that integrates seamlessly with Gmail automation. Imagine automating email notifications for project milestones, task updates, or team communications directly from Make.com to Gmail. This integration not only enhances communication efficiency but also ensures that all stakeholders are kept informed in real-time, boosting productivity and project transparency.</p>
<h2 id="heading-getting-started-with-gmail-oauth">Getting Started with Gmail OAuth:</h2>
<ol>
<li><h3 id="heading-create-a-project-in-google-cloud-console">Create a Project in Google Cloud Console:</h3>
</li>
</ol>
<ul>
<li><p>Navigate to the <a target="_blank" href="https://console.cloud.google.com/">Google Cloud Console</a> and create a new project.</p>
</li>
<li><p>Note down the Project ID and Project Number for future reference.</p>
</li>
</ul>
<ol start="2">
<li><h3 id="heading-enable-gmail-api">Enable Gmail API:</h3>
</li>
</ol>
<ul>
<li><p>Inside your Google Cloud Console project, navigate to the API &amp; Services Dashboard.</p>
</li>
<li><p>Enable the Gmail API by searching for "Gmail API" and clicking on "Enable".</p>
</li>
</ul>
<ol start="3">
<li><h3 id="heading-set-up-oauth-consent-screen">Set Up OAuth Consent Screen:</h3>
</li>
</ol>
<ul>
<li><p>Configure the OAuth Consent Screen.</p>
</li>
<li><p>Add these Authorized Domains for Make.</p>
<ol>
<li><p>integromate.com</p>
</li>
<li><p>make.com</p>
</li>
</ol>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720784667876/46b9c6d6-dcc3-4946-b157-f710776b9091.png" alt class="image--center mx-auto" /></p>
<p>  Add your Email Address in Developer contact information.</p>
</li>
<li><p>Click on Save and Continue.</p>
</li>
<li><p>Click on Add or Remove Scopes and Add all scopes for Gmail.</p>
</li>
<li><p>Again Click on Save and Continue.</p>
</li>
<li><p>Add your Email in test users.</p>
</li>
<li><p>Again Click on Save and Continue.</p>
</li>
</ul>
<p>Review all the Information and click on "Back to Dashboard."</p>
<ol start="4">
<li><h3 id="heading-create-oauth-credentials">Create OAuth Credentials:</h3>
</li>
</ol>
<ul>
<li><p>Navigate to the Credentials tab in the API &amp; Services Dashboard.</p>
</li>
<li><p>Click on "Create Credentials" and select "OAuth client ID".</p>
</li>
<li><p>Choose the application type as "Web application" for integrating with Make.com.</p>
</li>
<li><p>Configure the authorized redirect URIs.</p>
</li>
<li><p><strong>Here are all Redirect URI's for Make:</strong></p>
<pre><code class="lang-plaintext">  https://www.make.com/oauth/cb/oauth2
  https://www.make.com/oauth/cb/google-custom
  https://www.make.com/oauth/cb/google-restricted
  https://www.make.com/oauth/cb/google-cloud-speech
  https://www.make.com/oauth/cb/google-analytics-4
  https://www.integromat.com/oauth/cb/oauth2
  https://www.integromat.com/oauth/cb/google-custom
  https://www.integromat.com/oauth/cb/google-restricted
  https://www.integromat.com/oauth/cb/google-cloud-speech
  https://www.integromat.com/oauth/cb/google-analytics-4
</code></pre>
</li>
</ul>
<ol start="5">
<li><h3 id="heading-obtain-oauth-client-id-and-client-secret"><strong>Obtain OAuth Client ID and Client Secret:</strong></h3>
</li>
</ol>
<ul>
<li>Once created, note down the OAuth client ID and client secret provided by Google Cloud Console. These will be used to authenticate requests from Make.com to Gmail.</li>
</ul>
<h2 id="heading-connecting-gmail-on-makecom"><strong>Connecting Gmail on Make.com:</strong></h2>
<p>Once you have set up OAuth credentials and configured Google Cloud Console, follow these steps to connect your Gmail account on Make.com:</p>
<ol>
<li><h3 id="heading-create-a-scenario"><strong>Create a Scenario</strong>:</h3>
</li>
</ol>
<ul>
<li><p>Log in to your <a target="_blank" href="http://Make.com">Make.com</a> account.</p>
</li>
<li><p>Create a new scenario and select "Gmail" as the first module.</p>
</li>
</ul>
<ol start="2">
<li><h3 id="heading-connect-gmail-account"><strong>Connect Gmail Account</strong>:</h3>
</li>
</ol>
<ul>
<li><p>In the Gmail module, click "Add" to create a new connection.</p>
</li>
<li><p>You will be prompted to enter your client ID and client secret in show advance setting section.</p>
</li>
<li><p>Enter the Client Id &amp; Client Secret which is generated from Google Cloud Platform.</p>
</li>
<li><p>Click on sign in with google button and Follow the on-screen instructions to authorize <a target="_blank" href="http://Make.com">Make.com</a> to access your Gmail account.</p>
</li>
</ul>
<ol start="3">
<li><h3 id="heading-set-up-modules"><strong>Set Up Modules</strong>:</h3>
</li>
</ol>
<ul>
<li><p>Add other modules to your scenario as needed (e.g., trigger actions based on receiving emails, sending emails, etc.).</p>
</li>
<li><p>Configure each module with the required parameters and fields.</p>
</li>
</ul>
<ol start="4">
<li><h3 id="heading-test-and-activate"><strong>Test and Activate</strong>:</h3>
</li>
</ol>
<ul>
<li><p>Test your scenario to ensure it works as expected.</p>
</li>
<li><p>Once satisfied, activate the scenario to run automatically based on your defined triggers.</p>
</li>
</ul>
<h2 id="heading-pro-tips-for-a-smooth-setup">Pro Tips for a Smooth Setup</h2>
<ul>
<li><p><strong>Tip 1</strong>: Double-check your OAuth consent screen details to avoid issues during the authorization process.</p>
</li>
<li><p><strong>Tip 2</strong>: Use descriptive names for your Google Cloud project and OAuth credentials to keep your setup organized.</p>
</li>
<li><p><strong>Tip 3</strong>: Test each step as you go to troubleshoot any potential issues early on.</p>
</li>
</ul>
<h2 id="heading-real-world-examples">Real-World Examples</h2>
<ul>
<li><p><strong>Use Case 1</strong>: Automatically label and organize emails from specific senders or with specific keywords.</p>
</li>
<li><p><strong>Use Case 2</strong>: Trigger automated responses to common inquiries, saving time on repetitive tasks.</p>
</li>
</ul>
<h2 id="heading-troubleshooting-common-issues">Troubleshooting Common Issues</h2>
<ul>
<li><p><strong>Issue</strong>: "Invalid redirect URI" error.</p>
</li>
<li><p><strong>Solution</strong>: Ensure the redirect URI in your Google Cloud Console matches exactly with the one provided by <a target="_blank" href="http://Make.com">Make.com</a>.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Automation is a game-changer when it comes to managing your digital tasks. By integrating Gmail with <a target="_blank" href="http://Make.com">Make.com</a>, you can streamline your email management, save time on repetitive tasks, and enhance your productivity. This step-by-step guide has shown you how to set up this powerful automation, from configuring Google Cloud Console to creating scenarios in <a target="_blank" href="http://Make.com">Make.com</a>. Now, it's your turn to harness the power of automation and make your workflows more efficient.</p>
<h2 id="heading-engage-with-me">Engage with Me!</h2>
<p>Have you tried automating your tasks with <a target="_blank" href="http://Make.com">Make.com</a> and Gmail? I’d love to hear about your experiences and any tips you might have. Share your stories, ask questions, and connect with me in the comments section below.</p>
<p>If you have specific automation needs or require assistance in setting up automation for your applications, feel free to reach out. I'm here to help you navigate the world of automation and make the most out of your digital tools. Contact me directly or leave a comment, and I’ll get back to you as soon as possible.</p>
<p>Stay updated with the latest automation tips and tricks by subscribing to my blog and following me on social media. Let’s revolutionize the way we work together!</p>
<p><strong>Happy automating!</strong></p>
]]></content:encoded></item></channel></rss>