Custom actions, triggers, and UI fields
Create custom actions & triggers 
You can register your own triggers and actions. They should be registered in custom Sitefinity modules as shown in the sample below. For more information, see Custom modules. 
To register a trigger, you need to implement IServiceHookTriggerProvider interface. You also need to create a new trigger class that inherits from ServiceHookTriggerSettingsBase. 
When defining trigger settings, you need to add this data in constructor: 
    - key - unique key for trigger 
 
- triggerTitle - title that be displayed in UI. 
 
- eventType - event that you want to track 
 
- module - name of the module 
 
Also, you can add additional event filter in IsMatch function.  
Registering actions
To register custom actions, you must implement IServiceHookActionProvider interface. In addition, you need to create new action setting class inherited from IServiceHookActionSettings. 
When defining action setting you need to: 
    - Define unique Key. 
 
- Define action Title that is displayed in UI. 
- Define ParametersType property 
 
 
You can also define properties, which can be used in the UI when executing actions. For more information, see Widget designers. 
When you want to encrypt field to hide sensitive data, you can use Sitefinity.Configuration.SecretData attribute 
Finally, you must implement ExecuteActionAsync method as shown in the sample below. 
Custom service hook sample 
This sample code creates a contact in HubSpot when a user logs in to Sitefinity.  
Customize UI fields 
You can customize Servicehook UI with custom JavaScript implementation. 
You can customize Admin App fields by overriding them. 
For more information about custom fields, see the corresponding GitHub repository. 
EXAMPLE: Using the extensions, you can replace Title field by providing this data to 
FieldData object: 
fieldName: "Title",
fieldType: FieldTypes.shortText,
typeName: "widget-servicehooks"