Summary of use

If you are going to be using the follow-up builder’s outbound webhooks, you will be able to put in your webhook URL and receive the entire webhook payload at your destination. If you plan to use Zapier, follow the Zapier guide here. In this article we will cover:

  1. Setting up the ResponsiBid follow-up sequence to schedule WHEN you want the
  2. How to UNDERSTAND the data that will be delivered to the endpoint and how to call out the fields you want to map.
  3. How to MAP the data to your connected software

Decide WHEN you want to push bid data to another app

  1. When you are in ResponsiBid, you can go into “settings > follow-up builder” and select from the statuses you have available (standard and custom).
  2. Simply click the tab of the status that applies to the portion of the customer journey that you are trying to fire off a webhook.
  3. Add a step to that follow-up sequence
  4. For the “Action” of that step, select “Fire a webhook”
  5. Set the timer for the appropriate time within that status for the webhook to fire.
  6. Enter the endpoint/catch URL for the webhook to deliver the data to.
  7. Click the “Save Follow-Up Builder” button (this is important!)

Understanding the webhook data and how you can use it

  1. **Insert the information on what configuration needs to match for the Webhook to be accepted properly**
  2. Go back to your ResponsiBid follow-up builder and paste the URL into the ResponsiBid follow-up step you created previously.
  3. Then make sure that the status is activated (the toggle in the step’s top bar)
  4. Save the follow-up builder again.
  5. Now you need to create a test person in ResponsiBid and put them into the status your webhook is in to test the webhook to fire. (You can cheat and set the hook to fire “0 hours” after scheduled so that you can expedite the test for now. Just change it back to whatever you wanted it to be after the test.)
  6. Once you can verify that the webhook has “sent” in the follow-up area of that customer you should see the webhook land at the endpoint.
  7. You should see something that looks like this:
  8. const data = {
      "CompanyBid": {
        "is_migrated": null,
        "commercial": "0",
        "status": "Pending",
        "date_pending": null,
        "date_scheduled": null,
        "date_closed": null,
        "date_declined": null,
        "closing_price": "899",
        "booking_date": "2024-02-28",
        "booking_arrival_start_time": "08:00:00",
        "booking_arrival_end_time": "10:00:00",
        "job_duration_hours": "1",
        "job_duration_minutes": "1",
        "notes": "",
        "availability_1_date": null,
        "availability_1_time_of_day": null,
        "availability_2_date": null,
        "availability_2_time_of_day": null,
        "availability_3_date": null,
        "availability_3_time_of_day": null,
        "availability_4_date": null,
        "availability_4_time_of_day": null,
        "availability_5_date": null,
        "availability_5_time_of_day": null,
        "origin_ip": null,
        "referring_url": "Call Screen",
        "http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15",
        "originated_from_hatch": false,
        "special_instruction": null,
        "signature": null,
        "signature_date": null,
        "signature_ip": null,
        "bid_name": "#B952799",
        "service_notes": "a:3:{s:36:\"577459f1-1c18-4ec5-8029-1a6267b3a391\";a:1:{s:4:\"text\";s:0:\"\";}s:36:\"5654d58d-b218-46bc-9500-210a67b3a391\";a:1:{s:4:\"text\";s:0:\"\";}s:36:\"5719ac77-dcc4-4244-8ac4-275d67b3a391\";a:1:{s:4:\"text\";s:0:\"\";}}",
        "bidId": "952758",
        "proposal_url": "https://alpha.staging.responsibid.com/proposal/57ae3d8f86f118274d67b6d9a164ef1ca99d6787eb4cfb89ef41ca74b3f80094"
      },
      "Contact": {
        "id": "33882",
        "default_property_id": null,
        "parent_id": null,
        "first_name": "John",
        "last_name": "Doe",
        "street1": "123 West Test Street",
        "street2": "",
        "zip": "85123",
        "phone1": "4801231234",
        "phone2": "4805553333",
        "email": "john@example.com",
        "country": "USA",
        "company_name": "",
        "opt_out": "1",
        "explicit_opt_in": false,
        "explicit_sms_opt_in": false,
        "contact_type": null,
        "contact_group_id": "1389d42e-0f33-4132-9595-1c14bec2f2df",
        "lead_source": "Google"
      },
      "Property": {
        "id": "33712",
        "contact_id": "33882",
        "house_size_id": "6358",
        "house_size_id_original": "6358",
        "house_size_actual": "2000",
        "house_size_actual_original": "2000",
        "house_size_presentation": "menu",
        "house_size_presentation_original": "menu",
        "company_service_area_id": "16560",
        "company_service_area_id_original": "16608",
        "stories": "1",
        "stories_original": "1",
        "basement": "1",
        "basement_original": "1",
        "type": "residential",
        "type_original": "residential",
        "zip": "85123",
        "street2": "",
        "street1": "123 West Test Street",
        "CompanyServiceArea": {
          "id": "16560",
          "company_id": "18",
          "name": "Los Angeles, CA",
          "city": "Los Angeles",
          "state": "CA",
          "min_price_1": null,
          "min_price_2": null,
          "min_price_3": null,
          "trip_surcharge": null,
          "deleted": "0",
          "created": "2023-12-12 11:26:11",
          "modified": "2024-02-22 03:39:35",
          "min_price_4": null,
          "min_price_5": null
        },
        "service_area": "Los Angeles, CA",
        "city": "Los Angeles",
        "state": "CA"
      },
      "SelectedServices": "House Washing $899\n",
      "SelectedServicesWithoutPricing": "Housewashing Deluxe\n",
      "SelectedServicesTotalAmount": 899,
      "Services": {
        "CustomItem1": {
          "requested": true,
          "name": "Test Custom Item",
          "package_requested": false,
          "basic_price": 500,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem2": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem3": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem4": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem5": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem6": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem7": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem8": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem9": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        },
        "CustomItem10": {
          "requested": false,
          "name": false,
          "package_requested": false,
          "basic_price": false,
          "deluxe_price": false,
          "premium_price": false
        }
      }
    };
    

How to call out the data you want to map

When you go to pull out the data from the data deposited, you can pull the data out by calling it into the app. Below is an example of how you would get the variables you might need:

If you were trying to pull out the following:

  • First Name
  • Last Name
  • Phone 1
  • Street address 1
  • City
  • State
  • Which services were selected (including the price of each serivce package)
  • Just the dollar amount of the selected services

You could call this out using javascript in the following way:

const first_name = data.Contact.first_name;
const last_name = data.Contact.last_name;
const phone = data.Contact.phone1;
const street1 = data.Property.street1;
const city = data.Property.city;
const state = data.Property.state;
const services = data.SelectedServices;
const total = data.SelectedServicesTotalAmount;

You can continue to use this format to keep playing around with selecting out the entire data dump at the webhook endpoint.