<h4>Generate mailto: links for Intercom</h4>
  <div class="form-group">
    <label for="subject">Subject</label>
    <input type="text" class="form-control" id="subject" aria-describedby="emailHelp" placeholder="Enter subject">
    <small id="emailHelp" class="form-text text-muted">Leave blank for no subject.</small>

  <div class="form-group">
    <label for="to">Email to send to</label>
    <input type="email" class="form-control" id="to" aria-describedby="emailHelp" placeholder="Enter email">
    <small id="emailHelp" class="form-text text-muted">Leave blank if unknown.</small>

  <div class="form-group">
    <label for="cc">Email to CC</label>
    <input type="email" class="form-control" id="cc" aria-describedby="emailHelp" placeholder="Enter email">
    <small id="emailHelp" class="form-text text-muted">Leave blank for no cc.</small>

<div class="form-group">
    <label for="text">Email content (you can use custom tags)</label>
    <textarea class="form-control" id="text" rows="8">Hey there,

I need your help installing Upscope (a screen sharing software we need) on our website.
You can find the instructions here: https://xyz.com/install/{{ company.remote_company_id }}

Feel free to ask if you have any questions.

{{ first_name }}</textarea>
  <button class="btn btn-primary" onClick="insertLink()">Generate link</button>
  <button class="btn btn-secondary" onClick="tryLink()">Try it yourself</button>

<br />
<br />
  <div class="form-group">
    <label for="link">Link</label>
    <input type="text" class="form-control" id="link" disabled>
function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*"]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);

function getLink(encodeEverything) {
  var subject = document.getElementById('subject').value,
      to = document.getElementById('to').value || '',
      cc = document.getElementById('cc').value,
      text = document.getElementById('text').value;
  encodeEverything = encodeEverything || false;
  var link = 'mailto:' + to + '?';
     link += 'subject=' + fixedEncodeURIComponent(subject) + '&';
     link += 'cc=' + cc + '&';
  link += 'body=';
  link += fixedEncodeURIComponent(text);
    link = link.split(encodeURIComponent('{{ ')).join('{{ ')
    .split(encodeURIComponent(' }}')).join(' }}')
  return link;

function insertLink() {
  var link = getLink();
  document.getElementById('link').value = link;

function tryLink() {

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js