DRY webhooks controller