Pisano can collect feedback integrated into the email services used by companies, along with the adapter infrastructure it provides.
The following steps should be followed for sending surveys via email:
- The email service provider can be configured by using interactive video
- Defining the email channel, connecting it to the relevant flow, and selecting the service provider to be used.
- Triggering the email survey
-
Manual triggering by uploading a CSV file: Preferred for bulk survey sending. Used when survey sending is not frequent on a daily basis. Since surveys will be triggered manually, preparation by the business unit is required.
-
Triggering the email survey via workflow: Preferred if bulk survey sending is desired to be done automatically at scheduled times.
-
Triggering the survey via API (Email Sharing) (on this page): Preferred for automatically triggering transaction-based surveys. Surveys can be sent immediately after the customer completes a transaction. The system sending the request decides when the API will be triggered. Once the API is triggered, email sending is facilitated
-
Triggering the survey via API (Email Sharing)
Endpoint Details
POST https://<pisanoURL>/v1/email_campaigns/:campaign_id/email_sharings/
*** The pisanoURL information will be shared with you by Pisano.
Parameters
| Parameter | Value |
| campaign_id | Campaign ID to be sent via email |
| emails | Array of email addresses |
| custom_attributes | "Customer-specific information fields and values. JSON Object" |
| built_in_responses | Feedback-based information to be embedded in the link. JSON Object |
Headers (HTTP Header)
| Header | Value |
| Content-Type | application/json |
|
Authorization |
Token token= <API TOKEN> |
Sample cURL Request
curl --location 'https://<pisanoEnvironment>/v1/email_campaigns/<campaignID>/email_sharings' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data '{
"emails": [
"<email1>",
"<email2>"
],
"custom_attributes": {
"<email1>": {
"name": "<name1>",
"external_id": "<external_id1>",
"phone_number": "<phone_number1>"
},
"<email2>": {
"name": "<name2>",
"external_id": "<external_id2>",
"phone_number": "<phone_number2>"
}
},
"transactional_data": {
"<email1>": {
"Segment": "<Segment1>",
"Location": "<Location1>",
"TransactionDate": "<TransactionDate1>"
},
"<email2>": {
"Segment": "<Segment2>",
"Location": "<Location2>",
"TransactionDate": "<TransactionDate2>"
}
}
}'
# - 20 requests in 5 seconds
# - 40 requests in 25 seconds
# - 80 requests in 125 seconds (~2 min)
# - 160 requests in 625 seconds (~10 min)
It is recommended as a best practice to trigger a maximum of 5000 customers in a single request.
Throttle limits for Email & SMS & Link can be increased or completely removed in on-premises installations. Throttle rules can be configured based on IP in on-premises installations
Obtaining API ID (campaign_id)
- Go to Channels > Email Channels, and click on the 'Edit Campaign' button.
-1.png?width=688&height=34&name=image%20(3)-1.png)
- The API ID determining which campaign to send is obtained from this screen in API usage. Example API ID: 735c19a7-ee54-4b03-a84a-93dfe2a94a56
-2.png?width=522&height=566&name=image%20(2)-2.png)
- In the opened screen, the service provider should be selected. If the subject of the email will not be managed by the Email service provider, it should be entered under the 'Subject' heading.
Obtaining a TOKEN
For all API usages in Pisano, you must obtain a TOKEN
API Response Codes
|
Response Status Code
|
Status
|
Status Code
|
Message
|
|
200 |
OK (Successful) |
|
|
|
400 |
bad_request |
13000 |
An error occured |
|
401 |
unauthorized |
13001 |
Wrong authentication token |
|
404 |
NOT_FOUND |
13002 |
Requested resource not found! |
|
404 |
not_found |
13003 |
Reset Token not found |
|
404 |
not_found |
13005 |
This node, nor any of their parent has any flow |
|
403 |
forbidden |
13007 |
It's not allowed to update Pisano node |
|
400 |
bad_request |
13008 |
Record could not be deleted |
|
400 |
bad_request |
13009 |
Updated question already has responses |
|
404 |
not_found |
13010 |
User not found |
|
401 |
unauthorized |
13011 |
User is inactive |
|
409 |
conflict |
13012 |
Password does not match the old password |
|
403 |
forbidden |
13013 |
Permission denied |
|
400 |
bad_request |
13014 |
Wrong activation code |
|
400 |
bad_request |
13015 |
Required field not present in params! |
|
404 |
not_found |
13016 |
Token not found |
|
400 |
bad_request |
13017 |
Duplicate value |
|
404 |
not_found |
13018 |
Response not found |
|
404 |
not_found |
13019 |
Activation token not found |
|
400 |
bad_request |
13020 |
You selected a reserved node type. Please choose another one. |
|
400 |
bad_request |
13024 |
Multiple responses given for a non-multiple choice question |
|
400 |
bad_request |
13026 |
Captcha is invalid |
|
400 |
bad_request |
13028 |
Invalid parameters |
|
400 |
bad_request |
13029 |
Invalid security hash |
|
400 |
bad_request |
13030 |
Invalid authentication token |
|
400 |
bad_request |
13031 |
Invalid proxy server parameters |
|
409 |
conflict |
13032 |
Wrong credentials |
|
400 |
bad_request |
13033 |
Invalid SDK credentials |
|
400 |
bad_request |
13034 |
Invalid Flow |
|
404 |
not_found |
13035 |
Node not found |
|
403 |
forbidden |
13036 |
Account locked |
|
400 |
bad_request |
13037 |
Malformatted CSV |
|
400 |
bad_request |
13038 |
Required customer identitiy keys not present in params! |