<?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: Devang M P</title>
    <description>The latest articles on DEV Community by Devang M P (@devamp).</description>
    <link>https://dev.to/devamp</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%2F552946%2F6ac7f10f-7383-40c4-ab09-b9284458915e.png</url>
      <title>DEV Community: Devang M P</title>
      <link>https://dev.to/devamp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devamp"/>
    <language>en</language>
    <item>
      <title>Natural Language Contact Ops with Nylas x Gemini</title>
      <dc:creator>Devang M P</dc:creator>
      <pubDate>Mon, 26 Aug 2024 10:51:22 +0000</pubDate>
      <link>https://dev.to/devamp/natural-language-contact-ops-with-nylas-x-gemini-2m2i</link>
      <guid>https://dev.to/devamp/natural-language-contact-ops-with-nylas-x-gemini-2m2i</guid>
      <description>&lt;p&gt;Recently, I asked Google Assistant to add a new contact for me, but it refused, likely because this feature isn't implemented yet. This got me thinking about how I could implement it myself, so I brainstormed and came up with a small system, which I'll share below.&lt;/p&gt;

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

&lt;p&gt;Nylas offers an amazing set of APIs for working with Contacts, Email, and Calendar. However, in this post, I'll focus solely on how to work with Contacts. Here's how it's done.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable Nylas Hosted Authentication&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Nylas hosted authentication is the quickest and easiest way to set up user authentication for your app. With hosted authentication, you redirect users to a Nylas login page and Nylas handles the rest, including detecting third party providers including SSO identity providers, and managing token exchanges. Visit &lt;a href="https://developer.nylas.com/docs/v2/developer-guide-v2/authentication/hosted-authentication/" rel="noopener noreferrer"&gt;Hosted Auth&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setup the Nylas configurations and GCP OAuth configurations in project.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Now that we have all the configurations in place, it's time to design the prompt and APIs. I've crafted a simple system prompt to achieve the expected JSON response.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Contact Service&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Visit repo for code and more
&lt;a href="https://github.com/BravesDevs/NylasHack" rel="noopener noreferrer"&gt;BravesDevs/NylasHack&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nylaschallenge</category>
      <category>devchallenge</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
