When building in Zapier sometimes you want to start by jumping to the final item that you want create - either a Transaction or a Campaign membership. Then, in the fields that Zapier loads in, when it asks to choose a Campaign, Contact Record, or Account Record, you can select "Add a Search Step" and it then adds a step above the one that you are working in. We've done our best to explain this below, but its a bit tough to write out.

Create Campaign based on Program:

  • Use the Program Trigger
  • Create an Action, and connect to Salesforce
  • Choose "Find Custom Object" and search for Campaign
  • Using either a custom Program Note field or the External Code field, search to see if a campaign exists. If it doesn't, select the option to create a Custom Object.
  • Set the name using a Custom Program Note Field (which is helpful if your Salesforce campaign name is going to be different than the public name of the Booking Guru program).
  • You can use other fields such as start/end date to add additional information if needed.

Adding a Contact as a Campaign member based on a Registration

  • This assumes that you are tracking event participation in Salesforce using Campaigns, and that you want contacts to become Campaign members. We are going to have to find the correct campaign, find or create a contact and update that record with any personal information from the registration, and finally create a Campaign Membership object which links the contact to the campaign. 
  • Use the Registration Trigger
  • Even though its the final action, begin by creating a "Create Custom Object" action . Choose "Campaign Member" as the type. It will then ask you for a Campaign - choose Add A Search Step - this adds a new step before this action. Choose Find a Campaign. 
  • In this new action, use the External Code field to search for the matching campaign (this can be via Salesforce Campaign ID or the Campaign Name - whatever you chose to put in that field).
  • Next, go back to the Create Campaign Memebr action. At the prompt for a Contact Record, once again Add A Search Step, and this time choose Find A Contact: You have to compare data from Booking Guru to only one field in Salesforce. So for instance, you cannot compare First Name, Last Name, and Email separately to find a contact. Rather, you need to create a single field in Salesforce such as FirstLastEmail, which can be a formula field that automatically concatenates the data from the individual fields. Then, using Zapier's Find a Contact action, you can search for a contact using this field. You can concatenate Booking Guru fields as a search term, so for instance you search for a string of text which is FirstNameLastNameEmail. If the system does not find a contact, one should be created. Only the First, Last, and Email fields should be added at this step.
  • Then, create another action which is "Update a Contact Field". Use the same FirstLastEmail concatenated search to find the contact (which must exist by now, since it would have been created in the previous action. At this step, update all personal fields using the information in Booking Guru - for instance address, gender, birthdate, or any custom information that you asked for. This will ensure that any prior information has been updated to reflect the latest registration.
  • Finally, go back to the Create Campaign Member action, which should be the last action of this Zap. You can complete any other fields using the other registration data (for instance, the registration type).

Adding a Salesforce Transaction based on a Payment

  • This assumes that you need to add an Opportunity (Transaction) record in Salesforce which is associated with a Contact record, that contact's Account record, and the correct Campaign to properly track the revenue.
  • Use the Payment Trigger
  • Even though its the final action, begin by creating a "Create Opportunity" action.
  • Use fields from the registration to give the new object a name (for instance First Name Amount Date). You can use fields from the registration to set some of the field values (for instance, date, Description, Amount). Change some of the drop downs to reflect universal data (for instance, Stage should be set to "Received" for everything that comes through this Zap).
  • It will then ask you for a Campaign - choose Add A Search Step - this adds a new step before this action. Choose Find a Campaign. Use the External Code field to search for the matching campaign (this can be via Salesforce Campaign ID or the Campaign Name - whatever you chose to put in that field).
  • Going back to the Create Opportunity action, it will then ask you to for an associated Account. Add A Search Step to Find an Account. This is a simple action which is looking for an Account ID. But, to find this, you first need to locate the Contact Record of the person who registered.
  • So, before the Find Account, add a new action which is "Find or Create Contact". Search for a concatenated string of FirstLastEmail, and create a contact record if it doesn't exist, filling out those 3 fields. Don't worry about any other detail - if the Registration Zap runs first, the Contact should exist. If this Zap runs first, the Registration Zap will fill in the rest of the Contact record information.
  • Back on the Find an Account action, for the Search Value you can now find the AccoundId field from the Find or Create a Contact action.
  • Finally, you can finish the Create Opportunity action. Make sure that the Campaign name is pulling in from that action, and the account ID is pulling in from that action. You can then use the Booking Guru payment fields to complete any other information that you want to move into Salesforce (for instance, Amount, Credit Card type, even expiration date etc). You can create static information to make it clear that this payment came through your Booking Guru gateway as well.

Hopefully this article has been of help to you, if you have further questions with regards to integrations you may reach out to us for guidance in v at support@retreat.guru

Did this answer your question?