<?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: Mark Williamson 🇨🇦</title>
    <description>The latest articles on DEV Community by Mark Williamson 🇨🇦 (@codewilliamson).</description>
    <link>https://dev.to/codewilliamson</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%2F318040%2F6975a5c9-4169-41ea-b6f3-eb6460be74f8.JPG</url>
      <title>DEV Community: Mark Williamson 🇨🇦</title>
      <link>https://dev.to/codewilliamson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codewilliamson"/>
    <language>en</language>
    <item>
      <title>COVID19 Test Result 2-way SMS</title>
      <dc:creator>Mark Williamson 🇨🇦</dc:creator>
      <pubDate>Tue, 28 Apr 2020 20:35:47 +0000</pubDate>
      <link>https://dev.to/codewilliamson/covid19-test-result-2-way-sms-5hei</link>
      <guid>https://dev.to/codewilliamson/covid19-test-result-2-way-sms-5hei</guid>
      <description>&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;Our regional public health unit in Ontario Canada has had a hard time keeping up with notifying clients of their negative COVID19 test results. They want these notifications to be automated in order to get the results out faster and more efficiently. SMS has been chosen to notify the clients.&lt;/p&gt;

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

&lt;p&gt;A solution to automatically notify clients that they have tested negative for COVID19.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;Sorry, no demo for this solution at this time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;p&gt;Here is the NodeJS web hook to handle incoming text messages from clients.&lt;br&gt;
&lt;a href="https://github.com/CodeWilliamson/covid19-notification"&gt;https://github.com/CodeWilliamson/covid19-notification&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft SharePoint&lt;/li&gt;
&lt;li&gt;Microsoft Power Automate&lt;/li&gt;
&lt;li&gt;Twilio&lt;/li&gt;
&lt;li&gt;NodeJS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gekfaDNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sopuui41ktu1mrzsuhip.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gekfaDNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sopuui41ktu1mrzsuhip.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used Microsoft Power Automate to tap into a SharePoint list that our public health department has been using to track clients' COVID19 test results. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HPEl_n8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1s1f8m4keqo957254g3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HPEl_n8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1s1f8m4keqo957254g3w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The power automate flow runs every 15 minutes and pulls in a batch of list items that meet the criteria to send a client an SMS message. Power Automate will then use the Twilio connector to send out an SMS message to the client. The message sent to the client will contain an ID that the client has to text back. That will match the response to the lab results list item in order to update it. It is done this way because multiple clients and multiple lab tests might be done for the same phone number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lUp1O1ZK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/opslldvg0m75o93lbd3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lUp1O1ZK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/opslldvg0m75o93lbd3e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is another power automate flow that will check the system status of all SMSs sent out to ensure they are delivered. If the phone number can't receive SMS then the system status will reflect that in the SharePoint list item. The client is then asked in the message to respond to the text with an ID number given.&lt;/p&gt;

&lt;p&gt;I built a webhook in NodeJS (&lt;a href="https://github.com/CodeWilliamson/covid19-notification"&gt;https://github.com/CodeWilliamson/covid19-notification&lt;/a&gt;) to receive the client's response from Twilio and update the SharePoint list item to show that the client has acknowledged the test result notification. The webhook is configured in Twilio by creating an SMS messaging service and configuring like so:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UElWJb_n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/94wu4qjnpbig6vx2pys0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UElWJb_n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/94wu4qjnpbig6vx2pys0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key is to configure the request url to hit your custom webhook code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Issues
&lt;/h3&gt;

&lt;p&gt;I ran into an issue when trying to use the Twilio status callback to update the SharePoint list item. The problem is that it runs too quickly for SharePoint to handle the update and I got many 409 conflict errors. This is why I built an asynchronous flow to check the status of SMSs after instead of using the on-demand status callback that Twilio provides.&lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>node</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Tips for First Time Blogger?</title>
      <dc:creator>Mark Williamson 🇨🇦</dc:creator>
      <pubDate>Tue, 21 Jan 2020 14:04:49 +0000</pubDate>
      <link>https://dev.to/codewilliamson/tips-for-first-time-blogger-6ie</link>
      <guid>https://dev.to/codewilliamson/tips-for-first-time-blogger-6ie</guid>
      <description>&lt;p&gt;Hello Community,&lt;/p&gt;

&lt;p&gt;I just joined &lt;a href="https://dev.to"&gt;DEV.to&lt;/a&gt; and am looking for any tips and tricks for posting my first article. If you have any pointers for me, I would be greatly appreciative. &lt;/p&gt;

&lt;p&gt;My aim is to post some examples of projects and tasks I've been doing for my job and hobbies. I plan on starting rather small until I get the hang of it.&lt;/p&gt;

&lt;p&gt;Looking forward to hearing 👂 from you all.&lt;/p&gt;

</description>
      <category>help</category>
    </item>
  </channel>
</rss>
