Use SlapFive API to integrate with other apps

Use SlapFive API to integrate with other apps

You’ve captured all this great customer voice content in SlapFive, now you want to integrate with other applications to pass content into SlapFive, pull SlapFive content out, or trigger workflows. We’ve got you covered. SlapFive has a set of simple but powerful APIs that enable this integration with just about any app you can think of. This article gives you some ideas for the types of integration use cases that are possible, and explains how to use the APIs.

Ideas for what you can do with these API endpoints

  • Your website developers can access SlapFive customer voice content and have total control over how it is presented on your site.
  • You can export your Stories and Boards to a spreadsheet.
  • You can create front-end forms that your customers can use to join your Customer Voice program and have that form data create new Customer records in SlapFive.
  • You can synchronize customer records between SlapFive and your marketing automation platform or CRM.
  • You can work with SaaS integration platforms like Zapier to build triggers and actions.

Authentication

When making requests to any SlapFive API, you must include “api-authorization” as a key in the HTTP header, with your API Key as the value. To find or generate your API Key, go to your Admin menu and click the “(Your Company Name) Client Settings” menu, and scroll down to the API Keys section, where you can copy and paste the value that appears, or generate a new one.

Available API endpoints

Get All Boards
Get Boards That Have Been Created or Changed in the Last XX Hours
Webhook for new or changed Board
Get a Specific Board and All its Stories
Get All Stories
Get Stories That Have Been Created or Changed in the Last XX Hours
Webhook for new or changed Story
Get a Specific Story
Get All Members
Get Members That Have Been Created or Changed in the Last XX Hours
Get a Specific Member
Webhook for new or changed Member
Create or Update a Member
Get All Companies
Get All Companies That Have Been Created or Changed in the Last XX Hours
Get a Specific Company
Webhook for new or changed Company
Create or Update a Company
Get All Activities
Get Activities That Have Been Created or Changed in the Last XX Hours
Webhook for new or changed Activity
Create an Activity
Get All Requests
Get All Requests That Have Been Fulfilled in the Last XX Hours
Webhook for new or changed Request
Webhook for new or changed Request Fulfillment Member
Webhook for new Content Share
Webhook for new Content View
Send a Prompt

Get All Boards

This API returns all Boards in an array, with the Board Name and Board ID.

Method: GET
URL: https://your_company.slapfive.com/api/api/boards/
Sample JSON output:

{
“__typename”: “Board”,
“name”: “This is the name of the first board being returned”,
“id”: “cjlfgkasm0h8d01409zdnj2sk”
},
{ “__typename”: “Board”,
“name”: “This is the name of the second board”,
“id”: “nkol3i6pr0u2p0145hm033r8j”
}

Get Boards That Have Been Created or Changed in the Last XX Hours

This returns Boards that have been created or changed within the specified number of hours.

Method: GET
URL: https://your_company.slapfive.com/api/api/boards/?hoursBack=XX
Sample JSON output: same as above

Webhook for new or changed Board

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Board is created/updated
‘webhook_id’: ‘board’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Get All Stories

This API returns all Stories, in an array, with all the information from the Story and the Customer who contributed the Story.

Method: GET
URL: https://your_company.slapfive.com/api/api/stories/
Sample JSON output:

{
“customer”: {
“avatarImage”: {
“mimeType”: “image/jpeg”,
“url”: “https://media.slapfive.com/i335722ab-a868-40ae-a625-6aa73000e09c?generation=1536711865414457&alt=media”,
“id”: “cjlyelbbf2aku0164pfankbyg”,
“__typename”: “Media”
},
“name”: “Joseph Smith”,
“title”: “VP of Marketing”,
“company”: {
“competitorsReplaced”: “Competitor X”,
“since”: “2016”,
“name”: “ABC Industries”,
“industry”: “Computer Software”,
“businessGoals”: “Increase impact of customer voice on revenue”,
“__typename”: “Company”,
“id”: “cjlyekqko29g90148kg9c87u3”,
“location”: “Boston, MA”,
“productsOwned”: “SlapFive Platform”,
“image”: {
“mimeType”: “image/svg+xml”,
“url”: “https://media.slapfive.com/ie7b72b9a-4c71-4257-bf7f-98743806e812?generation=1543889321542562&alt=media”,
“id”: “cjp93ubjr0bsi0151z125n07o”,
“__typename”: “Media”
},
“size”: “500-1000 employees”
},
“__typename”: “Customer”,
“lname”: “Smith”,
“fname”: “Joseph”,
“id”: “cjlyelbbf4akt0163slwbrayz”
},
“sourceUrl”: “https://www.abcindustries.com/stories”,
“prompt”: {
“title”: “What do you find compelling about this new approach to customer voice”,
“__typename”: “Prompt”,
“id”: “cjlyg2kou055b01637zogkz2g” },
“permission”: “Public”,
“text”: “This is the content in the Story Text field”,
“transcript”: “This is the content in the Transcription Text field”,
“__typename”: “Story”,
“source”: “Customer Interview”,
“media”: {
“mimeType”: “audio/mp3”,
“url”: “https://media.slapfive.com/a330bf98f-3b33-4517-8ce6-74ce5da0e24e?generation=1536773743406387&alt=media”,
“id”: “cjlzfet110fvf01403dcf02ye”,
“__typename”: “Media”
},
“type”: “Audio”,
“id”: “cjlzfet010fae01407t7vqc5c”,
}

Get a Specific Board and All its Stories

This API accepts a Board ID as parameter and returns that Board along with all the Stories on that Board. The Stories are returned with all the data about the Customer who contributed the Story.

Method: GET
URL: https://your_company.slapfive.com/api/api/boards/<boardID>
Sample JSON output:

{
“board”: {
“stories”: [ {
“customer”: {
“avatarImage”: {
“mimeType”: “image/jpeg”,
“url”: “https://media.slapfive.com/i7160b674-cbf0-5a71-b529-6333e3b4ddd4?generation=1536773564212306&alt=media”,
“id”: “cjlzfd0kp0enb0181yvt72pvm”,
“__typename”: “Media” },
“name”: “Joseph Smith”,
“title”: “VP of Marketing”,
“company”: {
“competitorsReplaced”: “Competitor X”,
“since”: “2016”,
“name”: “ABC Industries”,
“industry”: “Computer Software”,
“businessGoals”: “Grow revenue with customer voice”,
“__typename”: “Company”,
“id”: “cjlzfbp5f0e8v0187tsk73hnx”,
“location”: “Boston, MA”,
“productsOwned”: “SlapFive Platform”,
“image”: {
“mimeType”: “image/png”,
“url”: “https://media.slapfive.com/id120716f-3670-41af-a1d7-8d6419299473?generation=1536773622551914&alt=media”,
“id”: “cjlzfcz830f4n0122jtlf6kj4”,
“__typename”: “Media”
},
“size”: “1,001-5,000 employees”
},
“__typename”: “Customer”,
“lname”: “Smith”,
“fname”: “Joseph”,
“id”: “cjlzfd0ky0ena0191dyrz7255” },
“sourceUrl”: “https://www.abcindustries.com/stories”,
“prompt”: {
“title”: “How has your life changed by using SlapFive?”,
“__typename”: “Prompt”,
“id”: “cjlzfgkxl0fjy01976dl47dua” },
“nextReviewDate”: “2020-07-20T00:00:00.000Z”,
“reviewStatus”: “Released”,
“permission”: “Public”,
“text”: “This is the content in the Story Text field”,
“tags”: “Tag1”,
“transcript”: “This is the content in the Transcription Text field”,
“__typename”: “Story”,
“summary”: “This is the Story Summary”,
“source”: “Customer interview”,
“media”: {
“mimeType”: “video/mp4”,
“url”: “https://media.slapfive.com/v80d88b28-cd84-4d87-b503-9ceae9dd9208?generation=1539131279057869&alt=media”,
“id”: “cjn2f6h0f123l0165jnnlo4hi”,
“__typename”: “Media” },
“capturedByUser”: {
“__typename”: “User”,
“name”: “Jeff Ernst”,
“id”: “cjdknd457654nhc015961vvj69l” },
“type”: “Video”,
“id”: “cjn2f6h0f123k01652x64q3mx”,
}

Get Stories That Have Been Created or Changed in the Last XX Hours

This API returns Stories that have been created or changed within the specified number of hours.

Method: GET
URL: https://your_company.slapfive.com/api/api/stories/?hoursBack=XX
Sample JSON output: same as above

Webhook for new or changed Story

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Story is created/updated
‘webhook_id’: ‘story’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Get a Specific Story

This API accepts a Story ID as parameter and returns that Story with all the data about the Customer who contributed the Story.

Method: GET
URL: https://your_company.slapfive.com/api/api/stories/<storyID>
Sample JSON output:

{
“story”: {
“customer”: {
“avatarImage”: {
“mimeType”: “image/jpeg”,
“url”: “https://media.slapfive.com/ie2387756-274d-4bb1-af28-0b8b1c26bd50?generation=1536886937722051&amp;alt=media”,
“id”: “cjm1atj3m089j0123u8qnruqt”,
“__typename”: “Media”
},
“name”: “Joseph Smith”,
“title”: “VP of Marketing”,
“company”: {
“competitorsReplaced”: “Competitor X”,
“since”: “2015”,
“name”: “ABC Industries”,
“industry”: “Computer Software”,
“businessGoals”: “Recorded references,better case studies”,
“__typename”: “Company”,
“id”: “cjm1at33e054d036892n2teyt”,
“location”: “Boston, MA”,
“productsOwned”: “Product A”,
“image”: {
“mimeType”: “image/png”,
“url”: “https://media.slapfive.com/ie82d34c0-50gg-4473-a04a-6003fafb0c4a?generation=1536886962789086&amp;alt=media”,
“id”: “cjm1athgr05ac0162z7nk8hyf”,
“__typename”: “Media”
},
“size”: “500-1000 employees”
},
“__typename”: “Customer”,
“lname”: “Joseph”,
“fname”: “Smith”,
“id”: “cjm1atj3m058i0148j7v3362z”
},
“sourceUrl”: “https://www.abcindustries.com/stories”,
“prompt”: {
“title”: “Why did you decide to replace your old ERP system?”,
“__typename”: “Prompt”,
“id”: “cjp1siu2d0prc0197qpz7wzql”
},
“nextReviewDate”: null,
“reviewStatus”: “Released”,
“permission”: “Public”,
“text”: “This is the content in the Story Text field”,
“tags”: “Banking,Data Center”,
“transcript”: “This is the content in the Transcription Text field”,
“__typename”: “Story”,
“summary”: “This is the content in the Story Summary field”,
“source”: “Mobile Prompt”,
“media”: {
“mimeType”: “video/mp4”,
“url”: “https://media.slapfive.com/v80d88b54-cd67-4d87-b503-9ceae8dd9208?generation=1539131279057869&amp;alt=media”,
“id”: “cjxgl0lti03080180v5orv30j”,
“__typename”: “Media”
},
“capturedByUser”: {
“__typename”: “User”,
“name”: “Jeff Ernst”,
“id”: “cjdknd7e6ynhc017891vvj69l”
},
“type”: “Video”,
“id”: “cjxgl0lth030801803zqxh1mn”
}
}

Get All Members

Method: GET
URL: https://your_company.slapfive.com/api/api/customers/
Sample JSON output:

{
“__typename”: “Customer”,
“id”: “cjlzfd0ko0ena0191dyrz7255”,
“email”: “lsmith@abccompany.com”,
“fname”: “Larry”,
“lname”: “Smith”
}

Get Members That Have Been Created or Changed in the Last XX Hours

Method: GET
URL: https://your_company.slapfive.com/api/api/customers/?hoursBack=XX
Sample JSON output: same as above

Get a Specific Member

Method: GET
URL: https://your_company.slapfive.com/api/api/customers/<memberID>
Sample JSON output:

Webhook for new or changed Member

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Member is created/updated
‘webhook_id’: ‘member’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Create or Update a Member

If a Member record doesn’t exist for the email address provided, it creates a new Member. If a Member does already exist, it updates the Member record. In either case it returns the Customer ID.

Method: POST
URL: https://your_company.slapfive.com/api/api/customers/
Required for updating a Member: email
Required for creating new Member: email, fname, lname, companyName

Sample JSON request data:

{
“email”:”jsmith@abcindustries.com”,
“fname”:”Joseph”,
“lname”:”Smith”,
“companyName”:”ABC Industries”,
“phone”:”616.765.6787″,
“title”:”VP of Marketing”,
“activityTypesWillingToDo”:”Speak with an industry analyst, Take a Reference call, Network with peers”,
“linkedInUrl”:”https://www.linkedin.com/in/josephsmith/”,
“twitterHandle”:”@joejoesmitty”,
“salesforceContactId”:”4GH876JhG9765763″,
“type”:”Client”,
“activeStatus”:”Active”,
“inviteStatus”:”Member”,
“engagementNote”:”Joe is unavailable until March 15 because of a product launch.”,
“companyActiveStatus”:”Active”,
“companyProgramStatus”:”Member”,
“companyDescription”:”Global Manufacturing company”,
“companySize”:”100-500 employees”,
“companyIndustry”:”Computer Software”,
“companyLocation”:”Boston, MA”,
“companySince”:”July 2016″,
“companyProductsOwned”:”Product A, Product B, Product C”,
“companyCompetitorsReplaced”:”Competitor X”,
“companyBusinessGoals”:”World Domination and hyper-growth”,
“companySalesforceAccountId”:”4GH876JhG9765763″,
“companyMatchingField1″:”Tier 2”,
“companyMatchingField2″:”Manufacturing”,
“companyMatchingField3″:”Any value”,
}

Sample JSON output:

{
“customer”: {
“id”: “cjy4vfgam01eo0197xg4uihd3”
}
}

Get All Companies

Method: GET
URL: https://your_company.slapfive.com/api/api/companies/
By default, this endpoint gets Companies changed in the last 24 hours. To also get Companies changed more than 24 hours ago, append the URL with /?hoursBack=XX as described in Get Companies That Have Been Created or Changed in the Last XX Hours.

Sample JSON output:
{
“__typename”: “Company”,
“id”: “ckoa10fjl000v0jqk7wio7uuz”,
“since”: “July 2016”,
“name”: “Test Company 3000”,
“description”: null,
“size”: “100-500 employees”,
“location”: “April 18”,
“industry”: “Computer Software”,
“productsOwned”: “Product A,Product B,Product C”,
“competitorsReplaced”: “Competitor X”,
“businessGoals”: “World Domination and hyper-growth”,
“matchingField1”: “MA”,
“matchingField2”: null,
“matchingField3”: “April 18”,
“salesforceAccountId”: “44ABDC876JhG9765763”,
“anonymizedName”: “Global Manufacturing company”,
“engagementNotes”: “This is engagement note for Test Company 300”,
“programStatus”: “Member”,
“activeStatus”: “Active”,
“updatedAt”: “2021-05-26T01:56:22.235268+00:00”,
“companyPermissions”: [
{
“__typename”: “Company_CompanyPermission”,
“granted”: true,
“companyPermission”: {
“__typename”: “CompanyPermission”,
“id”: “ckmt645zl00023a9ztzyh00oo”,
“name”: “Referenceable”
}
},
{
“__typename”: “Company_CompanyPermission”,
“granted”: true,
“companyPermission”: {
“__typename”: “CompanyPermission”,
“id”: “ckmt659rl00043a9zf1ojw2s9”,
“name”: “Drop their name on sales calls”
}
}
] }

Get a Specific Company

Method: GET
URL: https://your_company.slapfive.com/api/api/companies/<companyID>

Get Companies That Have Been Created or Changed in the Last XX Hours

Method: GET
URL: https://your_company.slapfive.com/api/api/companies/?hoursBack=XX
Sample JSON output: same as above

Webhook for new or changed Company

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Company is created/updated
‘webhook_id’: ‘company’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Create or Update a Company

If a Company record doesn’t exist for the Company Name provided, it creates a new Company. If a Company does already exist, it updates the Company record. In either case it returns the Company ID.

Method: POST
URL: https://your_company.slapfive.com/api/api/companies/
Required for updating a Company: name
Required for creating new Member: name

Sample JSON request data:

{
“name”: “ABC Company”,
“description”: “Large Manufacturing Company”,
“size”: “100 employees”,
“industry”: “Manufacturing”,
“location”: “Houston, TX”,
“since”: “1995”,
“productsOwned”: “Product A”,
“competitorsReplaced”: “Competitor A”,
“businessGoals”: “Make more money”,
“salesforceAccountId”: “456hg45kj64j25332”,
“matchingField1”: “Texas”,
“matchingField2”: “”,
“matchingField3”: “”,
“engagementNotes”: “”,
“activeStatus”: “Active”,
“programStatus”:”Member”,
“anonymizedName”: “”,
“permissions”: [
“Referenceable”,
“Name Drop”
] }

Sample JSON output:

{
“company”: {
“id”: “cjy4vfgam01eo0197xg4uihd3”
}
}
“company”: {
“id”: “cjy4vfgam01eo0197xg4uihd3”
}
}

Get All Activities

Method: GET
URL: https://your_company.slapfive.com/api/api/activityLogs/

Sample JSON output:

{
“__typename”: “ActivityLog”,
“updatedAt”: “2021-03-15T13:17:10.19561+00:00”,
“prompt_id”: null,
“notes”: “Spoke to Gartner analyst Bill Smith”,
“id”: “ckmam2n0i00023a9xumv4duff”,
“customer_id”: “cjsncrhnw0rz00150v8ec8uvp”,
“dateTime”: “2021-03-15T00:00:00+00:00”,
“createdAt”: “2021-03-15T13:17:10.19561+00:00”,
“board_id”: null,
“activityType”: {
“__typename”: “ActivityType”,
“id”: “ckdp29cji00023b9htcje2mc0”,
“name”: “Speak with industry analyst”,
“points”: 30
}
}

Get Activities that Have Been Created or Changed in the Last XX Hours

Method: GET
URL: https://your_company.slapfive.com/api/api/activityLogs/?hoursBack=XX
Sample JSON output: same as above

Webhook for new or changed Activity

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when an Activity is created/updated
‘webhook_id’: ‘activityLog’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Create an Activity

Method: POST
URL: https://your_company.slapfive.com/api/api/activity/
Required for creating new Activity: email, activityName, date
Optional: notes

Sample JSON request data:

{
“email”:”jsmith@abcindustries.com”,
“activityName”:”Speak at a conference”,
“date”:”2021-06-12 12:00:00″,
“notes”:”Spoke on customer panel at ABC Customer Conference”,
}

Sample JSON output:

{
“status”: “ok”,
“message”: “added activity type ‘Speak at a conference’ to John Smith”
}

Get All Requests

Method: GET
URL: https://your_company.slapfive.com/api/api/requests/

Sample JSON output:
{
“__typename”: “Request”,
“requesterName”: “Sarah Salesrep”,
“requesterEmail”: “sarah_salesrep@abccompany.com”,
“requestStatus”: “Fulfilled”,
“rating_id”: “ckm6q01x900003b9x7jp155y7”,
“ratingDescription”: “This board was really effective at overcoming their doubts.”,
“preferredCustomers”: null,
“number”: 34,
“noteToRequester”: “Here is a storyboard that should fill your needs”,
“needFor”: “Speak to my prospect about their implementation experience.”,
“needDescription”: “A customer in retail industry”,
“needByDate”: “2021-06-19T00:00:00+00:00”,
“id”: “ckm6psceq00003b9x46rdh3yp”,
“fulfillmentDate”: “2021-06-12T00:00:00+00:00”,
“createdAt”: “2021-03-12T19:50:03.494554+00:00”,
“columnOrder”: 3,
“client_id”: “cjle3u84b1bz40123h3vuipjo”,
“activityType_id”: “jh450safllsadf0asdf4543l”,
“opportunityId”: “0065w000022sC67AAE”,
“activityGrantedOnFulfillment”: “Take a customer reference call”,
“fulfillmentBoards”: [],
“fulfillmentCustomers”: [
{
“__typename”: “RequestFulfillmentCustomers”,
“customer”: {
“__typename”: “Customer”,
“id”: “cjvpppfoe02ec0155v6bh65mi”,
“name”: “Johnny Customer”,
“company”: {
“__typename”: “Company”,
“id”: “ck8do5h6n0f6q0158n0ozhsid”,
“name”: “ZYX Industries”
}
}
},
],
“tags”: [],
}

Get Requests That Have Been Fulfilled in the Last XX Hours

Method: GET
URL: https://your_company.slapfive.com/api/api/requests/?fulfillmentHoursBack=XX
Sample JSON output: same as above

Webhook for new or changed Request

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Request is created/updated
‘webhook_id’: ‘request’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Webhook for new or changed Request Fulfillment Member

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Request Fulfillment Member is created/updated
‘webhook_id’: ‘fulfillmentMember’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Webhook for new Content Share

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Request is created/updated
‘webhook_id’: ‘share’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Webhook for new Content View

Subscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/subscribe

body: {
‘webhook_url’: the URL that the webhook calls when a Request is created/updated
‘webhook_id’: ‘pageView’
}

Unsubscribe:

Method: POST
URL: https://slapfive.slapfive.com/api/webhooks/unsubscribe

body: {
‘webhook_url’: the URL that was subscribed
}

Send a Prompt

Method: POST
URL: https://your_company.slapfive.com/api/api/sendPrompt

Required parameters: customerId, promptId or promptGroupId
Optional parameters: customGreeting, customSubject

}(jQuery));