$output.='<p>'.t('Webhooks are "user-defined HTTP callbacks". They are usually triggered by some event, such as pushing code to a repository or a comment being posted to a blog. When that event occurs, the source site makes an HTTP request to the URI configured for the Webhook. – <a href=":citation">https://en.wikipedia.org/wiki/Webhook</a>.',[
$output.='<p>'.t('This module acts as both a Webhook dispatcher and a Webhook receiver. It is possible to map attributes of the Webhook payload to Webhook entity fields for storage.').'</p>';
$output.='<dd>'.t('For dispatching you can <a href=":configure">configure any amount of Webhooks</a> that act on various events like entity create, update, delete and some system hooks like cron, file_download, modules_installed, user_cancel, user_login, user_logout and cache_flush.',[
$output.='<dd>'.t('For receiving you can <a href=":configure">configure any amount of Webhooks</a>, the module captures the request and provides the payload to others with a generic Webhook event.',[
$output.='<dd>'.t('The Webhook module implements an entity type that stores every Webhook that has been received. Received Webhooks are stored in a <a href=":configure">dedicated Webhook entity type</a>, if the the type identifier and the Webhook machine name matches. The Webhook entity type is fieldable and you may <a href=":map">map Webhook payload attributes</a> to be stored in the configured fields.',[
$output.='<dt><h3>'.t('Acting on events').'</h3></dt>';
$output.='<dd>'.t('Since Webhooks trigger events and Webhook is an entity with fields that store the data, you can use modules like <a href=":rules">Rules</a> and <a href=":eca">ECA: Event - Condition - Action</a> to react when receiving, sending or storing Webhooks.',[
':rules'=>'https://www.drupal.org/project/rules',
':eca'=>'https://www.drupal.org/project/eca',
]).'</dd>';
$output.='</dl>';
$output.='<p>'.t('Implemented as configuration entity Webhooks are easily deployable.').'</p>';