NAV navigation button
SocialClimb

Introduction

SocialClimb is a HIPAA compliant Reputation Management platform.

Learn More at SocialClimb.com

Getting started

Requests to the api will require a header named api-token. Your api token can be found on https://app.socialclimb.com.

The api base domain is https://api.socialclimb.com

curl --header "api-token: xxxx-xxx-xxxxx-xxxxxxxx" --header "content-type: application/json" https://api.socialclimb.com/v1/locations

Run this command to quickly test authorization

Locations

JSON Response

{
  "items": [
    {
      "id": 1,
      "location_name": "name"
    }
  ]
}

Get All Locations

This endpoint retrieves all locations

HTTP Request

GET /v1/locations

Platforms

JSON Response

{
  "items": [
    {
      "active": true,
      "id": 90238,
      "is_survey": false,
      "name": "Google"
    },
    {
      "active": true,
      "id": 90239,
      "is_survey": false,
      "name": "Yelp"
    },
    {
      "active": true,
      "id": 91230,
      "is_survey": false,
      "name": "Facebook"
    },
    {
      "active": true,
      "id": 91232,
      "is_survey": false,
      "name": "Private"
    },
    {
      "id": 100143,
      "is_survey": true,
      "name": "Survey #2"
    }
  ]
}

Get All Platforms

This endpoint retrieves all platforms

HTTP Request

GET /v1/platforms

Messages

JSON Response

{
  "items": [
    {
      "id": 52345,
      "name": "Johnny Doe",
      "oid": "doe",
      "division": "",
      "img_url": "https://storage.googleapis.com/socialclime-prod/message-default.png",
      "languages": {
        "en": {
          "key": "en",
          "message":
            "{customer.firstname},\nThank you for choosing {account.name}. Please take a minute and leave me feedback at the link below.\n{user.name}"
        },
        "es": {
          "key": "es",
          "message":
            "{customer.firstname},\nGracias por usar {account.name}. Por favor, deje un comentario en el siguiente enlace.\n{user.name}"
        }
      }
    }
  ]
}

Get All Messages

This endpoint retrieves all messages

HTTP Request

GET /v1/messages

Create a new Message

JSON Request Body

{
  "name": "Provider Name",
  "oid": "UNIQUE_EXTERNAL_ID",
  "languages": {
    "en": {
      "message":
        "{customer.firstname},\nThank you for allowing me to help you. Please click the link below to leave your feedback!\n{user.name}\n\n{account.name}",
      "greeting": "Would you recommend {account.name}?"
    },
    "es": {
      "message":
        "{customer.firstname},\nGracias por permitirme ayudarte. Por favor, haga clic en el enlace de abajo para dejar su opinión!\n{user.name}\n\n{account.name}",
      "greeting": "Recomendarias {account.name}?"
    }
  },
  "platforms": [111, 222, 333]
}

Creates a new Message

Creates a new message with the supplied configuration

HTTP Request

POST /v1/messages

Update Message

JSON Request Body

{
  "id": 770490,
  "name": "Test 2",
  "oid": "UNIQUE_EXTERNAL_ID",
  "languages": {
    "en": {
      "greeting": "Would you recommend {account.name}?",
      "message":
        "{customer.firstname},\nThank you for allowing me to help you. Please click the link below to leave your feedback!\n{user.name}\n\n{account.name}"
    },
    "es": {
      "greeting": "Recomendarias {account.name}?",
      "message":
        "{customer.firstname},\nGracias por permitirme ayudarte. Por favor, haga clic en el enlace de abajo para dejar su opinión!\n{user.name}\n\n{account.name}"
    }
  },
  "platforms": [111, 222, 333]
}

Updates a Message

Updates a message with the supplied configuration

HTTP Request

PUT /v1/messages/:id

Update Message Image

Example multipart/form-data post body

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name=""; filename="provider_image.png"
Content-Type: image/png


------WebKitFormBoundary7MA4YWxkTrZu0gW--

Adds or replaces a messages image

Upload and set a messages image

HTTP Request

PUT /v1/messages/:id/image

Delete a Message

Deletes a Message

Deletes a message with the id on the url path

HTTP Request

DELETE /v1/messages/:id

Users

Get Users

JSON Response

{
  "items": [
    {
      "active": true,
      "email": "[email protected]",
      "id": 132532,
      "name": "Provider Name",
      "oid": "EXTERNAL_ID",
      "phone": "5555555555",
      "bio": "User Bio"
    },
    {
      "active": true,
      "email": "[email protected]",
      "id": 102344,
      "name": "Another Name"
    }
  ]
}

Gets all Users

This endpoint retrieves all users

HTTP Request

GET /v1/users

Get User Reviews

JSON Response

{
  "items": [
    {
      "review_id": "...",
      "comment": "Review text comment",
      "create_time": "2017-05-04T18:22:22+00:00",
      "invite_name": "Customer's name",
      "invite_type": "sms|email",
      "location": "Location's name",
      "location_oid": "Location identifier",
      "external_provider_ids": ["NPI", "EXAMPLE_ID", "EXAMPLE3"],
      "external_location_ids": ["OFFICE_EXT_NAME", "EXAMPLE_ID", "EXAMPLE3"],
      "message": "SocialClimb message name used in invite",
      "platform": "Google|Facebook|...",
      "rating": 5,
      "reviewer": "Reviewer's name",
      "sent_at": "2017-05-04T18:24:58+00:00",
      "sent_to": "8005550000|[email protected]"
    }
  ]
}

Get User Reviews

This endpoint retrieves all reviews by user_id

HTTP Request

GET /v1/users/:user_id/reviews

Invite User

JSON Request Body

{
  "role": "Administrator",
  "name": "Provider Name",
  "email": "[email protected]",
  "oid": "EXTERNAL_ID"
}

Invites a User

Creates a pending user in the account awaiting the user creating his password

HTTP Request

POST /v1/users

Update User

{
  "name": "j j",
  "role": "Location Admin",
  "oid": "EXTERNAL_ID"
}

Updates a User

Updates a user with the supplied configuration

HTTP Request

PUT /v1/users/:id

Update User Image

Example multipart/form-data post body

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name=""; filename="provider_image.png"
Content-Type: image/png


------WebKitFormBoundary7MA4YWxkTrZu0gW--

Adds or replaces a users image

Upload and set a users image

HTTP Request

PUT /v1/users/:id/image

Delete User

Deletes a User

Deletes a user with the id on the url path

HTTP Request

DELETE /v1/users/:id

Setup User & Message

Create user and message

Both user and message will created and linked.

Example multipart/form-data post body

Content-Type: multipart/form-data; boundary=123456

--123456
Content-Disposition: form-data; name=”file”; filename=”service_provider_picture.jpg”

content of service_provider_picture.jpg
--123456
Content-Disposition: form-data; name="role"

Adminstrator
--123456
Content-Disposition: form-data; name="name"

Provider Name
--123456
Content-Disposition: form-data; name="email"

[email protected]
--123456
Content-Disposition: form-data; name="oid"

EXTERNAL_ID
--123456--

HTTP Request

POST /v1/setup

Update image

Updates both user and message image

HTTP Request

PUT /v1/setup/:id

Reviews

JSON Response

{
  "items": [
    {
      "review_id": "...",
      "comment": "Review text comment",
      "create_time": "2017-05-04T18:22:22+00:00",
      "invite_name": "Customer's name",
      "invite_type": "sms|email",
      "location": "Location's name",
      "location_oid": "Location identifier",
      "external_provider_ids": ["NPI", "EXAMPLE_ID", "EXAMPLE3" ],
      "external_location_ids": ["OFFICE_EXT_NAME", "EXAMPLE_ID", "EXAMPLE3"],
      "message": "SocialClimb message name used in invite",
      "platform": "Google|Facebook|...",
      "rating": 5,
      "reviewer": "Reviewer's name",
      "sent_at": "2017-05-04T18:24:58+00:00",
      "sent_to": "8005550000|[email protected]"
    }
  ]
}

Get All Reviews

This endpoint retrieves all reviews

HTTP Request

GET /v1/reviews

NPS Surveys

JSON Response

{
  "items": [
    {
      "nps_rating": 10.0,
      "question_id": "Recommend",
      "review_id": "...",
      "comment": "Review text comment",
      "create_time": "2017-05-04T18:22:22+00:00",
      "invite_name": "Customer's name",
      "invite_type": "sms|email",
      "location": "Location's name",
      "location_oid": "Location identifier",
      "external_provider_ids": ["NPI", "EXAMPLE_ID", "EXAMPLE3"],
      "external_location_ids": ["OFFICE_EXT_NAME", "EXAMPLE_ID", "EXAMPLE3"],
      "message": "SocialClimb message name used in invite",
      "platform": "Google|Facebook|...",
      "rating": 5,
      "reviewer": "Reviewer's name",
      "sent_at": "2017-05-04T18:24:58+00:00",
      "sent_to": "8005550000|[email protected]"
    }
  ]
}

Get All NPS Surveys

This endpoint retrieves all NPS surveys. The body is very similar to the review api but with the addition of nps_rating and question_id.

HTTP Request

GET /v1/surveys

Invites

JSON Response

{
  "items": [
    {
      "clicked": [
        {
          "created_at": "2017-03-02 05:43:51+00:00",
          "name": "Google|Facebook|..."
        }
      ],
      "customer_name": "John Smith",
      "extras": {
        "test": "A",
        "address": "Stonebrick ln"
      },
      "location": "Location's name",
      "location_oid": "Location identifier",
      "external_provider_ids": ["NPI", "EXAMPLE_ID", "EXAMPLE3"],
      "external_location_ids": ["OFFICE_EXT_NAME", "EXAMPLE_ID", "EXAMPLE3"],
      "message": "SocialClimb message name used in invite",
      "opened": "2017-03-02 05:43:36+00:00",
      "platform": "Google|Facebook|...",
      "proceeded_to_review": true,
      "review_rating": 5,
      "sent_at": "2017-07-02 03:35:19+00:00",
      "sent_by": "",
      "sent_to": "5554443333|[email protected]",
      "status": "sent",
      "type": "sms|email"
    }
  ]
}

Get All Invites

This endpoint retrieves all invites

HTTP Request

GET /v1/invites?date=2017-07-01T00:00:00Z

Create a new Invite

JSON Request Body

{
  "name": "Name of customer who will be receiving ",
  "sent_to": "5552228888",
  "address": "123 bridge lane"
}

JSON Response

{
  "id": "f0c3c82c-befa-4440-16cb-29ce6c623456",
  "message": {
    "image": {
      "url": "https://storage.googleapis.com/socialclime-prod/an-image.png"
    },
    "languages": {
      "en": {
        "message": "English message"
      },
      "es": {
        "message": "Spanish message"
      }
    }
  },
  "url": "https://goo.gl/example"
}

POST /v1/locations/:id/invites?message=1

Optionally you can have SocialClimb do delivery by appending /send

POST /v1/locations/:id/invites/send?message=1

Optional referral query param

{
  "send": true,
  "url": "https://goo.gl/b6N69e"
}

JSON Response

{
  "send": false
}

The existence of referral changes the invite response based on if a previous review has been captured for the recipient identified by the sent_to field.

Med Import

Post Med Import

POST /v1/medimport

JSON Request Body

[
  {
    "mess_id": "",
    "location_name": "",
    "provider": "",
    "patient_name": "",
    "language": "",
    "home_phone": "",
    "day_phone": "",
    "alt_phone": "",
    "sec_home_phone": "",
    "cell_phone": "",
    "email_address": "",
    "encounter_type": "",
    "client_id": "",
    "message_type": "",
    "appointment_date": "",
    "patient_id": ""
  },
  {
    "mess_id": "",
    "location_name": "",
    "provider": "",
    "patient_name": "",
    "language": "",
    "home_phone": "",
    "day_phone": "",
    "alt_phone": "",
    "sec_home_phone": "",
    "cell_phone": "",
    "email_address": "",
    "encounter_type": "",
    "client_id": "",
    "message_type": "",
    "appointment_date": "",
    "patient_id": ""
  }
]

Calls

Get Calls

This endpoint retrieves all Calls.

HTTP Request

GET /v1/calls

JSON Response

{
  "items": [
    {
      "appt_date": "---",
      "call_date": "9/22/2022 11:06 pm",
      "campaign": "Campaign Name",
      "channel": "Organic Search",
      "from_number": "8019982830",
      "location_name": "---",
      "new_patient": false,
      "patient_id": "UNKNOWN",
      "patient_name": "UNKNOWN",
      "provider": "---",
      "source": "Google Business Profiles",
      "tracking_number": "8019982830"
    }
  ]
}

Conversions

Get Conversions

This endpoint retrieves Conversions. Conversions can be either a Call to SocialClimb's Call Tracker or an Online submission from a SocialClimb integrated partner.

HTTP Request

GET /v1/conversions

Field Description
conversion_id The unique identifier of the conversion
*appt_date The date of the patient's appointment that occurred after the conversion event
campaign The marketing campaign that generated the conversion
channel The marketing channel that generated the conversion
date The date the call or submission occurred
from_number The patient's phone number
*location_name The location of the patient's appointment
new_patient The new_patient flag is set to True if, at the time the call or submission occurred, we haven’t seen any previous appointments (invites) on that account with the given phone number.
*patient_id The patient id from the corresponding appointment
*patient_name Name of the patient
*provider The name of provider that saw the patient
source The marketing source that generated the conversion
tracking_number The tracking number that the patient called
type Can be one of the following values: “Call”, “Online”, “App”
modified_at The date of the last modification. Will be the date the conversion was created until it becomes associated with an appointment, at which point the date of that association will populate this field

*These fields are only populated after the conversion gets associated with an appointment for the patient. Unpopulated values mean that an appointment for the patient hasn't occurred after the given conversion event.

JSON Response

{
  "items": [
    {
      "appt_date": "---",
      "campaign": "Your Campaign Name",
      "channel": "Organic Search",
      "conversion_id": "123456_Call",
      "date": "9/22/2022 11:06 pm",
      "from_number": "8019982830",
      "location_name": "---",
      "modified_at": "9/24/2022 12:37 pm",
      "new_patient": false,
      "patient_id": "UNKNOWN",
      "patient_name": "UNKNOWN",
      "provider": "---",
      "source": "Google Business Profiles",
      "tracking_number": "8019982830",
      "type": "Call"
    }
  ]
}

Using modified_since Parameter to Get Updates

Conversion data is a living dataset. When a new conversion is associated with an existing appointment, the order of associations along with other details are changed. You can use the modified_since parameter to keep your data up to date and track any changes/modifications. After pulling initial data, use the modified_since paramater to pass in the date of your last data pull to get all the changes that may have occurred since then. Track the conversions with their unique conversion_id and update any that are retrieved using this parameter.

Campaigns

Get Campaigns

This endpoint retrieves Campaigns data for the account over a specified time period.

HTTP Request

GET /v1/campaigns

JSON Response

{
  "items": [
    {
      "appointments": "3",
      "calls": "248",
      "channel": "Direct",
      "cost": "$320.00",
      "cost_per_appt": "$106.67",
      "cost_per_call": "$1.29",
      "cost_per_patient": "$320.00",
      "new_patients": "1"
    }
  ]
}

Surveys List

Get Surveys List

This endpoint retrieves a list of Survey names and IDs for the account.

HTTP Request

GET /v1/surveys-list

JSON Response

{
  "items": [
    {
      "id": 99999,
      "name": "Survey Name"
    }
  ]
}

Survey Responses

Get Survey Responses

This endpoint retrieves survey response data for a particular survey.

HTTP Request

GET /v1/survey-responses

JSON Response

{
  "items": [
    {
      "appointment_date": "8/30/22 12:00:00 pm",
      "care_from_provider": "Very Good",
      "contact": "8019982830",
      "friendliness": "Very Good",
      "friendliness_team": "Very Good",
      "likelihood_to_recommend": "Very Good",
      "location": "Clinic Location",
      "npi": null,
      "overall": 5.0,
      "patient_first": "FirstName",
      "patient_id": "123456",
      "patient_last": "LastName",
      "patient_name": "FirstName LastName",
      "provider": "Provider Name, MD",
      "provider_time": "Very Good",
      "scheduling": "Very Good",
      "survey_submit_date": "9/1/22 12:39:46 am",
      "user": "FirstName LastName",
      "user_id": "123456",
      "wait_time_clinic": "Very Good",
      "when": "9/1/22 12:39:46 am"
    }
  ]
}

Insights

The Insights API allows you to retrieve monthly aggregated data by Google Business Profile.

Request

GET /v1/insights/byMonth

{}

Response

Name Type Description
location_id int Location Id
month int Number representing the month. Format: YYYYMM.
metric_type string Enum: views_maps, views_search, actions_website, actions_phone, actions_driving_directions
count int Total for this location/month/type combination.
[
  {
    "location_id": 12345,
    "month": 202303,
    "metric_type": "views_maps",
    "count": 123
  }
]

Partners

The partner api allows a partner to get data from his client accounts.

Difference from other api calls

Requests to the partner api will require a header named api-token. This is different from a client token. Contact customer support to have a token created for you. The api functions the same as the standard SocialClimb api, except how you get your token.

Providers

JSON Response

{
  "count": "20",
  "average_rating": "4.8"
}

This endpoint retrieves a count and average rating for a provider associated with one of your client accounts.

HTTP Request

GET /v1/providers/<NPI>

GET /v1/providers/12345678

SSO

SAML 2.0

Required Attributes(Claims)

<Attribute Name="Role">
  <AttributeValue>Administrator</AttributeValue>
</Attribute>

Role can be Administrator, Service User, Office Staff, Location Admin

<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress">
  <AttributeValue>[email protected]</AttributeValue>
</Attribute>

Email should be valid and match the IDP users identity

Introduction

SocialClimb supports enterprise single sign-on (SSO) using the SAML 2.0 standard (http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html). Authentication is supported via both IDP and SP workflows and allows for JIT user provisioning.

SocialClimb uses OneLogin's SAML Python Toolkit. https://github.com/onelogin/python3-saml

SocialClimb requires AuthNRequest and LogoutRequest are signed

Setup Requirements

SSO integration requires coordination between your IT department and the SocialClimb implementation team. The data that needs to be prepared prior to the integration is:

Frequently Asked Questions

User Provisioning

  1. Within your IDP add required attributes to the users your expect to be using SocialClimb
  2. The user can then use IDP initiated or SP initiated SSO and have the user JIT provisioned

User Deprovisioning

  1. Go to the user accounts https://app.socialclimb.com/app/user-accounts
  2. Edit the user using the more options icon on the right side
  3. Scroll to the bottom and hit the trashcan icon to delete the user
  4. You will need to remove the SocialClimb Role attribute within your IDP to prevent the user from being JIT provisioned again.

Support Information

Website Embed

SocialClimb provides iframes to our customers which can be used to display patient reviews or review averages that are within the SocialClimb application to a website.

The Iframes can be enabled through the ‘Reviews Iframe’ page, the link to this page is found under the Navigation section within the settings page.

iframe

Iframes follow this general format:

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/<endpoint>" width="720" height="400">
  <p>Your browser does not support iframes.</p>
</iframe>

Iframe API

If you are only interested in the data within the Iframe but don't want the html then you can use the Iframe api endpoint that we provide.

The Iframe API endpoint follows the exact same format as the Iframe urls except for the addition of /api in the path: https://iframe.socialclimb.com/iframe/api

You can find the public api key value to use within the <iframe_token> on the reviews iframe page within the settings page in the SocialClimb web application

Iframe Parameters

We support many of the arguments from the ‘Iframe Reviews’ page as parameters when requesting the Iframe or the Iframe API, if these parameters are not provided then the values set on the Iframe settings page will take precendence.

Parameters available to all Iframe api endpoints:

These Parameters below are only available to the https://iframe.socialclimb.com/iframe/api/<iframe_token>/reviews Iframe endpoint:

Example of all of them in use:

https://iframe.socialclimb.com/iframe/api/<iframe_token>/reviews
?doc=1234,5678
&loc=1234,5678
&plats=1234,5678
&limit=12
&min_rating=4
&start=2023-10-09
&end=2023-10-11

Iframe Examples:

Unfiltered reviews

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/reviews" width="720" height="400">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to a location reviews

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/reviews?loc=<loc_id>" width="720" height="400">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to a doctor reviews

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/reviews?doc=<doc_id>" width="720" height="400">
  <p>Your browser does not support iframes.</p>
</iframe>

Unfiltered averages

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/averages" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to a location averages

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/averages?loc=<loc_id>" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to a doctor averages

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/averages?doc=<doc_id>" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to one survey

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/survey-average?survey=<survey_id>" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to one survey and one location

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/survey-average?survey=<survey_id>&loc=<loc_id>" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Filtered to one survey and one doctor

<iframe src="https://iframe.socialclimb.com/iframe/<iframe_token>/survey-average?survey=<survey_id>&doc=<doc_id>" width="720" height="55">
  <p>Your browser does not support iframes.</p>
</iframe>

Introduction

The iframe snippet will enable you to embed your reviews directly into your website.

Your iframe token can be found on https://app.socialclimb.com.

Iframe Settings

Once the iframe has been enabled in your account, some granular settings can be configured. Below is an image showing all the different settings that can be changed. The different settings that can be configured include:

Iframe Reviews Coloring

If you're using our reviews iframe, it comes with ability to be styled to match your brand. These inputs work off of hex values and allow hex values with or without alpha channels (i.e. #000000 and #00000000 will work). Below are all of the options that can be edited with your own hex value to style the reviews iframe.

Something to note is that when initally enabling iframe's for your account, there will be default SocialClimb colors for your account. If at anytime you wish to change back to these colors, just click the “Restore Default Colors” and click “Save” to reset the reviews iframe colors.

Iframe of average review score

Iframe of customer reviews, standard layout

The standard layout can be used at any time by adding ?layout=rows to the end of the reviews url.

Iframe of customer reviews, grid layout

The grid layout can be used at any time by adding ?layout=grid to the end of the reviews url.

Iframe of all survey averages

Iframe of survey average from one survey and one location

Iframe of survey average from one survey and one doctor

Online Submissions

The SocialClimb API allows you to post online submissions to be included in marketing reporting. To use these endpoints you will need a specific API token that will be provided upon request, this API token is NOT the same token as described in the Getting Started section. This token is generated and managed in the SocialClimb app on the Web Forms Setup Page. The API token must be placed under the HTTP Request Header api-token.

Online Submission Data Structure

The following table outlines the fields that make up the online submission data structure. Some fields are required, others are optional.

Name Type Required Description
submission_date string Yes A string representation of a UTC timestamp of when the online submission was received by the scheduling system. Follows the ISO 8601 Standard. (YYYY-MM-DDThh:mm:ss.sTZD) Time zones will be converted to UTC Time. Will be used to match the appointment to the online submission, as well as in reporting.
scct_parameter string Yes A SocialClimb campaign tracking ID. The SCCT parameter is used to tie the online submission to a specific marketing campaign. When a prospect schedules an appointment, the SCCT will need to be captured and sent to us on this request. See the note below about capturing the SCCT parameter.
phone_number string Yes The phone number of the scheduled patient/prospect. Used to match the appointment to the online submission for reporting purposes.
conversion_type string Yes Enum: Online, App. Indicates the source of the online submission, such as an online tool, or an app that helps a prospective patient find a doctor. Will be used to differentiate sources in the reporting.
patient_name string Yes The name of the scheduled patient/prospect. Used to match the appointment to the online submission for reporting purposes.
patient_id string No The ID of the patient/prospect that is used in your practice management or other software. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
scheduled_appointment_date string No The date of the scheduled appointment
email string No The email of the scheduled patient/prospect. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
street string No The street address of the scheduled patient/prospect. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
secondary_street string No A secondary address such as an apartment or unit number. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
city string No The city part of the patient/prospect's address. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
state string No A two letter abbreviation of the state in the patient/prospect's address. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
postal string No The zip code for the patient/prospect's address. Helps with matching the appointment to the online submission for reporting purposes, but is not required.
is_test boolean No Used to indicate that the submission is a test. Test submissions will not be included in reporting. Test submissions are deleted every night. Defaults to false

*The submission_date is only required when using the /bulk-upload endpoint.

Capturing the SCCT Parameter

The SocialClimb campaign tracking script can append the SCCT parameter to any URL that sends users to an online scheduling tool. To enable this feature, go to the Campaign Tracking Setup page in the settings of the SocialClimb app, and click to enable Link Tracking. It will then allow you to enter any URL that you want the SCCT appended to. It will then add a URL parameter to any URL which you specified. It should then be captured on your site or scheduling tool. For example, if you enter https://www.example.com under the Link Tracking setting, when a user clicks a link to example.com on your site where the tracking script is installed, the URL will have the SCCT parameter appended in a URL parameter under the key ‘scct’. The URL in this case would be something like https://www.example.com?scct=<scct_parameter>. The online tool should then capture the SCCT parameter so that it can be used for online submissions.

Upload Single Online Submission

This endpoint allows you to post a single online submission.

HTTP Request

POST /v1/online-submissions/upload

JSON Request Body Example

The following JSON body represents a single online submission:

{
  "submission_date": "2023-09-20T12:00:00Z",
  "scct_parameter": "98302",
  "phone_number": "1112223333",
  "conversion_type": "Online",
  "patient_name": "Joe Black",
  "patient_id": "1234567",
  "scheduled_appointment_date": "2023-12-23T12:00:00Z",
  "email": "[email protected]",
  "street": "123 Address Street",
  "secondary_street": "Unit 2",
  "city": "Example City",
  "state": "NY",
  "postal": "10001",
  "is_test": true
}

Bulk Upload Online Submissions

This endpoint is similar to the previous one, but allows for the upload of multiple online submissions. The body contains a list of single submissions.

HTTP Request

POST /v1/online-submissions/bulk-upload

JSON Request Body Example

{
  "submissions": [
    {
      "submission_date": "2023-12-20T12:00:00Z",
      "scct_parameter": "98302",
      "phone_number": "1112223333",
      "conversion_type": "Online",
      "patient_name": "Joe Black",
      "patient_id": "1234567",
      "scheduled_appointment_date": "2023-12-23T12:00:00Z",
      "email": "[email protected]",
      "street": "123 Address Street",
      "secondary_street": "Unit 2",
      "city": "Example City",
      "state": "NY",
      "postal": "10001",
      "is_test": false
    },
    {
      "submission_date": "2023-09-21T12:00:00Z",
      "scct_parameter": "20389",
      "phone_number": "4445556666",
      "conversion_type": "App",
      "patient_name": "Steve White",
      "patient_id": "7654321",
      "scheduled_appointment_date": "2023-12-23T12:00:00Z",
      "email": "[email protected]",
      "street": "456 Address Street",
      "secondary_street": "Unit 3",
      "city": "Example Town",
      "state": "NY",
      "postal": "10001",
      "is_test": true
    }
  ]
}

Security

We do our best to make sure our software is free of security vulnerabilities. Reality though is that it's not always the case. That is why we are very much eager and grateful to hear about any issues you find. Please report these directly via email.