# Object Event Hooks Configurations With those configurations, nonprofits are able to set up webhook configurations for given events that happen to that nonprofit. As an example, a nonprofit might want to contact a particular API A when the a supporter is created or when a tag_master is added while they might want to contact a different API B when a supporter is deleted. Currently, Houdini supports sending triggers to OpenFn. ## Setup Instructions ### OpenFn side * Navigate to [OpenFn](https://www.openfn.org/signup) and sign up; * Set up an authentication method on `Access and Security` option, by clicking on `Add new security protocol`. Choose the API Key auth type; * Create a trigger of "Message Trigger" type and define which filter should be in your trigger payload: ![image](https://user-images.githubusercontent.com/15739610/107866816-73daeb80-6e53-11eb-9d3b-7593a77ed6b4.png) > In this case, we'll be sending an event of type *supporter_note.created*. * Navigate to the project view and copy your inbox link. #### Creating a job that sends an e-mail using Mailgun * Create an account on [Mailgun](https://signup.mailgun.com/new/signup) (for the sake of testing, a free account is enough); * For using the sandbox domain Mailgun provides for testing, add your e-mail as an authorized recipient: ![image](https://user-images.githubusercontent.com/15739610/107160074-c8bdc400-6972-11eb-89d6-4fd05f9eb249.png) * On OpenFn, set up your Mailgun credentials on `Credentials`; * Create a new job on `Jobs`, by clicking the `+` icon and connect to the corresponding trigger; * Add the script that the job is going to execute on `Execution`. An example for Mailgun could be: ``` javascript send({ from: '@gmail.com', to: '@gmail.com', subject: 'Supporter note created!', text: `A supporter note was created for the supporter ${dataValue('data.object.supporter.name')(state)} of the nonprofit ${dataValue('data.object.nonprofit.name')(state)}.`, }) ``` > To access your payload data from your job, you can use `dataValue('someKey')(state)` ### Application side For now, there is no UI for the creation of the configuration for the Object Event Hooks. The following instructions allow the creation of the configuration using the console: ``` bash rails c ``` ``` ruby # Set up for the ObjectEventHookConfig nonprofit = Nonprofit.last webhook_service = :open_fn object_event_type = 'supporter_note.created' configuration = { headers: { 'x-api-key': }, webhook_url: } attributes = { webhook_service: webhook_service, configuration: configuration, object_event_types: [ object_event_type ] } object_event_hook_config = nonprofit.object_event_hook_configs.create(attributes) ``` In the application, navigate to the nonprofit supporters' view: ![image](https://user-images.githubusercontent.com/15739610/108004367-6dc04880-6fd4-11eb-9126-6e4ed074fcbe.png) Create a new supporter and open their details or simply open the details of an existing one. Click the `+ Note` button, write a note and click `Submit`. ![image](https://user-images.githubusercontent.com/15739610/108004473-b972f200-6fd4-11eb-91c2-8b6d49a1545a.png) The OpenFn inbox is going to show a successful run for your job, and on the run details you'll be able to see that the mail sending was enqueued, and in a few instants, you'll have received an e-mail with the event details. ![image](https://user-images.githubusercontent.com/15739610/108004611-1a022f00-6fd5-11eb-8a76-4891826e904d.png) > OpenFn successful run