Problem using webhooks with FareHarbor custom fields (trying to connect to Shopify)

I am trying to have a Shopify customer account created every time a booking is made by a new customer on FareHarbor. However, FareHarbor only has one field for the customer’s name whereas Shopify requires both a first name and a last name. The name field is hard coded into FareHarbor so my solution was to create custom fields for both the first name and last name . This is clunky because it requires the customer to enter their name twice but it seems to be our only option.

We created a webhook that seems to be working except for these custom fields. I cannot find them as options to select when I am mapping out my data.

I called FareHarbor and they said that custom fields are all sent as batches? That the individual custom fields might not be showing up like that but that all the data was sent. They basically insinuated that if I knew what I was doing, I could figure it out. It seems like they are just making it tough for people to use their data.

They also say they are receiving an error message that says:

External API Booking Webhook request failed
ERROR: request unsuccessful: 400 Client Error: Bad request for URL

I thought that was maybe because I have the scenario turned off currently. Also, I see data coming in so it seems to be working but they are saying there is on error on Make.com’s side.

Can anyone help me figure this out? FareHarbor and Shopify seem to be popular enough that someone would have wanted this to happen. FareHarbor says they are working on getting the customer’s names fields to have a first and last name option but who knows when that will happen

Hi @SF_School,

Welcome to the Make community!

Please, follow these steps when asking a question, and you’ll be more likely to get a helpful answer:

:writing_hand: Give us a detailed explanation of what you’re trying to achieve

:footprints: Tell us about any steps you’ve tried so far

:camera_flash: Include screenshots of:

  • your scenario flow and setup (functions, mappings, variables, etc.)
  • module configurations and outputs
  • any error messages you are getting

:card_file_box: Share the blueprint of the scenario you are asking a question about. (this does not contain any connection or personal information)

A blueprint or a video walk-through is very helpful for other to understand what steps are involved and within what context you need help.

Cheers,
Henk

Thank you for this!

Here is our scenario flow

Here is our blueprint

blueprint.json (14.4 KB)

The payload of FareHarbor’s New Booking webhook contains custom fields as an array (FareHarbor Integration Center):

"custom_field_instances": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/custom_field_instance"
          }
        }

Can you also share the output of the FareHarbor module, so we can look at the raw payload? For exampe:

For the error message, can you check the logs of the webhook to see Make’s response to FareHarbor? You can navigate to webhooks in the left menu and then click a webhook to open it and then the tab ‘logs’.

Cheers,
Henk

Here is the module output:

[
{
“pk”: 254031832,
“uuid”: “61da63c8-4528-4a3f-b102-d64796b9fdc4”,
“company”: {
“name”: “Santa Fe School of Cooking”,
“shortname”: “santafeschoolofcooking”,
“currency”: “usd”
},
“status”: “booked”,
“affiliate_company”: null,
“contact”: {
“name”: “John Michael Hailey”,
“phone”: “9018316311”,
“phone_country”: “US”,
“normalized_phone”: “+19018316311”,
“language”: “en-us”,
“email”: “johnmhailey@gmail.com”,
“is_subscribed_for_email_updates”: false
},
“display_id”: “#254031832”,
“external_id”: “”,
“order”: null,
“rebooked_from”: null,
“rebooked_to”: null,
“dashboard_url”: “FareHarbor”,
“created_at”: “2024-10-21T17:45:09+0000”,
“availability”: {
“pk”: 1502944081,
“start_at”: “2024-10-26T16:00:00.000Z”,
“end_at”: “2024-10-26T19:00:00.000Z”,
“capacity”: 46,
“minimum_party_size”: 1,
“maximum_party_size”: null,
“online_booking_status”: “auto”,
“customer_type_rates”: [
{
“pk”: 6210879742,
“capacity”: 46,
“minimum_party_size”: null,
“maximum_party_size”: null,
“customer_type”: {
“pk”: 782863,
“singular”: “Per Person”,
“plural”: “Per Person”,
“note”: “”
},
“customer_prototype”: {
“pk”: 1957050,
“display_name”: “Per Person”,
“note”: “”,
“total”: 10000,
“total_including_tax”: 10831
},
“total”: 10000,
“total_including_tax”: 10831,
“custom_field_instances”:
}
],
“item”: {
“pk”: 436037,
“name”: “Native American II- Demonstration class- trout with herbs and bacon baked in clay, Indian wild rice saute, sauteed rainbow chard, berry crisp.”
},
“headline”: “”,
“custom_field_instances”: [
{
“pk”: 6701490,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285996,
“type”: “yes-no”,
“is_required”: false,
“description”: “We will try our best to accommodate!”,
“description_safe_html”: “

We will try our best to accommodate!

”,
“name”: “Dietary Restrictions Y/N”,
“title”: “Check this box if anyone in your group have any dietary restrictions.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
}
},
{
“pk”: 6701491,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1286055,
“type”: “long”,
“is_required”: true,
“description”: “We will do our best to meet your needs!”,
“description_safe_html”: “

We will do our best to meet your needs!

”,
“name”: “Dietary Restrictions (Do Our Best)”,
“title”: “Please specify any dietary restrictions here.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
}
},
{
“pk”: 6701492,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285995,
“type”: “short”,
“is_required”: false,
“description”: “”,
“description_safe_html”: “”,
“name”: “Group Seating”,
“title”: “Are you sitting with any other parties that have signed up separately? Please let us know their full name below.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
}
},
{
“pk”: 7085934,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285131,
“type”: “extended-option”,
“is_required”: false,
“description”: “”,
“description_safe_html”: “”,
“name”: “How did you hear about us?”,
“title”: “How did you hear about us?”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”,
“extended_options”: [
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921379,
“name”: “Internet search”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921380,
“name”: “Yelp”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921381,
“name”: “TripAdvisor”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921382,
“name”: “Google”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921383,
“name”: “Facebook”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921384,
“name”: “Instagram”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921385,
“name”: “Twitter”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921386,
“name”: “Friend”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921387,
“name”: “Word of mouth”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921388,
“name”: “Other”,
“description”: “”,
“description_safe_html”: “”
}
]
}
}
]
},
“customers”: [
{
“pk”: 746117315,
“checkin_url”: “https://fhchk.co/OuDcf”,
“checkin_status”: null,
“invoice_cost”: {
“price”: null,
“tax”: 0,
“taxable”: 0,
“feeable”: 0,
“tax_by_type”: {},
“total”: 0
},
“total_cost”: {
“price”: 10000,
“tax”: 831,
“taxable”: 10000,
“feeable”: 10000,
“tax_by_type”: {
“73423”: 831
},
“total”: 10831
},
“customer_type_rate”: {
“pk”: 6210879742,
“capacity”: 46,
“minimum_party_size”: null,
“maximum_party_size”: null,
“customer_type”: {
“pk”: 782863,
“singular”: “Per Person”,
“plural”: “Per Person”,
“note”: “”
},
“customer_prototype”: {
“pk”: 1957050,
“display_name”: “Per Person”,
“note”: “”,
“total”: 10000,
“total_including_tax”: 10831
},
“total”: 10000,
“total_including_tax”: 10831
},
“custom_field_values”:
}
],
“invoice_price”: 0,
“invoice_price_display”: “0.00”,
“confirmation_url”: “FareHarbor”,
“custom_field_values”: [
{
“pk”: 1049599920,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285996,
“type”: “yes-no”,
“is_required”: false,
“description”: “We will try our best to accommodate!”,
“description_safe_html”: “

We will try our best to accommodate!

”,
“name”: “Dietary Restrictions Y/N”,
“title”: “Check this box if anyone in your group have any dietary restrictions.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
},
“name”: “Dietary Restrictions Y/N”,
“value”: “”,
“display_value”: “No”
},
{
“pk”: 1049599921,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285995,
“type”: “short”,
“is_required”: false,
“description”: “”,
“description_safe_html”: “”,
“name”: “Group Seating”,
“title”: “Are you sitting with any other parties that have signed up separately? Please let us know their full name below.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
},
“name”: “Group Seating”,
“value”: “”,
“display_value”: “”
},
{
“pk”: 1049599922,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285131,
“type”: “extended-option”,
“is_required”: false,
“description”: “”,
“description_safe_html”: “”,
“name”: “How did you hear about us?”,
“title”: “How did you hear about us?”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”,
“extended_options”: [
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921379,
“name”: “Internet search”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921380,
“name”: “Yelp”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921381,
“name”: “TripAdvisor”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921382,
“name”: “Google”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921383,
“name”: “Facebook”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921384,
“name”: “Instagram”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921385,
“name”: “Twitter”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921386,
“name”: “Friend”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921387,
“name”: “Word of mouth”,
“description”: “”,
“description_safe_html”: “”
},
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921388,
“name”: “Other”,
“description”: “”,
“description_safe_html”: “”
}
]
},
“name”: “How did you hear about us?”,
“value”: “”,
“display_value”: “”
}
],
“voucher_number”: “”,
“receipt_subtotal”: 10000,
“receipt_subtotal_display”: “100.00”,
“receipt_taxes”: 831,
“receipt_taxes_display”: “8.31”,
“receipt_total”: 10831,
“receipt_total_display”: “108.31”,
“amount_paid”: 0,
“amount_paid_display”: “0.00”,
“note”: “”,
“note_safe_html”: “”,
“pickup”: null,
“arrival”: null,
“is_eligible_for_cancellation”: true,
“effective_cancellation_policy”: {
“type”: “hours-before-start”,
“cutoff”: “2024-10-24T16:00:00.000Z”
},
“is_subscribed_for_sms_updates”: false,
“agent”: null,
“desk”: null,
“customer_count”: 1,
“waiver_signatures”: {},
“external_api_url”: “https://fareharbor.com/api/external/v1/companies/santafeschoolofcooking/bookings/61da63c8-4528-4a3f-b102-d64796b9fdc4
}
]

Here are the logs of the webhook:


And here is the text of the log:

Headers:

{
“connection”: “upgrade”,
“host”: “hook.us2.make.com”,
“x-forwarded-for”: “52.8.92.177, 162.158.167.126, hook.us2.make.com”,
“x-forwarded-proto”: “https”,
“x-real-ip”: “162.158.167.126”,
“x-request-id”: “9111292fb4ae594034b618ca7a729218”,
“content-length”: “11788”,
“cdn-loop”: “cloudflare; loops=1”,
“cf-ipcountry”: “US”,
“accept-encoding”: “gzip, br”,
“cf-ray”: “8de6030fba4bcf26-SJC”,
“cf-visitor”: “{"scheme":"https"}”,
“sentry-trace”: “e9323f78aad547438c9cdbac556be62a-a2e04b7caf41db42-0”,
“baggage”: “sentry-trace_id=e9323f78aad547438c9cdbac556be62a,sentry-environment=production,sentry-release=deploy-2024-11-06-13-41-c79cc21a91b-py3,sentry-public_key=e9cb03e1d8d84d9998936d17b72409ab,sentry-transaction=/api/v1/companies/%7Bshortname%7D/items/%7Bitem_pk%7D/availabilities/%7Bavailability_pk%7D/book/,sentry-sample_rate=0.01,sentry-sampled=false”,
“user-agent”: “python-requests/2.32.3”,
“accept”: “/”,
“content-type”: “application/json”,
“cf-connecting-ip”: “52.8.92.177”
}

Body:

{
“booking”: {
“pk”: 256140036,
“uuid”: “a2b3a652-7af8-46d6-93ca-4cb9aa00d403”,
“company”: {
“name”: “Santa Fe School of Cooking”,
“shortname”: “santafeschoolofcooking”,
“currency”: “usd”
},
“status”: “booked”,
“affiliate_company”: null,
“contact”: {
“name”: “Susan Markwell”,
“phone”: “8159318144”,
“phone_country”: “US”,
“normalized_phone”: “+18159318144”,
“language”: “en-us”,
“email”: “susan.markwell@gmail.com”,
“is_subscribed_for_email_updates”: false
},
“display_id”: “#256140036”,
“external_id”: “”,
“order”: null,
“rebooked_from”: null,
“rebooked_to”: null,
“dashboard_url”: “FareHarbor”,
“created_at”: “2024-11-06T15:07:36+0000”,
“availability”: {
“pk”: 1524801228,
“start_at”: “2024-11-07T10:00:00-0700”,
“end_at”: “2024-11-07T13:00:00-0700”,
“capacity”: 1,
“minimum_party_size”: 1,
“maximum_party_size”: null,
“online_booking_status”: “auto”,
“customer_type_rates”: [
{
“pk”: 6297241697,
“capacity”: 1,
“minimum_party_size”: null,
“maximum_party_size”: null,
“customer_type”: {
“pk”: 782863,
“singular”: “Per Person”,
“plural”: “Per Person”,
“note”: “”
},
“customer_prototype”: {
“pk”: 1956964,
“display_name”: “Per Person”,
“note”: “”,
“total”: 12000,
“total_including_tax”: 12998
},
“total”: 12000,
“total_including_tax”: 12998,
“custom_field_instances”:
}
],
“item”: {
“pk”: 435984,
“name”: “Rellenos- Hands-On- three different types of chiles rellenos; New Mexican tempura rellenos, ancho chile rellenos and chiles en nogada.”
},
“headline”: “”,
“custom_field_instances”: [
{
“pk”: 6701195,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285996,
“type”: “yes-no”,
“is_required”: false,
“description”: “We will try our best to accommodate!”,
“description_safe_html”: “

We will try our best to accommodate!

”,
“name”: “Dietary Restrictions Y/N”,
“title”: “Check this box if anyone in your group have any dietary restrictions.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
}
},
“[4 more items]”
]
},
“customers”: [
{
“pk”: 752266816,
“checkin_url”: “https://fhchk.co/OUqXK”,
“checkin_status”: null,
“invoice_cost”: {
“price”: null,
“tax”: 0,
“taxable”: 0,
“feeable”: 0,
“tax_by_type”: {},
“total”: 0
},
“total_cost”: {
“price”: 12000,
“tax”: 998,
“taxable”: 12000,
“feeable”: 12000,
“tax_by_type”: {
“73423”: 998
},
“total”: 12998
},
“customer_type_rate”: {
“pk”: 6297241697,
“capacity”: 1,
“minimum_party_size”: null,
“maximum_party_size”: null,
“customer_type”: {
“pk”: 782863,
“singular”: “Per Person”,
“plural”: “Per Person”,
“note”: “”
},
“customer_prototype”: {
“pk”: 1956964,
“display_name”: “Per Person”,
“note”: “”,
“total”: 12000,
“total_including_tax”: 12998
},
“total”: 12000,
“total_including_tax”: 12998
},
“custom_field_values”:
},
{
“pk”: 752266817,
“checkin_url”: “https://fhchk.co/OUqXL”,
“checkin_status”: null,
“invoice_cost”: {
“price”: null,
“tax”: 0,
“taxable”: 0,
“feeable”: 0,
“tax_by_type”: {},
“total”: 0
},
“total_cost”: {
“price”: 12000,
“tax”: 998,
“taxable”: 12000,
“feeable”: 12000,
“tax_by_type”: {
“73423”: 998
},
“total”: 12998
},
“customer_type_rate”: {
“pk”: 6297241697,
“capacity”: 1,
“minimum_party_size”: null,
“maximum_party_size”: null,
“customer_type”: {
“pk”: 782863,
“singular”: “Per Person”,
“plural”: “Per Person”,
“note”: “”
},
“customer_prototype”: {
“pk”: 1956964,
“display_name”: “Per Person”,
“note”: “”,
“total”: 12000,
“total_including_tax”: 12998
},
“total”: 12000,
“total_including_tax”: 12998
},
“custom_field_values”:
}
],
“invoice_price”: 0,
“invoice_price_display”: “0.00”,
“confirmation_url”: “FareHarbor”,
“custom_field_values”: [
{
“pk”: 1057523910,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285996,
“type”: “yes-no”,
“is_required”: false,
“description”: “We will try our best to accommodate!”,
“description_safe_html”: “

We will try our best to accommodate!

”,
“name”: “Dietary Restrictions Y/N”,
“title”: “Check this box if anyone in your group have any dietary restrictions.”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
},
“name”: “Dietary Restrictions Y/N”,
“value”: “”,
“display_value”: “No”
},
{
“pk”: 1057523911,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1285131,
“type”: “extended-option”,
“is_required”: false,
“description”: “”,
“description_safe_html”: “”,
“name”: “How did you hear about us?”,
“title”: “How did you hear about us?”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”,
“extended_options”: [
{
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 7921379,
“name”: “Internet search”,
“description”: “”,
“description_safe_html”: “”
},
“[9 more items]”
]
},
“name”: “How did you hear about us?”,
“value”: “7921388”,
“display_value”: “Other”
},
{
“pk”: 1057523912,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1635016,
“type”: “short”,
“is_required”: true,
“description”: “”,
“description_safe_html”: “”,
“name”: “First Name”,
“title”: “Your first Name:”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
},
“name”: “First Name”,
“value”: “Susan”,
“display_value”: “Susan”
},
{
“pk”: 1057523913,
“custom_field”: {
“modifier_kind”: “offset”,
“modifier_type”: “none”,
“offset”: 0,
“percentage”: 0,
“is_taxable”: true,
“is_always_per_customer”: false,
“pk”: 1635017,
“type”: “short”,
“is_required”: true,
“description”: “”,
“description_safe_html”: “”,
“name”: “Last Name”,
“title”: “Your last Name:”,
“booking_notes”: “”,
“booking_notes_safe_html”: “”
},
“name”: “Last Name”,
“value”: “Markwell”,
“display_value”: “Markwell”
}
],
“voucher_number”: “”,
“receipt_subtotal”: 24000,
“receipt_subtotal_display”: “240.00”,
“receipt_taxes”: 1996,
“receipt_taxes_display”: “19.96”,
“receipt_total”: 25996,
“receipt_total_display”: “259.96”,
“amount_paid”: 25996,
“amount_paid_display”: “259.96”,
“note”: “”,
“note_safe_html”: “”,
“pickup”: null,
“arrival”: null,
“is_eligible_for_cancellation”: true,
“effective_cancellation_policy”: {
“type”: “hours-before-start”,
“cutoff”: “2024-11-05T10:00:00-0700”
},
“is_subscribed_for_sms_updates”: false,
“agent”: null,
“desk”: null,
“customer_count”: 2,
“waiver_signatures”: {},
“related_bookings”: {},
“external_api_url”: “https://fareharbor.com/api/external/v1/companies/santafeschoolofcooking/bookings/a2b3a652-7af8-46d6-93ca-4cb9aa00d403
}
}

It looks like the custom fields is an array, from which you can pull the value where the name of the custom field with the map() function: https://www.make.com/en/help/functions/array-functions#map-complex-array--key--key-for-filtering---possible-values-for-filtering-separated-by-a-comma--

But, your response might be reformatted accidentally by this forum. If you paste code, it is best to use this:
Scherm­afbeelding 2024-11-06 om 19.33.58

Cheers,
Henk

Yes I do believe it is an array.

Where would I put the map function?

I have two custom fields: “Your first name” and “Your last name”

What would the custom field array come up as when I am mapping my data?

With a map function, you can always follow this logic:

From this array, I want this, where that is equal to that.

So for example, from the custom field array you want the display_value where the name of the custom field is equal to e.g. ‘Last Name’
{{map(custom_field_instances;display_value;name;Last Name)}}

Again, the formatting of the JSON response might have changed. The example above is just an example, you will need to use the correct parameters in the function.

Cheers,
Henk

OK So this is what I put in when mapping my data

It seemed to like it. When I run it, no errors pop up. However, it does not seem to create a customer.

This is how I map the data when it comes in from FareHarbor

Here is the output data:

[
    {
        "id": 8937137701155,
        "email": null,
        "created_at": "2024-11-09T18:40:16.000Z",
        "updated_at": "2024-11-09T18:40:16.000Z",
        "first_name": "{{}}",
        "last_name": "{{}}",
        "orders_count": 0,
        "state": "disabled",
        "total_spent": "0.00",
        "last_order_id": null,
        "note": null,
        "verified_email": true,
        "multipass_identifier": null,
        "tax_exempt": false,
        "tags": "",
        "last_order_name": null,
        "currency": "USD",
        "phone": null,
        "addresses": [],
        "tax_exemptions": [],
        "email_marketing_consent": null,
        "sms_marketing_consent": null,
        "admin_graphql_api_id": "gid://shopify/Customer/8937137701155"
    }
]

It does not seem to be grabbing the right data

I tried this as well but it does not seem to be sending out the first name and last name

The error is coming up because the test booking I did had a phone number that was already in Shopify’s system but you can see that nothing is coming up for both first name and last name

Hi @SF_School

First, you can lose the curly braces {{ }} that you mapped in the fields, they are not necessary. Second, the way you implemented the map() function is not correct, therefore it has no output:

You can see that only the brackets exist, but no value from the map() function. I advise you to read up on the map() function and learn:

Cheers,
Henk

1 Like

OK I finally figured it out! These articles really saved me. Thanks so much, Henk

2 Likes