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.socialclime.com.

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

curl --header "api-token: xxxx-xxx-xxxxx-xxxxxxxx" --header "content-type: application/json" https://api.socialclime.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",
      "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",
      "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

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",
      "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"
}

Metadata

We support consuming information specific to your business to enable enhanced analytics. Metadata is optional.

Examples Include

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.

Previsits

Get Previsits

JSON Response

{
  "items": [
    {
      "customer": "Name of customer to receive previsit",
      "lang": "en|es",
      "location": "Location name",
      "location_id": "Location identifier",
      "sent_at": "2017-06-14T20:12:05+00:00",
      "sent_by": "Who sent the previsit",
      "sent_to": "8005550000|[email protected]",
      "service_provider": "Employee name previsit was sent for",
      "service_provider_id": "Employee identifier",
      "msg": "Previsit text message"
    }
  ]
}

This endpoint retrieves all reviews

HTTP Request

GET /v1/previsits

Create Previsit

JSON Request Body

{
  "lang": "en|es",
  "user": "identifier",
  "location": "identifier",
  "name": "Customer name",
  "sent_to": "8005550000|[email protected]",
  "msg": "Previsit message included in sms or email text"
}

JSON Response

- Success - http status code 200 with `{}` in body
- Error - appropriate http status code with error message details in body

This endpoint retrieves all reviews

HTTP Request

POST /v1/previsits

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.socialclime.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

iframe

Unfiltered reviews

<iframe src="https://iframe.socialclime.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.socialclime.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.socialclime.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.socialclime.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.socialclime.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.socialclime.com/iframe/<iframe_token>/averages?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.socialclime.com.