{"id":6607,"date":"2019-05-13T09:27:06","date_gmt":"2019-05-13T09:27:06","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=6607"},"modified":"2020-12-07T12:45:40","modified_gmt":"2020-12-07T07:15:40","slug":"action-mailbox-unboxing","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/","title":{"rendered":"Action Mailbox &#8211; Unboxing"},"content":{"rendered":"\n<p>There are many new shiny features are going to be unveiled in Rails 6. New methods for ActiveRecord, ActionText, Action Mailbox are some of them. We are going to talk about Action Mailbox today. What it is? How to use it? How it helped us to solve one real-time problem?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound emails directly via the built-in Exim, Postfix, and Qmail ingresses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p>As I mentioned before, Action Mailbox is going to be shipped with Rails 6 which is not released officially yet when I am writing this blog. You need to install the <code>--pre<\/code> version of rails to use this feature.<\/p>\n\n\n\n<p>Rails 6 needs Ruby version 2.5 or higher. But I met with class loading issue and after searching around found that there is an issue with version 2.5 and Action Mailbox. So use ruby 2.6 or higher version. Here is the issue <a href=\"https:\/\/github.com\/rails\/rails\/issues\/35475\" target=\"_blank\" rel=\"noopener noreferrer\">link<\/a><\/p>\n\n\n\n<p>Install rails 6 using below command. Make sure you are using ruby-2.6 or higher.<\/p>\n\n\n\n<p><code>gem install rails --pre<\/code><\/p>\n\n\n\n<p>I would strongly recommend creating gemsets for it. And create two files <code>.ruby-version<\/code> and <code>.ruby-gemset<\/code> in the root directory.<\/p>\n\n\n\n<p>After installing the rails, create new rails project using below command. This will install all dependencies and take postgres as database<\/p>\n\n\n\n<p><code>rails new action_mailbox -d postgresql<\/code><\/p>\n\n\n\n<p>Now run bellow generator to create mailbox related migration and files.<\/p>\n\n\n\n<p><code>rails action_mailbox:install<\/code><\/p>\n\n\n\n<p>This will create migrations related to active storage and action mailbox tables. <code>Run rails db:migrate<\/code><\/p>\n\n\n\n<p>Run <code>rails webpacker:install<\/code> to install asset files otherwise, it will throw an error while running rails server.<\/p>\n\n\n\n<p>Start rails server using <code>rails server<\/code> command and check <code>localhost:3000<\/code> to check if everything is working fine.<\/p>\n\n\n\n<p>You would need to configure your email service provider to post JSON data to your rails webhook when someone sends email to you.<\/p>\n\n\n\n<p>You can find all the details on the official doc.<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/edgeguides.rubyonrails.org\/action_mailbox_basics.html#configuration\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Use Case\/Problem<\/h3>\n\n\n\n<p>One of our clients comes with a problem that, users send him lots of emails asking the price of the specific product and he would need to reply manually after checking the price.<\/p>\n\n\n\n<p>Technically we would need to perform below actions:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Read inbox with a subject contains SKU<\/li><li>Read SKU from the body and identify SKU<\/li><li>Call an external API to get product details<\/li><li>Send a predefined email with product details to the sender<\/li><\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Read Also: <a href=\"https:\/\/medium.com\/@sanjaywrites\/action-mailbox-explained-why-how-when-af92d8708662\" target=\"_blank\" rel=\"noopener noreferrer\">Rails 6: Action Mailbox\u200a\u2014\u200aExplained. Why?How? When?<\/a><\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation<\/h3>\n\n\n\n<p>You might have already got the idea of how Action Mailbox will help us.<\/p>\n\n\n\n<p>When you have ran <code>rails action_mailbox:install<\/code> it would have created <code>ApplicationMailbox.rb<\/code><\/p>\n\n\n\n<p>In this file, you can define controller-like routes and based on that assign relevant mailbox. There is a specific syntax to define that routes which we will see later.<\/p>\n\n\n\n<p>In our case, if the subject or message body has the word SKU then we would need to process the email using <code>PriceFinderMailbox<\/code> and perform other actions.<\/p>\n\n\n\n<p>Here are some rules for defining the routes based on the original doc.<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/sanjay-btc\/dd29cee390605e519299e27869299bfb.js\"><\/script><\/p>\n\n\n\n<p>We have used the proc like the route to identify if the subject or body has the specific word and accordingly choose the mailbox.<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/sanjay-btc\/71fe5fc0c7ec71c3ca9818479a8965ba.js\"><\/script><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Behind the Scene<\/h3>\n\n\n\n<p>When your rails app got the request via webhook, it will hit the below controller which you can\u2019t find in your code.<\/p>\n\n\n\n<p><code>ActionMailbox::Ingresses::&lt;email_ingress&gt;::InboundEmailsController#create.<\/code>&nbsp; In our case <code>&lt;email_ingress&gt;<\/code> is Postmark.<\/p>\n\n\n\n<p>It will create an entry in below tables<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><code>ActionMailbox::InboundEmail<\/code><\/li><li><code>ActiveStorage::Blob<\/code><\/li><li><code>ActiveStorage::Attachment<\/code><\/li><\/ol>\n\n\n\n<p><code>ActionMailbox::InboundEmail<\/code> has <code>status<\/code> field. This is how the status updates<\/p>\n\n\n\n<p>During the processing of the inbound email, the status will be tracked. Before processing begins, the email will normally have the <code>pending<\/code> status. Once processing begins, just before callbacks and the <code>process<\/code> method is called, the status is changed to processing. If <code>processing<\/code> is allowed to complete, the status is changed to <code>delivered<\/code>. If a bounce is triggered, then <code>bounced<\/code>. If an unhandled exception is bubbled up, then <code>failed<\/code>.<\/p>\n\n\n\n<p>It actually manages using enums<\/p>\n\n\n\n<p><code>ActionMailbox::InboundEmail.statuses<\/code><\/p>\n\n\n\n<p><code>{\"pending\"=&gt;0, \"processing\"=&gt;1, \"delivered\"=&gt;2, \"failed\"=&gt;3, \"bounced\"=&gt;4}<\/code><\/p>\n\n\n\n<p>This is how Action Mailbox added one for a feather to Rails framework and we solved the problem for the client.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.botreetechnologies.com\/ruby-on-rails-development\"><b>Click here for more<\/b> details&#8230;<\/a><\/p>\n\n\n\n<p>At<a href=\"https:\/\/www.botreetechnologies.com\/\"> BoTree Technologies<\/a>, we build enterprise applications with our RoR team of 25+ engineers.<\/p>\n\n\n\n<p>We also specialize in Python, RPA, AI, Django, JavaScript and ReactJS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\">Consulting is free<\/a> &#8211; let us help you grow!<\/h3>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are many new shiny features are going to be&#8230;<\/p>\n","protected":false},"author":8,"featured_media":13475,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,10],"tags":[],"class_list":["post-6607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby-on-rails","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Action Mailbox - Unboxing - BoTree Technologies<\/title>\n<meta name=\"description\" content=\"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Action Mailbox - Unboxing - BoTree Technologies\" \/>\n<meta property=\"og:description\" content=\"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-13T09:27:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-07T07:15:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sanjay Prajapati\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sanjay Prajapati\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\"},\"author\":{\"name\":\"Sanjay Prajapati\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3\"},\"headline\":\"Action Mailbox &#8211; Unboxing\",\"datePublished\":\"2019-05-13T09:27:06+00:00\",\"dateModified\":\"2020-12-07T07:15:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\"},\"wordCount\":694,\"commentCount\":9,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg\",\"articleSection\":[\"Ruby on Rails\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\",\"name\":\"Action Mailbox - Unboxing - BoTree Technologies\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg\",\"datePublished\":\"2019-05-13T09:27:06+00:00\",\"dateModified\":\"2020-12-07T07:15:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3\"},\"description\":\"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg\",\"width\":1920,\"height\":1280,\"caption\":\"Action Mailbox Unboxing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Action Mailbox &#8211; Unboxing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3\",\"name\":\"Sanjay Prajapati\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png\",\"caption\":\"Sanjay Prajapati\"},\"description\":\"Sanjay is a Ruby on Rails Engineer, who also works with Javascript and React. He has strong experience in working with domains like eCommerce, Health and Insurance. In his spare time, he enjoys reading and writing blogs and he is excited to help add the company to his list of successes.\u200b\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Action Mailbox - Unboxing - BoTree Technologies","description":"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/","og_locale":"en_US","og_type":"article","og_title":"Action Mailbox - Unboxing - BoTree Technologies","og_description":"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.","og_url":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2019-05-13T09:27:06+00:00","article_modified_time":"2020-12-07T07:15:40+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg","type":"image\/jpeg"}],"author":"Sanjay Prajapati","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Sanjay Prajapati","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/"},"author":{"name":"Sanjay Prajapati","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3"},"headline":"Action Mailbox &#8211; Unboxing","datePublished":"2019-05-13T09:27:06+00:00","dateModified":"2020-12-07T07:15:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/"},"wordCount":694,"commentCount":9,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg","articleSection":["Ruby on Rails","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/","url":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/","name":"Action Mailbox - Unboxing - BoTree Technologies","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg","datePublished":"2019-05-13T09:27:06+00:00","dateModified":"2020-12-07T07:15:40+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3"},"description":"Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It supports all major platforms or ingresses like Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2019\/05\/action-mailbox-unboxing.jpg","width":1920,"height":1280,"caption":"Action Mailbox Unboxing"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/action-mailbox-unboxing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Action Mailbox &#8211; Unboxing"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/b628623fa9d946d2258f506a476b45e3","name":"Sanjay Prajapati","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/sanjay-prajapati-150x150.png","caption":"Sanjay Prajapati"},"description":"Sanjay is a Ruby on Rails Engineer, who also works with Javascript and React. He has strong experience in working with domains like eCommerce, Health and Insurance. In his spare time, he enjoys reading and writing blogs and he is excited to help add the company to his list of successes.\u200b"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=6607"}],"version-history":[{"count":2,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607\/revisions"}],"predecessor-version":[{"id":13477,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/6607\/revisions\/13477"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/13475"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=6607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=6607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=6607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}