## Technical implementation

Custom widgets are pure `iframe` with data injected to the `name` -tag and an postMessage listener allowing data requests and resizing. We utilise a JWT to sign context data with a shared secret, so the custom widget can verify that the widget is in fact in Happeo.

## Adding to a page

You can add your custom widget to a page by opening the page edit mode. Then clicking a new widget and clicking your custom widget from the menu.

## Examples

- Jira widget - Allows listing Jira tickets based on JQL. Can use user primaryEmail to personalise views and uses a centralised authentication to list issues. You can find the example codebase [here](https://github.com/happeo/jira-custom-widget-example).
- SuccessFactors integration - Allows listing of open positions. Can be personalised based on visiting user.
- Asana Widget - Shows the user's Asana board by tapping into Asana's authentication.

### What’s Next

- [Creating a custom embedded widget](https://developers.happeo.com/docs/creating-a-custom-embedded-widget)
