Unfortunately, the Heidi API and Widget are no longer available for future integrations in Australia and New Zealand. If you are a current Heidi customer looking to integrate, reach out to your Customer Success representative. Otherwise, contact our team to find out what this means for you.
Widget
Install the widget

Basic widget installation

<button class="heidi-button" style="display: none;" onclick="openHeidi()">
  Open Heidi
</button>
<button class="heidi-button" style="display: none;" onclick="openHeidiWithTemplate()">
  Open Heidi with Template
</button>
<button class="heidi-button" style="display: none;" onclick="closeHeidi()">
  Close Heidi
</button>
 
<script>
  const templateData = {
    content: '...',
    responses: [
      {
        questionId: '...',
        question: '...',
        answerType: '...',
        answerOptions: ['...', '...'],
      },
    ],
  };
 
  function openHeidiWithTemplate() {
    Heidi.open({ template: templateData });
  }
 
  function openHeidi() {
    Heidi.open();
  }
 
  function closeHeidi() {
    Heidi.close();
  }
 
  const heidiOptions = {
    token: 'VALID_JWT_TOKEN',
    target: '#heidi',
    onInit: () => {
      // Display the UI that will trigger Heidi
      document
        .querySelectorAll('.heidi-button')
        .forEach((button) => (button.style.display = 'block'));
    },
    onReady: () => {
      Heidi.onPushData((data) => {
        // data.notesData will contain data generated by Heidi
        // if a template was used, it will contain the result
        // using the Template structure above
 
        console.log(data);
      });
 
      Heidi.onSessionStarted((sessionId) => {
        // sessionId is the ID of the current Heidi Session.
      });
    },
  };
 
  (function (s, o) {
    const script = document.createElement('script');
    script.async = true;
    script.src = s;
    document.head.append(script);
    script.addEventListener('load', () => new Heidi(o));
  })('https://registrar.widget.heidihealth.com/staging/widget/heidi.js', heidiOptions);
</script>

TypeScript Support

The widget is fully compatible with TypeScript. If you are using TypeScript, you can use the @heidihealth/widget-types package to get the correct types for the widget.

npm install @heidihealth/widget-types --save-dev