Why use the Savio API?
You can use the Savio API to:
- Send feedback to Savio programmatically.
- Connect Savio with integration services like Zapier.
- Sync customer data from system Savio doesn't integrate with so you can easily assign and filter feedback.
Authentication
The Savio API uses token based authentication. You can find your API token on your My Settings page.
When using the API as a webhook target in Zapier or similar service you need to include your API Token as an HTTP header:
HTTP Header | Value |
---|---|
Authorization |
Token YOUR_TOKEN_VALUE |
Note that the value of the Authorization
header must include the word Token
followed by a space and then your API token.
API Reference
Feedback
Feedback can be created.
Create Feedback
Feedback can be created via a POST
to https://www.savio.io/app/api/create-feedback/
.
HTTP Response Codes
Result | Response Code | Value |
---|---|---|
Success | 201 | {"id": id_of_new_feedback} |
Failed to authenticate | 401 | |
Failed to create feedback | 400 |
Parameters
Parameter | Required | Description |
---|---|---|
problem | Yes | The text describing the problem the user is having. |
feedback_type | No |
The type of customer that provided the feedback. Valid values are:
|
state | No Defaults to ACTIVE |
The triage state of this piece of feedback. Valid values are:
|
source_url | No | An optional URL that links back to the original source of the feedback. |
source_username | No | An optional name of the user who added the feedback piece. |
person_email | No | The email address of the person the feedback came from. If there is an existing person with that email address the feedback will be linked to that person. If there isn't an existing person with that email address a new person will be created. |
person_name | No | The full name of the person the feedback came from. If there isn't a person with that a new person will be created. |
company_name | No | The name of the company the person is associated with. If there is an existing company with that name the person will be linked to that company. If there isn't an existing company with that name a new company will be created. If person_name or person_email isn't included company_name will be ignored. |
feature_request_title | No | The title of the feature request to link the new piece of feedback to. If a feature request with that title already exists the existing feature request will be used. Otherwise a new feature request will be created. |
tags | No | A list of strings that are the titles of the tags you link to the new piece of feedback. If the tags don't exist they will be created. |
Example
curl https://www.savio.io/app/api/create-feedback/ \ -X POST \ -H 'Authorization:Token REPLACE_WITH_YOUR_API_TOKEN' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' -d ' { "problem": "You need a Zapier integration so I can wire up Google Forms.", "feedback_type": "ACTIVE", "person_email": "bob@example.com", "state": "ACTIVE", "feature_request_title": "Feedback API", "tags": ["red", "green"] }'
Users
Users can be listed, created and updated.
User model
Attribute | Type | Description |
---|---|---|
id | integer | The unique identifier for the User which is given by Savio. |
string | The User's email. | |
name | string | The User's name. |
company | integer | The unique identifier for the associated Company which is given by Savio. |
company_name | string | The name of the associated company. |
filterable_attributes | Object | The user supplied attributes which are set for this User. |
created | String | The date the User was created in Savio. |
updated | String | The date the User was created in Savio |
List Users
You can get a paged list of Users (People) by issuing a GET
to https://www.savio.io/app/api/users/
.
Response
Returns a paginated list of User Objects.
Attribute | Type | Description |
---|---|---|
count | integer | The total number of results available. |
next | url | A url to the next page or results or null. |
previous | url | A url to the previous page of results or null. |
results | list | A list of User objects. |
HTTP Response Codes
Result | Response Code | Value |
---|---|---|
Success | 201 | |
Failed to authenticate | 401 |
Parameters
Parameter | Required | Description |
---|---|---|
search | No | Filters list of Users by email or name |
ordering | No |
Order the results by the specified field. Prefix the field name with `-` to sort descending.
Allowed values are:
|
Example
curl 'https://www.savio.io/app/api/users/?search=example.com&ordering=-updated' \ -X GET \ -H 'Authorization:Token REPLACE_WITH_YOUR_API_TOKEN' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Upsert User
You can create or update a User (Person) by issuing a POST
to https://www.savio.io/app/api/users/
.
If a user with that email address or internal_id already exists in Savio the user will be updated.
Response
Returns the newly created User.
Attribute | Type | Required | Description |
---|---|---|---|
string | No | The User's email. | |
internal_id | string | Yes | The id for the User in your system. |
name | string | Yes | The User's full name. |
company | integer | No | The id of the Company assocated with this user in Savio. |
company_internal_id | string | No | The id of the Company associated with this user in your system. |
filterable_attributes | object | No | The user supplied attributes which are set for this User. |
HTTP Response Codes
Result | Response Code | Value |
---|---|---|
Success | 201 | |
Failed to authenticate | 401 |
Example
curl https://www.savio.io/app/api/users/ \ -X POST \ -H 'Authorization:Token REPLACE_WITH_YOUR_API_TOKEN' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' -d ' { "name": "New User", "email": "new.user@example.com", "internal_id": "1234567", "company_internal_id": "6", "filterable_attributes": { "region": "na" } }'
Companies
Companies can be listed, created and updated.
Company model
Attribute | Type | Description |
---|---|---|
id | integer | The unique identifier for the Company which is given by Savio. |
name | string | The Company's name. |
internal_id | string | The id of the Company in your system. |
filterable_attributes | Object | The user supplied attributes which are set for this Company. |
created | String | The date the Company was created in Savio. |
updated | String | The date the Company was created in Savio |
List Companies
You can get a paged list of Companies by issuing a GET
to https://www.savio.io/app/api/companies/
.
Response
Returns a paginated list of Company Objects.
Attribute | Type | Description |
---|---|---|
count | integer | The total number of results available. |
next | url | A url to the next page or results or null. |
previous | url | A url to the previous page of results or null. |
results | list | A list of Company objects. |
HTTP Response Codes
Result | Response Code | Value |
---|---|---|
Success | 201 | |
Failed to authenticate | 401 |
Parameters
Parameter | Required | Description |
---|---|---|
search | No | Filters list of Companies by name |
ordering | No |
Order the results by the specified field. Prefix the field name with `-` to sort descending.
Allowed values are:
|
Example
curl 'https://www.savio.io/app/api/companies/?search=acme&ordering=-updated' \ -X GET \ -H 'Authorization:Token REPLACE_WITH_YOUR_API_TOKEN' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Upsert Company
You can create or update a Company by issuing a POST
to https://www.savio.io/app/api/companies/
.
If a company with that internal_id already exists in Savio the Company will be updated.
Response
Returns the newly created Company.
Attribute | Type | Required | Description |
---|---|---|---|
name | string | Yes | The Company's name. |
internal_id | string | Yes | The id for the Compnay in your system. |
filterable_attributes | object | No | The user supplied attributes which are set for this Company. |
HTTP Response Codes
Result | Response Code | Value |
---|---|---|
Success | 201 | |
Failed to authenticate | 401 |
Example
curl https://www.savio.io/app/api/companies/ \ -X POST \ -H 'Authorization:Token REPLACE_WITH_YOUR_API_TOKEN' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' -d ' { "name": "Acme Corp", "internal_id": "1234567", "filterable_attributes": { "region": "na" } }'