openapi: 3.1.0 info: title: HappyOrNot Customer API v2 alert-comments experience-points API description: "### HappyOrNot Customer API v2 is designed for\n* fetching feedbacks of all type (button, followups, text, demographics, contact details)\n* fetching information about experience points, surveys and other\n metadata related to fetching and displaying feedback\n* fetching information about users of HappyOrNot Analytics\n* fetching information about smileys, that is the physical devices or digital tokens for feedback gathering\n\n### Useful links:\n* [HappyOrNot website](https://www.happy-or-not.com)\n* [HappyOrNot Analytics](https://reporting.happy-or-not.com)\n\n### Base URL for API calls:\nhttps://api.happy-or-not.com/v2/
\nExample:
\nhttps://api.happy-or-not.com/v2/experience-points.json\n\n### Entities explained\n**Experience point** = Represents a point of interaction for feedback gathering.
\nCan represent a physical location, e.g. \"London Store 1\" or a digital location, e.g. \"Webshop checkout\".
\n**Group** = Represents a grouping of experience points. Grouping can be e.g. geographical or organizational.
\nExamples are countries, cities or organization functions.
\nGroups and Experience points form a hierarchical tree structure, see example below.
\n**Survey** = Time-bounded surveys that contain a question and are associated with one or more experience points.
\n**Question** = Localizable questions are associated to surveys, e.g. \"How was the service?\"
\n**Smiley** = Physical or digital \"device\" that collect feedback. Smiley is associated with an experience point.
\nTypes of smileys are Smiley Terminal, Smiley Touch and Smiley Digital.
\n**User** = User account of HappyOrNot Analytics, identified by email address and name. Has an associated role and data access.
\n
\n**Example for group / experience point hierarchy:**
\n
\n* Company X <- this is root group and parent of Finland and Sweden\n  * Finland  <- this group is parent for Helsinki and Tampere store experience points\n    * Helsinki store <- this is an experience point\n    * Tampere store <- this is an experience point\n  * Sweden <- this group is parent for Stockholm and Malmö store experience points\n    * Stockholm store <- this is an experience point\n    * Malmö store <- this is an experience point\n
\n### Feedback types explained\n**Button Feedback** = The feedback type that is always present in surveys.
\nVisually represented as 4 or 5 smiley faces or NPS scale (0..10).
\n**Followup Feedback** = Predefined set of selectable textual values (max 6) to explain the button feedback given.
\n**Text Feedback** = Freeform text feedback. Available in Smileys that support keyboard input.
\n**Demographics** = AI based estimate on feedback giver's age and gender. Supported by Smiley Touch only.
\n**Contact Details** = If a feedback giver wants to get contacted, name and email or phone number can be given.
\n**Metadata** = Arbitrary set of key-value pairs related to this particular feedback.\n\n### Entity Relationships Diagrams\n\"Entity\n\"Entity\n\n### Authentication/Authorisation\nAuthentication and authorisation is based on a *token*.\nYou can generate API v2 tokens in your *Organization Settings* page at HappyOrNot Analytics (you need to have Admin privileges to access that page).\nYou should provide a token with a request in one of the two ways:
\n* Request Header *X-HON-API-Token*. E.g. X-HON-API-Token: your-token-here (Suggested way)\n* Query string parameter *auth*. E.g. /v2/experience-points.json?auth=your-token-here (Ok for testing)
\n\n#### Token introspection\nFor a valid authenticated token it is possible to requests metadata, including token id, name and scopes.\n\n### Paging:\nPaging of responses is controlled using *offset* and *limit* parameters.
\nHTTP response header *X-More-Available* (value \"true\" or \"false\") can be used to determine if more data is available.
\nExample:
\nhttps://api.happy-or-not.com/v2/alerts.json?offset=0&limit=500
\n
\nHTTP response header *Link* is provided (if above described X-More-Available: true) and it includes the link to next page of results.
\nExample:
\nLink: ; rel=\"next\"
\n\n### Terms mapping between API v1 and API v2\n
\nAPI v1\t\t\tAPI v2\n-----------------------------------------------------------------------\nN/A\t\t\tToken Introspection\nResults/Rawresults\tButton Feedbacks\nResults/Rawresults\tFollow-up Feedbacks\nResults/Rawresults\tText Feedbacks\nN/A\t\t\tDemographics\nN/A\t\t\tContact Details\nN/A                     Metadata\nFolders/Children\tGroups and Experience Points\nSurveys\t\t\tNo direct mapping available, but v1 surveys are mappings of v2 Experience Points to v2 Surveys\nQuestions\t\tSurveys\nN/A \t\t\tQuestion\nN/A\t\t\tFollow-up questions\nN/A\t\t\tFollow-up options\nAlerts\t\t\tAlerts\nN/A\t\t\tAlert Specifications\nN/A\t\t\tAlert Comments\nN/A\t\t\tUsers\nN/A\t\t\tSmileys\nN/A\t\t\tCustom Data Fields\nN/A\t\t\tAll localizations\n
\n
\n\n### Need help?\nPlease email support@happy-or-not.com to get more assistance.\n" termsOfService: https://www.happy-or-not.com/terms/ contact: email: api@happy-or-not.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: '2.0' servers: - url: https://api.happy-or-not.com/v2 security: - ApiTokenAuth: [] - ApiTokenViaQueryStringAuth: [] tags: - name: experience-points description: Experience points and groups related endpoints and data definitions paths: /experience-points.{format}: get: tags: - experience-points summary: List experience points and groups description: Tree of groups and experience points in tabular format operationId: listExperiencePoints parameters: - $ref: '#/components/parameters/formatParam' - $ref: '#/components/parameters/csvSeparatorParam' - name: rootExperiencePointId in: query description: Root exp. point id, if omitted, all authorised groups and exp.points are returned required: false schema: type: integer format: int64 - name: type in: query description: Only items of given type are returned, if omitted, all authorised groups and exp.points are returned required: false schema: type: string enum: - GROUP - EXPERIENCE_POINT responses: '200': description: successful experience point listing content: application/json: schema: type: array items: $ref: '#/components/schemas/ExperiencePoint' text/csv: schema: type: string description: CSV file with columns matching ExperiencePoint object properties '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '403': $ref: '#/components/responses/ForbiddenResponse' components: responses: BadRequestResponse: description: Bad request, possibly invalid or missing parameter values. UnauthorizedResponse: description: Not authenticated, missing or invalid API credentials. ForbiddenResponse: description: Not authorised to access the resources given in parameters with the given authentication. schemas: ExperiencePoint: type: object properties: experiencePointId: type: integer name: type: string parent: type: integer type: type: string enum: - GROUP - EXPERIENCE-POINT required: - experiencePointId - name - type parameters: formatParam: name: format in: path required: true schema: type: string enum: - json - csv csvSeparatorParam: name: csvSeparator in: query required: false schema: type: string minLength: 1 maxLength: 1 default: ',' description: Applied only for CSV responses securitySchemes: ApiTokenAuth: type: apiKey in: header name: X-HON-API-Token description: API Tokens are managed in Organization Settings page in Analytics ApiTokenViaQueryStringAuth: type: apiKey in: query name: auth description: E.g. /some/path?auth= externalDocs: description: More about HappyOrNot APIs url: https://happyornot.github.io/docs/api/