{ "name": "medallia-api", "apidoc": { "version": "0.0.1" }, "headers": [ { "name": "Authentication", "type": "string", "required": true, "description": "Authentication header, it can be a request Token or an access Token" } ], "base_url": "https://api-us.kampyle.com/api/v1", "description": "API for Medallia Surveys system", "info": { "contact": { "name": "Eduardo Diaz Sancha", "email": "edsancha@gmail.com" } }, "imports": [ { "uri": "https://app.apibuilder.io/edsancha/survey-models/0.0.1/service.json" } ], "enums": { "ratingViewType": { "values": [ { "name": "slide" }, { "name": "numbersSquare" }, { "name": "gradingSlider" }, { "name": "gradingDropdown" }, { "name": "stars" }, { "name": "emoticons" }, { "name": "numbers" }, { "name": "smilies" }, { "name": "bars" } ] }, "formType": { "values": [ { "name": "mobileInvitation" }, { "name": "code" } ] }, "compareString": { "values": [ { "name": "greaterThan" }, { "name": "equals" }, { "name": "smallerThan" } ] } }, "unions": { "component_union": { "description": "Represents the question or fields to be filled by the user ", "discriminator": "component", "types": [ { "type": "component_label", "discriminator_value": "label" }, { "type": "component_image", "discriminator_value": "image" }, { "type": "component_nps", "discriminator_value": "nps" }, { "type": "component_textArea", "discriminator_value": "textArea" }, { "type": "component_textInput", "discriminator_value": "textInput" }, { "type": "component_radioSelector", "discriminator_value": "radio" }, { "type": "component_checkbox", "discriminator_value": "checkbox" }, { "type": "component_dropdown", "discriminator_value": "select" }, { "type": "component_grading", "discriminator_value": "grading" }, { "type": "component_grading0to10", "discriminator_value": "grading0to10" }, { "type": "component_grading1to10", "discriminator_value": "grading1to10" } ] }, "feedback_union": { "description": "Represents the component or fields to be filled by the user ", "discriminator": "component", "types": [ { "type": "feedback_nps", "discriminator_value": "nps" }, { "type": "feedback_textArea", "discriminator_value": "textArea" }, { "type": "feedback_textInput", "discriminator_value": "textInput" }, { "type": "feedback_radioSelector", "discriminator_value": "radio" }, { "type": "feedback_checkbox", "discriminator_value": "checkbox" }, { "type": "feedback_dropdown", "discriminator_value": "select" }, { "type": "feedback_grading", "discriminator_value": "grading" }, { "type": "feedback_grading0to10", "discriminator_value": "grading0to10" }, { "type": "feedback_grading1to10", "discriminator_value": "grading1to10" } ] } }, "models": { "access_token_wrapper": { "description": "JWT Access Token to be used to access the APIe", "fields": [ { "name": "accessToken", "type": "string", "description": "JWT Access Token to be used to access the API" } ] }, "configuration": { "description": "Configuration main object, including forms", "fields": [ { "name": "propertyId", "type": "integer", "description": "Account id" }, { "name": "feedbackSubmitUrl", "type": "string", "description": "url" }, { "name": "forms", "type": "[form]", "description": "Definition and configuration of forms that were created in the command center" } ] }, "form": { "fields": [ { "name": "formId", "type": "integer", "description": "Form Identifier" }, { "name": "name", "type": "string", "description": "Form name" }, { "name": "title", "type": "string", "description": "Form title" }, { "name": "formType", "type": "formType", "description": "Form type" }, { "name": "inviteData", "type": "inviteData", "required": false, "description": "Invitation data" }, { "name": "triggerData", "type": "triggerData", "required": false, "description": "Invitation trigger conditions" }, { "name": "formJson", "type": "formJson", "description": "Wrapper around form data" } ] }, "inviteData": { "fields": [ { "name": "invitationHeadline", "type": "string", "description": "Invitation Headline" }, { "name": "invitationText", "type": "string", "description": "Invitation Text" }, { "name": "provideButtonText", "type": "string", "description": "Provide feedback button text" }, { "name": "declineButtonText", "type": "string", "description": "Decline provide feedback button text" }, { "name": "laterButtonText", "type": "string", "description": "Provide feedback later button text" } ] }, "triggerData": { "fields": [ { "name": "numberOfAppSession", "type": "numberOfAppSession", "required": false, "description": "Number of App Sessions to show the invite, with compare string" }, { "name": "timeInForeground", "type": "timeInForeground", "required": false, "description": "App Time in foreground in seconds to show the invite, with compare string" }, { "name": "mobileappVersion", "type": "[string]", "required": false, "description": "Mobile App Versions" }, { "name": "submitted", "type": "numberOfDays", "required": false, "description": "Don't invite a visitor who submitted feedback in the past x days" }, { "name": "declined", "type": "numberOfDays", "required": false, "description": "Don't invite a visitor who declined an invitation in the past x days" }, { "name": "mobileosVersion", "type": "[string]", "required": false, "description": "Mobile App Versions" }, { "name": "percentageOfSessions", "type": "percentageOfSessions", "required": false, "description": "Invite to this percentage of sessions" }, { "name": "genericRule", "type": "string", "required": false, "description": "Set of generic rules creates in the invitation settings" } ] }, "numberOfAppSession": { "fields": [ { "name": "number", "type": "string", "description": "Number of app sessions" }, { "name": "compareString", "type": "compareString", "description": "Compare String" } ] }, "timeInForeground": { "fields": [ { "name": "time", "type": "string", "description": "Time in Foreground, in seconds" }, { "name": "compareString", "type": "compareString", "description": "Compare String" } ] }, "numberOfDays": { "fields": [ { "name": "days", "type": "string", "description": "Don't invite a visitor who submitted feedback in the past x days" } ] }, "percentageOfSessions": { "fields": [ { "name": "prec", "type": "string", "description": "Don't invite a visitor who submitted feedback in the past x days" } ] }, "formJson": { "fields": [ { "name": "pages", "type": "[page]", "description": "Form Page" } ] }, "page": { "fields": [ { "name": "name", "type": "string", "description": "Page name" }, { "name": "index", "type": "integer", "required": false, "default": 0, "description": "Page index" }, { "name": "dynamicData", "type": "[component_union]" } ] }, "dynamicData": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "component", "type": "string", "description": "Component type" }, { "name": "unique_name", "type": "string", "description": "Component unique name" }, { "name": "placeholder", "type": "string", "description": "Component placeholder" }, { "name": "label", "type": "string", "description": "Component placeholder" }, { "name": "description", "type": "string", "required": false, "description": "Component description" }, { "name": "options", "type": "[string]", "required": false, "description": "Options available if required" }, { "name": "imageObject", "type": "image", "required": false, "description": "Image if required" } ] }, "component_image": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "imageObject", "type": "image", "description": "Image Object uploaded to Medallia, if it's a copy of a previous survey this field doesnt' show up", "required": false }, { "name": "uploadedResource", "type": "image", "description": "Image Object from a copied survey, it only shows when imageObject is not present", "required": false } ] }, "component_label": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "labelContent", "type": "string", "description": "Label Content", "required": false }, { "name": "num_of_lines", "type": "integer", "required": false, "default": 2, "description": "Label Number of Lines" } ] }, "component_nps": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component placeholder" }, { "name": "description", "type": "string", "required": false, "description": "Component description" }, { "name": "ratingViewType", "type": "ratingViewType", "default": "slide", "required": false, "description": "Rating View Type" } ] }, "component_textArea": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "placeholder", "type": "string", "description": "Component placeholder" }, { "name": "label", "type": "string", "description": "Component placeholder" }, { "name": "num_of_lines", "type": "integer", "required": false, "default": 2, "description": "Number of lines, string parameter though (-‸ლ) " }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_textInput": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "placeholder", "type": "string", "description": "Component placeholder" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "max_chars", "type": "integer", "required": false, "default": 200, "description": "Maximum number of characters" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_dropdown": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "placeholder", "type": "string", "description": "Component placeholder" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "options", "type": "[string]", "description": "Maximum number of characters" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_radioSelector": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "options", "type": "[string]", "description": "Maximum number of characters" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_checkbox": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "options", "type": "[string]", "description": "Maximum number of characters" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_grading": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "ratingViewType", "type": "ratingViewType", "required": false, "default": "gradingSlider", "description": "Rating View Type" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_grading0to10": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "ratingViewType", "type": "ratingViewType", "required": false, "default": "gradingSlider", "description": "Rating View Type" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "component_grading1to10": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "required", "type": "boolean", "description": "Component required" }, { "name": "label", "type": "string", "description": "Component label" }, { "name": "ratingViewType", "type": "ratingViewType", "required": false, "default": "gradingSlider", "description": "Rating View Type" }, { "name": "description", "type": "string", "required": false, "description": "Component description" } ] }, "image": { "fields": [ { "name": "name", "type": "string", "description": "Image Name" }, { "name": "url", "type": "string", "description": "Image Url" } ] }, "feedback": { "description": "Feedback main object with survey's results", "fields": [ { "name": "formId", "type": "integer", "description": "The submitted form id (from the configuration)." }, { "name": "dynamicData", "type": "feedback_data", "description": "Survey Feedback Data" } ] }, "feedback_data": { "description": "Object that will hold the form pages and custom parameters.", "fields": [ { "name": "customParams", "required": false, "type": "json", "description": "List of survey's pages results" }, { "name": "pages", "type": "[feedback_page]", "description": "List of survey's pages results" } ] }, "feedback_page": { "description": "Object that will hold the form page", "fields": [ { "name": "components", "type": "[feedback_union]", "description": "List of survey's pages results" } ] }, "feedback_nps": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "NPS selected value" }, { "name": "type", "type": "string", "default": "nps", "description": "Component feedback type" } ] }, "feedback_textArea": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "string", "description": "Text Area Content" }, { "name": "type", "type": "string", "default": "textArea", "description": "Component feedback type" } ] }, "feedback_textInput": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "string", "description": "Text Area Content" }, { "name": "type", "type": "string", "default": "textInput", "description": "Component feedback type" } ] }, "feedback_dropdown": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "Dropdown selected value" }, { "name": "type", "type": "string", "default": "select", "description": "Component feedback type" } ] }, "feedback_radioSelector": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "Radio Selected Value" }, { "name": "type", "type": "string", "default": "radio", "description": "Component feedback type" } ] }, "feedback_checkbox": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "[integer]", "description": "Checkbox selected value" }, { "name": "type", "type": "string", "default": "checkbox", "description": "Component feedback type" } ] }, "feedback_grading": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "Grading selected value" }, { "name": "type", "type": "string", "default": "grading", "description": "Component feedback type" } ] }, "feedback_grading0to10": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "Grading selected value" }, { "name": "type", "type": "string", "default": "grading0to10", "description": "Component feedback type" } ] }, "feedback_grading1to10": { "fields": [ { "name": "index", "type": "integer", "description": "Component index" }, { "name": "id", "type": "integer", "description": "Component id" }, { "name": "unique_name", "type": "string", "description": "Unique name" }, { "name": "value", "type": "integer", "description": "Grading selected value" }, { "name": "type", "type": "string", "default": "grading1to10", "description": "Component feedback type" } ] } }, "resources": { "access_token_wrapper": { "path": "", "operations": [{ "method": "POST", "path": "/accessToken", "description": "This API is used to retrieve the temporary access token that allows your app to access all other APIs", "responses": { "200": { "type": "access_token_wrapper", "description": "Access Token to access Medallia API" }, "401": { "type": "unit", "description": "Unauthorized request"}, "500": { "type": "unit", "description": "All other errors." } } }] }, "configuration" : { "path": "", "operations": [{ "method": "GET", "path": "/configuration", "description": "This API returns the full configuration as defined in the Medallia Digital command center. It returns the list of surveys, their content and business logic as well as targeting and segmentation rules.", "responses": { "200": { "type": "configuration", "description": "Configuration and forms" }, "400": { "type": "unit", "description": "The body or any of the parameters are invalid/malformed." }, "401": { "type": "unit", "description": "Unauthorized request"}, "500": { "type": "unit", "description": "All other errors." } } }] }, "feedback" : { "path": "", "operations": [{ "method": "POST", "path": "/feedback", "description": "This API allows the application to submit feedback collected in the app to the Medallia Digital", "body": { "type": "feedback" }, "responses": { "200": { "type": "unit" }, "400": { "type": "unit", "description": "The body or any of the parameters are invalid/malformed." }, "401": { "type": "unit", "description": "Unauthorized request"}, "500": { "type": "unit", "description": "All other errors." } } }] } } }