curl --request POST \
--url https://api.partoo.co/v2/feedback/email-templates \
--header 'Content-Type: application/json' \
--header 'x-APIKey: <api-key>' \
--data @- <<EOF
{
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}
EOFimport requests
url = "https://api.partoo.co/v2/feedback/email-templates"
payload = {
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}
headers = {
"x-APIKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-APIKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Default Template',
subject: 'We\'d love your feedback',
title: 'How did we do?',
body: JSON.stringify('Thank you for visiting us. Please take a moment to share your experience.'),
cta_type: 'BUTTON',
color: '#3B82F6',
font_family: 'Arial',
cta_text: 'Leave a review',
post_cta_text: 'Your feedback helps us improve.',
closing_text: 'Thank you for your time!',
signature_name: 'The Partoo Team',
logo_url: 'https://example.com/logo.png',
banner_url: 'https://example.com/banner.png'
})
};
fetch('https://api.partoo.co/v2/feedback/email-templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.partoo.co/v2/feedback/email-templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Default Template',
'subject' => 'We\'d love your feedback',
'title' => 'How did we do?',
'body' => 'Thank you for visiting us. Please take a moment to share your experience.',
'cta_type' => 'BUTTON',
'color' => '#3B82F6',
'font_family' => 'Arial',
'cta_text' => 'Leave a review',
'post_cta_text' => 'Your feedback helps us improve.',
'closing_text' => 'Thank you for your time!',
'signature_name' => 'The Partoo Team',
'logo_url' => 'https://example.com/logo.png',
'banner_url' => 'https://example.com/banner.png'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-APIKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.partoo.co/v2/feedback/email-templates"
payload := strings.NewReader("{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-APIKey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.partoo.co/v2/feedback/email-templates")
.header("x-APIKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.partoo.co/v2/feedback/email-templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-APIKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}"
response = http.request(request)
puts response.read_body{
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"id": 1,
"org_id": 42,
"created_at": "2024-01-15T10:30:00+00:00",
"updated_at": "2024-06-01T08:00:00+00:00",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}{
"errors": {
"authentication": "User not authenticated"
}
}{
"errors": {
"authorization": "Operation not allowed"
}
}{
"detail": [
{
"loc": [
"<unknown>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create an email template
The Feedback Management API is currently in BETA, therefore the following endpoints are subject to modification, given a 2 week notice.
If you are planning to use any of them, please notify us so we will be able to keep you informed about upcoming changes.
Creates a new feedback email template for the authenticated user’s organization.
When cta_type is BUTTON, the cta_text field is required.
curl --request POST \
--url https://api.partoo.co/v2/feedback/email-templates \
--header 'Content-Type: application/json' \
--header 'x-APIKey: <api-key>' \
--data @- <<EOF
{
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}
EOFimport requests
url = "https://api.partoo.co/v2/feedback/email-templates"
payload = {
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}
headers = {
"x-APIKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-APIKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Default Template',
subject: 'We\'d love your feedback',
title: 'How did we do?',
body: JSON.stringify('Thank you for visiting us. Please take a moment to share your experience.'),
cta_type: 'BUTTON',
color: '#3B82F6',
font_family: 'Arial',
cta_text: 'Leave a review',
post_cta_text: 'Your feedback helps us improve.',
closing_text: 'Thank you for your time!',
signature_name: 'The Partoo Team',
logo_url: 'https://example.com/logo.png',
banner_url: 'https://example.com/banner.png'
})
};
fetch('https://api.partoo.co/v2/feedback/email-templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.partoo.co/v2/feedback/email-templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Default Template',
'subject' => 'We\'d love your feedback',
'title' => 'How did we do?',
'body' => 'Thank you for visiting us. Please take a moment to share your experience.',
'cta_type' => 'BUTTON',
'color' => '#3B82F6',
'font_family' => 'Arial',
'cta_text' => 'Leave a review',
'post_cta_text' => 'Your feedback helps us improve.',
'closing_text' => 'Thank you for your time!',
'signature_name' => 'The Partoo Team',
'logo_url' => 'https://example.com/logo.png',
'banner_url' => 'https://example.com/banner.png'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-APIKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.partoo.co/v2/feedback/email-templates"
payload := strings.NewReader("{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-APIKey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.partoo.co/v2/feedback/email-templates")
.header("x-APIKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.partoo.co/v2/feedback/email-templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-APIKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default Template\",\n \"subject\": \"We'd love your feedback\",\n \"title\": \"How did we do?\",\n \"body\": \"Thank you for visiting us. Please take a moment to share your experience.\",\n \"cta_type\": \"BUTTON\",\n \"color\": \"#3B82F6\",\n \"font_family\": \"Arial\",\n \"cta_text\": \"Leave a review\",\n \"post_cta_text\": \"Your feedback helps us improve.\",\n \"closing_text\": \"Thank you for your time!\",\n \"signature_name\": \"The Partoo Team\",\n \"logo_url\": \"https://example.com/logo.png\",\n \"banner_url\": \"https://example.com/banner.png\"\n}"
response = http.request(request)
puts response.read_body{
"name": "Default Template",
"subject": "We'd love your feedback",
"title": "How did we do?",
"body": "Thank you for visiting us. Please take a moment to share your experience.",
"cta_type": "BUTTON",
"color": "#3B82F6",
"font_family": "Arial",
"id": 1,
"org_id": 42,
"created_at": "2024-01-15T10:30:00+00:00",
"updated_at": "2024-06-01T08:00:00+00:00",
"cta_text": "Leave a review",
"post_cta_text": "Your feedback helps us improve.",
"closing_text": "Thank you for your time!",
"signature_name": "The Partoo Team",
"logo_url": "https://example.com/logo.png",
"banner_url": "https://example.com/banner.png"
}{
"errors": {
"authentication": "User not authenticated"
}
}{
"errors": {
"authorization": "Operation not allowed"
}
}{
"detail": [
{
"loc": [
"<unknown>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
The authentication system on Partoo API is using API Key that should be put in the header of the request (the name of the header is x-APIKey). An api_key is linked to a user. This user's role will give you different access level to the API features.
Body
Internal name for the template
"Default Template"
Email subject line
"We'd love your feedback"
Title displayed in the email body
"How did we do?"
Main body text of the email
"Thank you for visiting us. Please take a moment to share your experience."
Type of call-to-action rendered in the email.
BUTTON: a clickable button;cta_textmust be non-null.EMBEDDED_NPS: an NPS score row embedded in the email.
BUTTON, EMBEDDED_NPS "BUTTON"
Primary accent color for the email template (hex code)
"#3B82F6"
Font family used in the email
Arial, Helvetica, Verdana, Georgia, Trebuchet "Arial"
Call-to-action label. Required when cta_type is BUTTON.
"Leave a review"
Text displayed below the call-to-action
"Your feedback helps us improve."
Closing paragraph of the email
"Thank you for your time!"
Name displayed in the email signature
"The Partoo Team"
URL of the organization logo displayed in the email header
"https://example.com/logo.png"
URL of the banner image displayed in the email
"https://example.com/banner.png"
Response
Created
Internal name for the template
"Default Template"
Email subject line
"We'd love your feedback"
Title displayed in the email body
"How did we do?"
Main body text of the email
"Thank you for visiting us. Please take a moment to share your experience."
Type of call-to-action rendered in the email.
BUTTON: a clickable button;cta_textmust be non-null.EMBEDDED_NPS: an NPS score row embedded in the email.
BUTTON, EMBEDDED_NPS "BUTTON"
Primary accent color for the email template (hex code)
"#3B82F6"
Font family used in the email
Arial, Helvetica, Verdana, Georgia, Trebuchet "Arial"
Unique identifier of the email template
1
The organization ID that owns this template
42
Date and time the template was created
"2024-01-15T10:30:00+00:00"
Date and time the template was last updated
"2024-06-01T08:00:00+00:00"
Call-to-action label. Required when cta_type is BUTTON.
"Leave a review"
Text displayed below the call-to-action
"Your feedback helps us improve."
Closing paragraph of the email
"Thank you for your time!"
Name displayed in the email signature
"The Partoo Team"
URL of the organization logo displayed in the email header
"https://example.com/logo.png"
URL of the banner image displayed in the email
"https://example.com/banner.png"
Was this page helpful?