{"componentChunkName":"component---src-templates-blog-post-index-js","path":"/spreadsheet-to-slack/","result":{"data":{"site":{"siteMetadata":{"title":"Blog"}},"markdownRemark":{"id":"02f8522c-0048-5c33-b6c7-59813f6f01f8","excerpt":"I wanted to help my operation team, by automating their tasks. So, I asked them if there are some repetitive tasks, that we can automate. They came up with a…","html":"<p>I wanted to help my operation team, by automating their tasks. So, I asked them if there are some repetitive tasks, that we can automate. They came up with a bunch of ideas and one of them was, \nEvery time they update the spreadsheet(they have a whole todo thing on a spreadsheet), they would send a slack message to the channel/person, that they have made an update on the spreadsheet. So, if there was a way that the message would automatically be sent to slack, as soon as the update is made ???</p>\n<p>Then, I did some “research”, and found that there are many tools like zapier, automate.io etc for integrating spreadsheets with slack and with other apps also. But after I used them, I found that they were not that effective for what I wanted. They would just send a message like “A row has been updated on a spreadsheet”, which was not that helpful. So I found this on <a href=\"https://stackoverflow.com/questions/40202270/send-message-to-slack-channel-when-google-sheet-column-gets-updated-google-scri\">StackOverflow</a> ;)</p>\n<p>All I needed to do was, set up a trigger on google app script and then send a request to slack using incoming webhooks. That’s what I did, and SPOILER ALERT, it worked. So, the main question is how did it work ??? I will tell you in the next part of this post. Stay tuned…. Just kidding. Ok, let’s go to the code part.</p>\n<p>So, the spreadsheet looks like this,\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7d812b3a5891fa4ff0eeb4704d5c3b72/ae2f9/op_mockup.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 29.615384615384617%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsSAAALEgHS3X78AAABBklEQVQY001Qy07DMBDMX/MhHPkGfgEOXFraSgklriPBAakiaZpQN37E8frBJKgSoz3srne9M5N9i7ZpmvZ0quu66zqllF0wjiMRxRv8jJAWxBQR5CnT2lyHQSltjMHm5SKklMMghRBd30upEFprcb0K8WNMa60m51NI0cesrpvddscYW63Wr5sNP/CieCsZ2+/ft9sd5xXnPM/zqvpg1fqrfvDufByPG/n8aQ7ZICVo41pRFGVZTtOEOyghwRHZaQIdEAE155yPlCjl9uW+v3tSjzNtPGMBmvELJiAVmtHxftacbkAeQrAUYMVchphhD9Po/k0ggTO0YLboPxbTjCXraC6C/wW2+FHeomTKtAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"&quot;Operation Team Mock Up SpreadSheet”\"\n        title=\"&quot;Operation Team Mock Up SpreadSheet”\"\n        src=\"/static/7d812b3a5891fa4ff0eeb4704d5c3b72/b9e4f/op_mockup.png\"\n        srcset=\"/static/7d812b3a5891fa4ff0eeb4704d5c3b72/cf440/op_mockup.png 148w,\n/static/7d812b3a5891fa4ff0eeb4704d5c3b72/d2d38/op_mockup.png 295w,\n/static/7d812b3a5891fa4ff0eeb4704d5c3b72/b9e4f/op_mockup.png 590w,\n/static/7d812b3a5891fa4ff0eeb4704d5c3b72/f9b6a/op_mockup.png 885w,\n/static/7d812b3a5891fa4ff0eeb4704d5c3b72/2d849/op_mockup.png 1180w,\n/static/7d812b3a5891fa4ff0eeb4704d5c3b72/ae2f9/op_mockup.png 2600w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>If somebody updates some row by adding some task description or extending the deadline etc, I want the message to be like this,</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0a36fc231a1db6998f81fd7c0f8dc19b/7bfa5/incomplete.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 40%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABYlAAAWJQFJUiTwAAABYElEQVQoz42R23KjMBBE+f8v28pTHp2AIQKjK2DABnRB7h3JW/ucqTqlmUF0dUNh6gs+/3ygrK4oyxJVVaGuawzDgPU+w207gvMInggB0QecNMdE6glrLdxxIIYThbtzbKMBazs0TYMrCTPGsmhX1RjrDo8vhu3CMLUcqr1B1S3kdw1ZM+i2xzCOOO4Lzt2iAFUkjDFoWQulFLTWEFxA067rbxjolDcSExJCSvSCQw8GN97nOynNtu9JCsXr9UI8TyzLAiEEDrKe6qRdeubdO6qjyAnvHByRdv7fp0iR05wFs8MYMU0TOTPZHeecxGV27emFM0b8ppKB4u0mQFGUlv1ASpF7QbGM0bhPI5w98NvKgpasN71CJwdM646Hi5knMe8e09Nh3R3mzWFYD4wPm/uEXo6MmnccLrwFHf3uxjzxQzR6xTef0aiV5jXPV+pLueS+ojNhSNj6E5sN/wlnxF/GXGReV4sUngAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"&quot;Incomplete slack message&quot;\"\n        title=\"&quot;Incomplete slack message&quot;\"\n        src=\"/static/0a36fc231a1db6998f81fd7c0f8dc19b/b9e4f/incomplete.png\"\n        srcset=\"/static/0a36fc231a1db6998f81fd7c0f8dc19b/cf440/incomplete.png 148w,\n/static/0a36fc231a1db6998f81fd7c0f8dc19b/d2d38/incomplete.png 295w,\n/static/0a36fc231a1db6998f81fd7c0f8dc19b/b9e4f/incomplete.png 590w,\n/static/0a36fc231a1db6998f81fd7c0f8dc19b/f9b6a/incomplete.png 885w,\n/static/0a36fc231a1db6998f81fd7c0f8dc19b/2d849/incomplete.png 1180w,\n/static/0a36fc231a1db6998f81fd7c0f8dc19b/7bfa5/incomplete.png 1240w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>or if the task is completed is true,</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/ed731/complete.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 20.22838499184339%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA0UlEQVQY0yWM226DMBQE+f9Pq/rQp1ZJKTSlDpS7DbYxhkwPwdJod47kTYzKeXt5JUszLu8fpJcr2ecXf/eSvm5w00xcAuuBX07cQvTnLYQT7z0xRpJ1LLGVov1RNPmNuarZ9cQmxHZgGw1h0AQjN8nDYzcSJRdxYzR6HGjqGmctCfJ24apa0rLj1miK3nEfHUp7lGTR29OPPpxUxtPblW4OVHqhHD3arTL4eLBtO0pGfjsraWV0QnWz+MnRv2tD0U7CTC69n/zzX4jbk2XdiOL/I/owzT3gd2EAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"&quot;complete slack message&quot;\"\n        title=\"&quot;complete slack message&quot;\"\n        src=\"/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/b9e4f/complete.png\"\n        srcset=\"/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/cf440/complete.png 148w,\n/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/d2d38/complete.png 295w,\n/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/b9e4f/complete.png 590w,\n/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/f9b6a/complete.png 885w,\n/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/2d849/complete.png 1180w,\n/static/29bd7f02bdb26aa6cfaa47e2b5d5f475/ed731/complete.png 1226w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Now, let’s go to the script, click on <strong><em>Tools</em></strong> and then <strong><em>script editor</em></strong>,</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token comment\">//Gives you the url of the current page</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">getSheetUrl</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">var</span> ss <span class=\"token operator\">=</span> SpreadsheetApp<span class=\"token punctuation\">.</span><span class=\"token function\">getActiveSpreadsheet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> activeSheet <span class=\"token operator\">=</span> ss<span class=\"token punctuation\">.</span><span class=\"token function\">getActiveSheet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> url <span class=\"token operator\">=</span> <span class=\"token string\">''</span>\n  url <span class=\"token operator\">+=</span> <span class=\"token constant\">SS</span><span class=\"token punctuation\">.</span><span class=\"token function\">getUrl</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  url <span class=\"token operator\">+=</span> <span class=\"token string\">'#gid='</span>\n  url <span class=\"token operator\">+=</span> ss<span class=\"token punctuation\">.</span><span class=\"token function\">getSheetId</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">return</span> url\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">spreadSheetToSlack</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">var</span> ss <span class=\"token operator\">=</span> SpreadsheetApp<span class=\"token punctuation\">.</span><span class=\"token function\">getActiveSpreadsheet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> sheet <span class=\"token operator\">=</span> ss<span class=\"token punctuation\">.</span><span class=\"token function\">getActiveSheet</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> currentSheet <span class=\"token operator\">=</span> sheet<span class=\"token punctuation\">.</span><span class=\"token function\">getName</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> currentSheetUrl <span class=\"token operator\">=</span> <span class=\"token function\">getSheetUrl</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">var</span> values <span class=\"token operator\">=</span> sheet<span class=\"token punctuation\">.</span><span class=\"token function\">getDataRange</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">getValues</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">var</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> values<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">7</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">===</span> <span class=\"token string\">'submit'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">var</span> task <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">var</span> taskDescription <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">var</span> responsible <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">var</span> deadline <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">var</span> completed <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">var</span> comments <span class=\"token operator\">=</span> values<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span>\n      <span class=\"token function\">sendToSlack</span><span class=\"token punctuation\">(</span>\n        task<span class=\"token punctuation\">,</span>\n        taskDescription<span class=\"token punctuation\">,</span>\n        responsible<span class=\"token punctuation\">,</span>\n        deadline<span class=\"token punctuation\">,</span>\n        currentSheet<span class=\"token punctuation\">,</span>\n        completed<span class=\"token punctuation\">,</span>\n        comments<span class=\"token punctuation\">,</span>\n        currentSheetUrl\n      <span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p><strong><em>getSheetUrl</em></strong> function with just return the URL of the spreadsheet, which we are going to use later.</p>\n<p><strong><em>spreaSheetToSlack</em></strong> function will get all the values from each cell of the row that we have updated we will pass those values to the sendToSlack function.</p>\n<p><strong><em>sendToSlack</em></strong> function will look like this,</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token comment\">// function to send message to Slack</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">sendToSlack</span><span class=\"token punctuation\">(</span>\n  <span class=\"token parameter\">task<span class=\"token punctuation\">,</span>\n  taskDescription<span class=\"token punctuation\">,</span>\n  responsible<span class=\"token punctuation\">,</span>\n  deadline<span class=\"token punctuation\">,</span>\n  currentSheet<span class=\"token punctuation\">,</span>\n  completed<span class=\"token punctuation\">,</span>\n  comments<span class=\"token punctuation\">,</span>\n  currentSheetUrl</span>\n<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// custom slack webhook</span>\n  <span class=\"token comment\">// change the XXXXX's to your own slack webhook. Get it from:</span>\n  <span class=\"token comment\">// https://my.slack.com/services/new/incoming-webhook/</span>\n  <span class=\"token keyword\">var</span> url <span class=\"token operator\">=</span> <span class=\"token string\">'https://hooks.slack.com/services/xxxxx/xxxxx/xxxxxxx'</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>completed <span class=\"token operator\">===</span> <span class=\"token string\">'Yes'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">var</span> payload <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n      channel<span class=\"token punctuation\">:</span> <span class=\"token string\">'#general'</span><span class=\"token punctuation\">,</span>\n      username<span class=\"token punctuation\">:</span> <span class=\"token string\">'from spreadsteet'</span><span class=\"token punctuation\">,</span>\n      icon_emoji<span class=\"token punctuation\">:</span> <span class=\"token string\">':rocket:'</span><span class=\"token punctuation\">,</span>\n      text<span class=\"token punctuation\">:</span>\n        <span class=\"token string\">' `'</span> <span class=\"token operator\">+</span>\n        task <span class=\"token operator\">+</span>\n        <span class=\"token string\">'` in `'</span> <span class=\"token operator\">+</span>\n        currentSheet <span class=\"token operator\">+</span>\n        <span class=\"token string\">'`,is now complete. Please Take A look.\\n '</span> <span class=\"token operator\">+</span>\n        currentSheetUrl <span class=\"token operator\">+</span>\n        <span class=\"token string\">'.'</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">var</span> payload <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n      channel<span class=\"token punctuation\">:</span> <span class=\"token string\">'#general'</span><span class=\"token punctuation\">,</span>\n      username<span class=\"token punctuation\">:</span> <span class=\"token string\">'from spreadsteet'</span><span class=\"token punctuation\">,</span>\n      icon_emoji<span class=\"token punctuation\">:</span> <span class=\"token string\">':rocket:'</span><span class=\"token punctuation\">,</span>\n      text<span class=\"token punctuation\">:</span>\n        <span class=\"token string\">'There has been update on `'</span> <span class=\"token operator\">+</span>\n        task <span class=\"token operator\">+</span>\n        <span class=\"token string\">'` in `'</span> <span class=\"token operator\">+</span>\n        currentSheet <span class=\"token operator\">+</span>\n        <span class=\"token string\">'`, which `'</span> <span class=\"token operator\">+</span>\n        responsible <span class=\"token operator\">+</span>\n        <span class=\"token string\">'` is responsible for and deadline is `'</span> <span class=\"token operator\">+</span>\n        deadline <span class=\"token operator\">+</span>\n        <span class=\"token string\">'`. The task descriptions are \\n'</span> <span class=\"token operator\">+</span>\n        taskDescription <span class=\"token operator\">+</span>\n        <span class=\"token string\">'. \\n Please Take A look.\\n '</span> <span class=\"token operator\">+</span>\n        currentSheetUrl <span class=\"token operator\">+</span>\n        <span class=\"token string\">'.'</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">var</span> options <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    method<span class=\"token punctuation\">:</span> <span class=\"token string\">'post'</span><span class=\"token punctuation\">,</span>\n    contentType<span class=\"token punctuation\">:</span> <span class=\"token string\">'application/json'</span><span class=\"token punctuation\">,</span>\n    payload<span class=\"token punctuation\">:</span> <span class=\"token constant\">JSON</span><span class=\"token punctuation\">.</span><span class=\"token function\">stringify</span><span class=\"token punctuation\">(</span>payload<span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">return</span> UrlFetchApp<span class=\"token punctuation\">.</span><span class=\"token function\">fetch</span><span class=\"token punctuation\">(</span>url<span class=\"token punctuation\">,</span> options<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Here, we get the webhook URL from slack, you can get yours from this <a href=\"https://slack.com/signin?redir=%2Fservices%2Fnew%2Fincoming-webhook\">link</a>. There you just put the channel where you want your message to be posted and then click on <strong><em>Add incoming webhook integration.</em></strong>. After that, you get your URL like this</p>\n<p><code class=\"language-text\">https://hooks.slack.com/services/xxxxx/xxxxx/xxxxxxx</code></p>\n<p>just replace xxxxxx with your URL. The payload is pretty simple, as you can guess from the keys of the object. Then it’s just a post request.</p>\n<p>Now, go to your spreadsheet, update your row, write submit on column 8 of the same row, then click on the <strong><em>submit</em></strong> button. The submit button is assigned with the spreadSheetToSlack function.</p>\n<h4>What is the point of writing submit and clicking the button ?????</h4>\n<p>There is an inbuilt trigger called onEdit, which runs automatically as soon as you edit a cell. The problem with onEdit is that, as soon as you edit a cell and you go to next cell to edit, the onEdit function is already triggered and the slack message is already sent. If you update 5 cells in the same row you will send 5 slack messages.</p>\n<p>So, to make it more efficient, we added our own trigger, by writing submit at the end of the row after editing or updating everything. It’s just to know which row was edited so we can get the values from that row.</p>\n<blockquote>\n<p><code class=\"language-text\">You can do this by creating a rectangle and placing a text with submit. Then, select the rectangle and you will see 3 dots, click them and you will see Assign Script text, click there and paste the spreadSheetToSlack there, without parentheses.</code></p>\n</blockquote>\n<p>Then, you will receive a slack message like above.</p>","frontmatter":{"title":"Spreadsheet To Slack","date":"November 20, 2019","description":"Get notification in slack, when there is an update in spreadsheet"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/spreadsheet-to-slack/","previous":{"fields":{"slug":"/mistakes-i-made-while-started-coading/"},"frontmatter":{"title":"My biggest mistake when I started coding"}},"next":null}}}