Create Sitefinity connectors using service hooks
The service hooks in Sitefinity provide a powerful and easy mechanism for creating custom connectors that can update external systems when an event occurs in Sitefinity. For example, you can create a HubSpot contact when a user logs in Sitefinity. To do that you need to create custom triggers and custom actions for the service hooks.
Create custom 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 in your module. 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 the trigger (can be any string)
- triggerTitle - title to be displayed in the UI.
- eventType – EventHub event that you want to track
- module - name of the module to be displayed in the UI
Also, you can add additional event filter in the IsMatch function.
Create custom actions
To register custom actions, you must implement IServiceHookActionProvider interface in your module. In addition, you need to create new action setting class that inherits from IServiceHookActionSettings or the built-in WebhookActionSettings
When defining action setting you need to
- Define action Title that is displayed in UI
- Define ParametersType property (Can be left null if no parameters are needed for the action). The properties of the provided type will be rendered in the Create screen of the Service hooks page and the configured values will be available later during the execution of the action. How the properties are rendered in the UI depends on their type and provided attributes. For more information, see Create widget designers. The properties values will be stored in Advanced settings. If you’d like to encrypt the data in the configurations you can decorate the property with [Sitefinity.Configuration.SecretData] attribute. And if you’d like to hide the field’s value in the UI you can decorate it with the [DataType(customDataType: KnownFieldTypes.Password)] attribute.
To complete the action, you must implement the ExecuteActionAsync method as shown in the sample
Finally, you need to register the trigger and the action in a Sitefinity module:
After you have implemented and registered your custom action and trigger you are ready to configure your first service hook using the new connector.
- Navigate to Administration » Servicehooks
- Click Create.
- Select your newly created trigger and action using the selectors.
Customize UI fields
By providing a value for the ParemtersType in the trigger and in the action you can easily build custom UI for your connectors. But if the built-in functionalities are not enough you can customize the fields in the create/edit screen using the Admin App extensions. Learn more about custom fields in GitHub.