Feedback Capture API documentation
Basics
This is the API for capturing user feedback and saving it in Doorbell (if you're planning on writing your own widget).
The base URL for the API is: https://doorbell.io/api
All requests should be POST requests.
Please provide a useful User-Agent
header with each request!
Authentication
Doorbell has an application ID and a secret key that need to be used when making API calls. The ID constructs part of the URL in each call (/applications/{id}/{action}
), and the key should always be passed as a query string parameter, using the name key
. (e.g. https://doorbell.io/api/applications/1/open?key=key-goes-here
)
To obtain an application ID/key, you need to register here on Doorbell, create an application, go to the setup page, and copy the ID/Key from the API tab.
Endpoints
POST
/applications/{id}/open
Open
Request sent when the form is displayed to the user.
Query string parameters
Name | Description |
---|---|
key |
The application key |
Responses
HTTP Code | Content Type | Response Body |
---|---|---|
201 |
plain/text |
OK |
403 |
plain/text |
Not authorized |
404 |
plain/text |
Invalid application |
POST
/applications/{id}/submit
Submit
Request sent when the form is submitted.
Query string parameters
Name | Description |
---|---|
key |
The application key |
Request Body
Content-Type: application/json
Name | Required | Description | Example |
---|---|---|---|
email |
The email address of the user sending feedback | hello@example.com | |
message |
The feedback message the user has entered | Hello! Loving this app! | |
name |
The name of the user who is sending feedback | John Doe | |
ip |
The IP address of the end user, so your server's IP address isn't the one saved | 3.144.96.92 | |
sentiment |
The sentiment of the message, if you don't want this analyzed automatically. The possible values are positive , neutral , or negative |
positive | |
url |
The URL of the page where feedback is submitted from (if applicable) | https://example.com/some/page | |
tags |
JSON encoded array of strings, or a comma separated string of tags you want to add to the feedback | ["bug-reports","second-tag"] | |
properties |
JSON encoded string of properties (of any data type), any extra metadata you want to attach to the message | {"user_id":56988,"username":"shakira"} | |
attachments |
Array of attachment IDs (get these from uploading to the upload endpoint |
[845,440,876] | |
nps |
The NPS rating the user submitted alongside the message | 10 | |
language |
The language the site/app is using. The response messages will be in the corresponding language, if translated |
|
Responses
HTTP Code | Content Type | Response Body |
---|---|---|
201 |
plain/text |
Feedback sent! |
400 |
plain/text |
Your email address is required |
400 |
plain/text |
Invalid email address |
400 |
plain/text |
Your message is required |
400 |
plain/text |
Your message is too short |
403 |
plain/text |
Not authorized |
404 |
plain/text |
Application not found |
POST
/applications/{id}/upload
Upload
Request sent when uploading an attachment (for the subsequent submit request).
The endpoint (on success) will return a JSON array of IDs. These IDs need to be supplied to the submit
request afterwards.
Query string parameters
Name | Description |
---|---|
key |
The application key |
POST Parameters
- Multipart form request, including any number of files
Responses
HTTP Code | Content Type | Response Body |
---|---|---|
201 |
application/json |
A JSON array containing the attachment IDs of the files uploaded |
400 |
plain/text |
Uploads not enabled |
400 |
plain/text |
No files found (this could mean an error in how the files are sent) |
403 |
plain/text |
Not authorized |
404 |
plain/text |
Invalid application |
POST
/applications/{id}/event
Track an event
Request sent to track an event, which can in turn trigger a prompt to show the form (if the defined conditions are met).
The endpoint (on success) will return a JSON object with the event_id
and the action
to be taken (for example, show the form). These event ID can be supplied to the submit
request afterwards.
Query string parameters
Name | Description |
---|---|
key |
The application key |
Request Body
Content-Type: application/json
Name | Required | Description | Example |
---|---|---|---|
external_user_id |
A unique identifier for this user. Could be an email address, or any other unique identifier from your system. | hello@example.com or 523dacbd-295d-42a4-81f2-ca6d4906e0af |
|
name |
The name of the event we are tracking | logged_in or added_item_to_basket |
|
attributes |
JSON object, any extra metadata you want to attach to the message (key-value pairs) | {"country_code":"GB","item_value":"23.8"} |
Responses
HTTP Code | Content Type | Response Body |
---|---|---|
201 |
application/json |
A JSON object with the event_id and the action |
400 |
plain/text |
Missing event name |
400 |
plain/text |
Missing external user ID |
403 |
plain/text |
Not authorized |
404 |
plain/text |
Invalid application |