<?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: Mihir Amin</title>
    <description>The latest articles on DEV Community by Mihir Amin (@dynamicmortal).</description>
    <link>https://dev.to/dynamicmortal</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%2F701071%2F2d33fd22-d787-4820-83ce-9163c32fc5a0.jpg</url>
      <title>DEV Community: Mihir Amin</title>
      <link>https://dev.to/dynamicmortal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dynamicmortal"/>
    <language>en</language>
    <item>
      <title>InboxOps – AI-Powered Email Automation Platform Using Postmark Inbound Parsing</title>
      <dc:creator>Mihir Amin</dc:creator>
      <pubDate>Sat, 07 Jun 2025 10:08:54 +0000</pubDate>
      <link>https://dev.to/dynamicmortal/inboxops-ai-powered-email-automation-platform-using-postmark-inbound-parsing-1378</link>
      <guid>https://dev.to/dynamicmortal/inboxops-ai-powered-email-automation-platform-using-postmark-inbound-parsing-1378</guid>
      <description>&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/postmark"&gt;Postmark Challenge: Inbox Innovators&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;InboxOps&lt;/strong&gt; is a powerful &lt;strong&gt;AI-augmented operations platform&lt;/strong&gt; that transforms &lt;strong&gt;inbound emails&lt;/strong&gt; into &lt;strong&gt;real-time dashboards&lt;/strong&gt; — using &lt;a href="https://postmarkapp.com/inbound" rel="noopener noreferrer"&gt;Postmark's inbound email parsing&lt;/a&gt; as its foundation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;customer&lt;/strong&gt; emailed &lt;a href="mailto:support@company.com"&gt;support@company.com&lt;/a&gt;: "My card was charged twice."&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;employee&lt;/strong&gt; sent to &lt;a href="mailto:hr@company.com"&gt;hr@company.com&lt;/a&gt;: "I need leave from June 15."&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;vendor&lt;/strong&gt; mailed &lt;a href="mailto:ops@company.com"&gt;ops@company.com&lt;/a&gt;: "Attached is this month’s invoice."&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;manager&lt;/strong&gt; forwarded to &lt;a href="mailto:approvals@company.com"&gt;approvals@company.com&lt;/a&gt;: "Approve $3,000 budget?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And all those inboxes are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fragmented&lt;/li&gt;
&lt;li&gt;Human-dependent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People were copy-pasting from Emails into Tickets. Approvals were lost in threads. Support issues were never tagged. There was no single dashboard to see anything.&lt;/p&gt;

&lt;p&gt;Inboxops automate workflows from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 Customer Orders
&lt;/li&gt;
&lt;li&gt;✅ Approval Requests
&lt;/li&gt;
&lt;li&gt;🛠️ Support Tickets
&lt;/li&gt;
&lt;li&gt;🧑‍💼 HR / Leave Requests
&lt;/li&gt;
&lt;li&gt;🙋 Customer Enquiries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;InboxOps&lt;/strong&gt; turns every structured or unstructured email into actionable items using Postmark + LLMs, and visualizes them in a modern, modular dashboard, and helps create APIs to use in Internal Dashboards.&lt;/p&gt;

&lt;p&gt;Single inbox automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand the intent (order, complaint, HR, etc.)&lt;/li&gt;
&lt;li&gt;Summarize the message using AI&lt;/li&gt;
&lt;li&gt;Assign tags and priority levels&lt;/li&gt;
&lt;li&gt;Route to the right internal dashboard&lt;/li&gt;
&lt;li&gt;Trigger concerned workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&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%2Fyjv9cv8debep8fjlpe8o.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%2Fyjv9cv8debep8fjlpe8o.png" alt="Inboxops Dashboard"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://inboxops.onrender.com" rel="noopener noreferrer"&gt;https://inboxops.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/DYNAMICMORTAL/inboxops" rel="noopener noreferrer"&gt;https://github.com/DYNAMICMORTAL/inboxops&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/DYNAMICMORTAL" rel="noopener noreferrer"&gt;
        DYNAMICMORTAL
      &lt;/a&gt; / &lt;a href="https://github.com/DYNAMICMORTAL/inboxops" rel="noopener noreferrer"&gt;
        inboxops
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      InboxOps – Automate operations directly from your inbox using Postmark + AI. Real-time email parsing, classification, dashboards, and replies. Built for the Postmark Challenge: Inbox Innovators 2025.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;📬 InboxOps&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;🚀 AI-powered workflow automation platform that converts &lt;strong&gt;inbound emails&lt;/strong&gt; into &lt;strong&gt;live, actionable dashboards&lt;/strong&gt; — built with &lt;a href="https://postmarkapp.com/inbound" rel="nofollow noopener noreferrer"&gt;Postmark&lt;/a&gt; and LLMs.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Highlights&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;📥 &lt;strong&gt;Postmark Inbound Email Parsing&lt;/strong&gt; → clean JSON&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;LLM-powered Summarization, Classification, Tags, Priority&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🗂️ Route to: Orders, Approvals, Support, HR, Enquiries&lt;/li&gt;
&lt;li&gt;🖥️ Clean modular &lt;strong&gt;dashboard UI with filters, pills, modals&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Built-in Enterprise AI Chatbot&lt;/strong&gt; for querying&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🖼️ Screenshots&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/48fce868ec1c808dbf31aee787547a96480137c8f8cb56385cae2f0c061b3c82/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f74696d696163707a7937337a37387335723168352e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/48fce868ec1c808dbf31aee787547a96480137c8f8cb56385cae2f0c061b3c82/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f74696d696163707a7937337a37387335723168352e706e67" alt="Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/119f2151288c6ec49069e21709b89c6e823fceab588454380cc5d16220292960/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f6a347a6e66746a38306d6c767872783474306e362e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/119f2151288c6ec49069e21709b89c6e823fceab588454380cc5d16220292960/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f6a347a6e66746a38306d6c767872783474306e362e706e67" alt="Orders + Summary"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2aa955f4f2d1fb72b739649de4283f0aefb44bf35a9743531710e857347c8015/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f3570716b626761666e383435616a326d646a77712e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/2aa955f4f2d1fb72b739649de4283f0aefb44bf35a9743531710e857347c8015/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f3570716b626761666e383435616a326d646a77712e706e67" alt="Support Enquiries"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛠️ Tech Stack&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; — Backend &amp;amp; APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Postmark&lt;/strong&gt; — Inbound Email Parsing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini Flash (LLM)&lt;/strong&gt; — Summary, tags, criticality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite + SQLAlchemy&lt;/strong&gt; — DB &amp;amp; ORM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jinja2 + Tailwind CSS&lt;/strong&gt; — UI templates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render.com&lt;/strong&gt; — Hosting (Demo)&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🧠 AI Chat Demo&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;InboxOps includes a native AI chat modal that uses parsed email context to answer questions like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Show recent approvals.”&lt;/li&gt;
&lt;li&gt;“Track order ODR-20240603...”&lt;/li&gt;
&lt;li&gt;“What is the trend in leave requests?”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ed11989e729432180c7b07a7850939baba82a49a25e27fa8318bd3f318ab30a0/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f7a64666562386a71763571686973747478676a342e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/ed11989e729432180c7b07a7850939baba82a49a25e27fa8318bd3f318ab30a0/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f75706c6f6164732f61727469636c65732f7a64666562386a71763571686973747478676a342e706e67" alt="AI Chat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔗 Live Demo&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;🌐 &lt;a href="https://inboxops.onrender.com" rel="nofollow noopener noreferrer"&gt;https://inboxops.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/DYNAMICMORTAL/inboxops" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&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%2Ftimiacpzy73z78s5r1h5.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%2Ftimiacpzy73z78s5r1h5.png" alt="dashboard"&gt;&lt;/a&gt;&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%2F56t7i6q7e161ap6caxg8.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%2F56t7i6q7e161ap6caxg8.png" alt="dashboard cards"&gt;&lt;/a&gt;&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%2Fj4znftj80mlvxrx4t0n6.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%2Fj4znftj80mlvxrx4t0n6.png" alt="order information, items, quantity, price extracted from Email Content"&gt;&lt;/a&gt;Order information, items, quantity, price extracted from Email Content&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%2F5pqkbgafn845aj2mdjwq.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%2F5pqkbgafn845aj2mdjwq.png" alt="customer enquiries, support, issues, requests, tickets are assigned Ticket ID concerned"&gt;&lt;/a&gt;Customer enquiries, support, issues, requests, tickets are assigned Ticket ID concerned&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%2Fdlq8ivnbze9ly4o6v4ru.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%2Fdlq8ivnbze9ly4o6v4ru.png" alt="customer support tickets management"&gt;&lt;/a&gt;Customer support tickets management&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🟧 &lt;strong&gt;FastAPI&lt;/strong&gt; (Python) — REST APIs and webhook handling
&lt;/li&gt;
&lt;li&gt;📬 &lt;strong&gt;Postmark&lt;/strong&gt; — Inbound webhook parsing + email confirmation sending
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Gemini 2.0 Flash&lt;/strong&gt; — Summary, classification, tag + urgency prediction
&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Jinja2 + TailwindCSS&lt;/strong&gt; - UI components, dashboards, modals
&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;SQLite + SQLAlchemy&lt;/strong&gt; - Fast storage and search for parsed emails&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email&lt;/strong&gt; - Postmark Inbound Webhooks for real-time email ingestion&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Modules&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Orders&lt;/code&gt;: Parse and confirm orders&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Approvals&lt;/code&gt;: HR and budget workflows&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Support&lt;/code&gt;: AI-tagged issues with urgency&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HR Requests&lt;/code&gt;: Leave and policy handling&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Enquiries&lt;/code&gt;: Customer request viewer&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AI Chat Assistant&lt;/code&gt;: Modal chatbot for agents&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Features&lt;/strong&gt; :
Custom parsers for orders, approvals, and support tickets
AI-powered accurate summary of Mail content and tag extraction
Dynamic dashboards and modals
Enterprise AI chat with recommended prompts&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;1️⃣ Inbound Email Parsing via Postmark&lt;br&gt;
When a mail is sent to the Postmark Inbound Email Stream, the Postmark parses the message and sends a full JSON payload.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "From": "user@company.com",&lt;br&gt;
  "Subject": "Leave Request: July 2-5",&lt;br&gt;
  "TextBody": "Hi, I’d like to apply for leave from July 2 to 5 for personal reasons.",&lt;br&gt;
  "Attachments": [],&lt;br&gt;
  "Headers": [...],&lt;br&gt;
  ...&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
It also shows if the Email follows the DKIM Signature and SPF Policy for making Email secure. I made this JSON data to be received by &lt;code&gt;/inbound-email&lt;/code&gt; and inserted into the emails table with all metadata and raw content stored.&lt;/p&gt;

&lt;p&gt;I wanted to distinguish Email types because of my system design. I wrote a basic logic of Keys for Order Emails ODR, HR Workflows, and Approval Emails APL, Customer Enquiries as SUP with including YYYYMMDD00serialNumber. &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%2Famws39mq22c8m3jcr4qq.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%2Famws39mq22c8m3jcr4qq.png" alt="screenshot image of Email model"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣ Intelligent Email Understanding with Gemini&lt;br&gt;
The Email type is to be identified. I thought of using RegEx, a dictionary of known type of words and phrases. To improve the accuracy of classification, alongside parsing the JSON to use the Google Gemini LLM Model, the inbound email is parsed by a prompt chain to extract:&lt;/p&gt;

&lt;p&gt;Type: ORDER, SUPPORT, APPROVAL, HR, ENQUIRY&lt;br&gt;
Summary: A 1–2 line abstract&lt;br&gt;
Tags: e.g. ["leave", "login issue"]&lt;br&gt;
Criticality: Low, Medium, High, Urgent&lt;br&gt;
These fields are stored alongside the email and used to guide logic and UI rendering.&lt;/p&gt;

&lt;p&gt;3️⃣ Backend Logic &amp;amp; Storage (FastAPI + SQLAlchemy)&lt;br&gt;
The backend routing of each email to trigger Workflows is important. The Dashboard is dynamic for real-time Email communications in an Enterprise. For Inboxops to serve scalability, FastAPI is the best choice.&lt;br&gt;
The routings are as follows:&lt;br&gt;
/u - The Inboxops Inbox&lt;br&gt;
/dashboard or /u?page=dashboard - Support, Issues, Ticket, success rate, Dashboard Panel&lt;br&gt;
/new - Customer Support Tickets Chat for the concerned team to have an in-depth chat&lt;br&gt;
/support-customer - Tickets Management (Email to Ticket).&lt;br&gt;
/ai-chat - Popup Enterprise AI LLM Chat that uses JSON context, summary, and tags to serve every query in detail. (Present at Header)&lt;/p&gt;

&lt;h3&gt;
  
  
  Enterprise Inboxops AI LLM Chat:
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Example Queries
&lt;/h3&gt;

&lt;p&gt;What is the latest Approval Mail about?&lt;br&gt;
What do the emails discuss in the quarter 2025 - 2026?&lt;br&gt;
What is the time when Employees take the most leave, and how does it affect the Customer Enquiries Supports Tickets? &lt;br&gt;
Track me order ODR-202606030002&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%2Fzdfeb8jqv5qhisttxgj4.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%2Fzdfeb8jqv5qhisttxgj4.png" alt="dashboard showing Modal with AI LLM chat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last thing in development is continuous development, improvement.&lt;br&gt;
From the moment an email lands, it’s transformed into a clean JSON payload with headers, bodies, metadata, and attachments — ready to power whatever comes next.&lt;/p&gt;

&lt;p&gt;That kind of reliability made it easy to focus on the product, not the plumbing.&lt;br&gt;
I built Inboxops on this foundation.&lt;br&gt;
Here are the next features on the roadmap:&lt;br&gt;
Add Slack/MS Teams integration Inbound Email to Slack MS Teams and Slack MS Teams to Outbound Email using Postmark.&lt;br&gt;
Sentiment analysis for customer complaints.&lt;br&gt;
CRM Integration for Internal Team Dashboards&lt;/p&gt;

&lt;p&gt;Well, if you made it this far in the post, here is a thank you 💛 to you 😁✨&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>postmarkchallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>OOPs in a nutshell...</title>
      <dc:creator>Mihir Amin</dc:creator>
      <pubDate>Thu, 13 Oct 2022 10:30:40 +0000</pubDate>
      <link>https://dev.to/dynamicmortal/oops-in-a-nutshell-c78</link>
      <guid>https://dev.to/dynamicmortal/oops-in-a-nutshell-c78</guid>
      <description>&lt;p&gt;&lt;strong&gt;Object-Oriented Programming&lt;/strong&gt; is a methodology or paradigm to design a program using classes and objects. It simplifies the software development and maintenance by providing some concepts defined below:&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Class&lt;/strong&gt; is a user-defined data type which defines its properties and its functions. Class is the only logical representation of the data. For example, Human being is a class. The body parts of a human being are its properties, and the actions performed by the body parts are known as functions. The class does not occupy any memory space till the time an object is instantiated.&lt;/p&gt;

&lt;h2&gt;Syntax for C++ (CLASS)&lt;/h2&gt;

&lt;pre&gt;
  class student{
      public:
             int id;
             int phone;
             string place;
             int add(int x, int y){
             return x + y;
     }
  };
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Object&lt;/strong&gt; is a run-time entity. It is an instance of the class. An object can represent a person, place or any other item. An object can operate on both data members and member functions.&lt;/p&gt;

&lt;h2&gt;Syntax for C++ (OBJECTS)&lt;/h2&gt;

&lt;pre&gt;carModel l = new car(); &lt;/pre&gt;

&lt;h2&gt;Encapsulation&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Encapsulation&lt;/strong&gt; is the process of combining data and functions into a single unit called class. In Encapsulation, the data is not accessed directly, it is accessed through the functions present inside the class. In simpler words, attributes of the class are kept private and public getter and setter methods are provided to manipulate these attributes.&lt;/p&gt;

&lt;h2&gt;Polymorphism&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Polymorphism&lt;/strong&gt; is the ability to present the same interface for differing underlying forms. With polymorphism, each of these classes will have different underlying data. Precisely, Poly means ‘many’ and morphism means ‘forms’.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Types&lt;/u&gt; &lt;u&gt;of&lt;/u&gt; &lt;u&gt;Polymorphism&lt;/u&gt; :&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;em&gt;&lt;li&gt;Compile Time Polymorphism&lt;/li&gt;&lt;/em&gt;
&lt;em&gt;&lt;li&gt;Run Time Polymorphism&lt;/li&gt;&lt;/em&gt;
&lt;/ol&gt;

&lt;h2&gt;A. COMPILE TIME POLYMORPHISM&lt;/h2&gt;

&lt;p&gt;The polymorphism which is implemented at the compile time is known as compile-time polymorphism.&lt;/p&gt;

&lt;h2&gt;B. RUN TIME POLYMORPHISM&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Runtime polymorphism&lt;/strong&gt; is also known as &lt;strong&gt;dynamic polymorphism&lt;/strong&gt;. Function overriding is an example of runtime polymorphism. Function overriding means when the child class contains the method which is already present in the parent class. Hence, the child class overrides the method of the parent class. In case of function overriding, parent and child classes both contain the same function with a different definition. The call to the function is determined at runtime is known as runtime polymorphism.&lt;/p&gt;

&lt;h2&gt;INHERITANCE&lt;/h2&gt;

&lt;p&gt;Inheritance is a process in which one object acquires all the properties and behaviors of its parent object automatically. In such a way, you can reuse, extend or modify the attributes and behaviors which are defined in other classes. In C++, the class which inherits the members of another class is called&lt;br&gt;
derived class and the class whose members are inherited is called base class. The derived class is the specialized class for the base class.&lt;/p&gt;

&lt;h2&gt;Syntax for C++ (INHERITANCE)&lt;/h2&gt;

&lt;pre&gt;class derived_class :: visibility-mode base_class;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Types of Inheritance in C++ :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single Inheritance&lt;/li&gt;
&lt;li&gt;Multiple Inheritance&lt;/li&gt;
&lt;li&gt;Hierarchical Inheritance&lt;/li&gt;
&lt;li&gt;Multilevel Inheritance&lt;/li&gt;
&lt;li&gt;Hybrid inheritance&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>HACKTOBERFEST 2022: I'VE CRACKED IT!!!</title>
      <dc:creator>Mihir Amin</dc:creator>
      <pubDate>Thu, 13 Oct 2022 10:19:41 +0000</pubDate>
      <link>https://dev.to/dynamicmortal/hacktoberfest-2022-ive-cracked-it-23c5</link>
      <guid>https://dev.to/dynamicmortal/hacktoberfest-2022-ive-cracked-it-23c5</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
2 mins read 
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I've cracked the Hacktoberfest 2022.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;HACKTOBERFEST 2022&lt;/em&gt;&lt;/strong&gt; is a fest organized by DigitalOcean, Appwrite &amp;amp; most popular, our love Docker.&lt;br&gt;
&lt;a href="https://hacktoberfest.com/about/" rel="noopener noreferrer"&gt;HACKTOBERFEST 2022 &amp;lt;--- link&lt;/a&gt;&lt;br&gt;
Let's talk now,&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%2Fobjctlmf4dwnrr74vorc.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%2Fobjctlmf4dwnrr74vorc.png" alt="HACKTOBERFEST" width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ELIGIBILITY
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Ans&lt;/em&gt;) Nothing. Everyone who can code, and loves to contribute, are welcomed.&lt;/p&gt;

&lt;h2&gt;
  
  
  NON CODERS?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Ans&lt;/em&gt;) HACKTOBERFEST isn't all about 'code'🥳 Anyone who writes, designs, tests, mentors, or organizes offers much needed support for OPEN-SOURCE PROJECTS all over 'THE WORLD'. &lt;/p&gt;

&lt;h2&gt;
  
  
  HOW TO DO
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Ans&lt;/em&gt;) I have done it, and I've claimed a tee for me&lt;br&gt;
&lt;a href="https://holopin.io/@dynamicmortal" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fholopin.me%2Fdynamicmortal" alt="@dynamicmortal's Holopin board" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, listen to me! Find a repo, &lt;em&gt;message the maintainer&lt;/em&gt; and ask them if you could contribute to their project. &lt;br&gt;
Next, &lt;em&gt;raise a issue and fork the repo&lt;/em&gt;. Now the modus operandi of pulling a request is known by everyone.&lt;br&gt;
Lastly ping the contributor and ask them to merge the pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  TIP:-
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IF (YOU JUST WANT TO COMPLETE THE EVENT JUST) {
 FIND ANY REPO THAT HAS LESS ACTIVITY AND DO IT 
}
ELSE {
 FIND THE FAMOUS OPEN SOURCE REPOSITORIES AND HACK IT
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you have any queries, drop them down. I would answer all of them! &lt;br&gt;
&lt;em&gt;&lt;strong&gt;STAY SAFE. STAY HEALTHY. HAPPY CODING!!! 💕&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>digitalocean</category>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>HOW TO PRACTICE FOR WEB-DEVELOPMENT ?</title>
      <dc:creator>Mihir Amin</dc:creator>
      <pubDate>Mon, 08 Nov 2021 15:00:00 +0000</pubDate>
      <link>https://dev.to/dynamicmortal/how-to-practice-for-web-development--56pc</link>
      <guid>https://dev.to/dynamicmortal/how-to-practice-for-web-development--56pc</guid>
      <description>&lt;p&gt;The best way to master something, is to Practice, practice &amp;amp; practice. Continuous practice leads to mastery. You can be &lt;strong&gt;PERFECT&lt;/strong&gt; too, because&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Practice Makes a Man Perfect!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Let's explore&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="www.codepen.io"&gt;&lt;h2&gt;Codepen&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each week there is a challenge at Codepen. The most loved pens would get featured in the Trending Page of Codepen.io&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%2F4jqb0xg5oxafwp90iwf7.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%2F4jqb0xg5oxafwp90iwf7.png" alt="Image description" width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="www.freecodecamp.org"&gt;&lt;h2&gt;freeCodeCamp&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;freeCodeCamp is the most famous free learning hub for Beginners to learn Coding. freeCodeCamp has many challenges after every course. You can also obtain Certificate after every course completed. &lt;br&gt;&lt;em&gt;Attempt it for perfection.&lt;/em&gt;
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj5soer8dtjhzwu5zf0j.png)
&lt;a href="www.dailyui.co"&gt;&lt;h2&gt;DailyUI&lt;/h2&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Mails with challenges everyday after sign-up. Daily Challenges can help you maintain streak !!!&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%2F8s7tdtlvsbrgm6f3g9br.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%2F8s7tdtlvsbrgm6f3g9br.png" alt="Image description" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>EMMET: Saviour of Developers</title>
      <dc:creator>Mihir Amin</dc:creator>
      <pubDate>Fri, 22 Oct 2021 15:04:43 +0000</pubDate>
      <link>https://dev.to/dynamicmortal/emmet-saviour-of-developers-3l83</link>
      <guid>https://dev.to/dynamicmortal/emmet-saviour-of-developers-3l83</guid>
      <description>&lt;p&gt;Emmet a plugin for everyone who couldn't remember the whole syntax.&lt;/p&gt;

&lt;h1&gt;HTML&lt;/h1&gt;

&lt;p&gt;The basic Boilerplate Generator &lt;code&gt;!&lt;/code&gt;&lt;br&gt;
Just type &lt;code&gt;!&lt;/code&gt; and hit enter.&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%2Fdqhma2ns71ulfey69nwy.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%2Fdqhma2ns71ulfey69nwy.gif" alt="Image description" width="692" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Classes and Id&lt;/h3&gt;

&lt;p&gt;Classes:- &lt;code&gt;div.className&lt;/code&gt;&lt;br&gt;
ID:- &lt;code&gt;div#idName&lt;/code&gt;&lt;br&gt;
hit enter, and Emmet completes it for you !&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div class="className"&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;same goes for &lt;code&gt;section&lt;/code&gt;&lt;br&gt;
&lt;code&gt;section.className&lt;/code&gt; and &lt;code&gt;section#idName&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;Duplicating&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;ul&amp;gt;li*3&lt;/code&gt;&lt;/p&gt;

&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Grouping of Tags&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;div&amp;gt;(hdr&amp;gt;ul&amp;gt;li*2&amp;gt;a)&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Part 2 incoming !!! Stay Tuned &amp;lt;3&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
