Customers
The Cleverbridge GraphQL API is a powerful resource you can use in different ways. Following is a list of common scenarios and code examples to help you integrate and utilize the API.
Delete Personal Data of a Customer
A customer asks Shieldware to delete their personal data. Shieldware uses the deletePersonalCustomerData(purchaseId: Int!)
mutation to delete the customer data related to a given purchase.
The following examples show a customer data query before anonymizing the data, the mutation deleting the personal data, and the mutation result. After the mutation, personal data is replaced by XXX
and the customer's email address is changed to [email protected]
. Only the country data and all the "null" values stay unchanged.
Note
Before you delete a customer's data, deactivate all the active subscriptions of the customer.
Compare the responses before and after the mutation to understand how the personal data of the customer is anonymized.
Example Request - Query Customer Data Related to a Purchase
query FindPurchase {
purchase(id: 356018965) {
customer {
id
}
customerCountry {
id
}
billingContact {
id
company
firstName
lastName
email
addressLine1
addressLine2
postalCode
city
country {
id
name
}
state {
id
name
country {
id
name
}
}
}
}
}
The API call returns the purchase object with the values you requested.
Example Response - Customer Data Related to a Purchase
{
"data": {
"purchase": {
"customer": {
"id": 131355826
},
"customerCountry": {
"id": "MT"
},
"billingContact": {
"id": 380127817,
"company": null,
"firstName": "Han",
"lastName": "Solo",
"email": "[email protected]",
"addressLine1": "123 Test Ave",
"addressLine2": null,
"postalCode": "1234",
"city": "Tatooine",
"country": {
"id": "MT",
"name": "Malta"
},
"state": null
}
}
}
}
To delete the data of the customer, use the deletePersonalCustomerData(purchaseId: Int!)
mutation object with the relevant purchase ID.
Example Request - Mutation Delete Customer Data Related to a Purchase
mutation MyMutation {
deletePersonalCustomerData(purchaseId: 356018965) {
updatedPurchase {
id
customer {
id
}
customerCountry {
id
}
billingContact {
id
company
firstName
lastName
email
addressLine1
addressLine2
postalCode
city
country {
id
name
}
state {
id
name
country {
id
name
}
}
}
}
}
}
The mutation anonymizes the customer data related to the given purchase and returns the ID of the updated purchase and all the fields requested in the mutation.
Example Response - Anonymized Customer Data Related to a Purchase
{
"data": {
"deletePersonalCustomerData": {
"updatedPurchase": {
"id": 356018965,
"customer": {
"id": 131355826
},
"customerCountry": {
"id": "MT"
},
"billingContact": {
"id": 380127817,
"company": null,
"firstName": "XXX",
"lastName": "XXX",
"email": "[email protected]",
"addressLine1": "XXX",
"addressLine2": null,
"postalCode": "XXX",
"city": "XXX",
"country": {
"id": "MT",
"name": "Malta"
},
"state": null
}
}
}
}
}
Update Customers Contact Information
Shieldware, Inc. offers security software for small and medium-sized businesses on the basis of annual subscriptions. They sell their software through Cleverbridge and use Salesforce as their CRM tool. To manage customer purchases, their development department updates customer data, using the GraphQL API, and pushes them to Salesforce. As a result, their CRM becomes the single point of truth for communication with customers.
You can use the GraphQL API to update the contact information for a customer or a purchase. To use the updateContact
mutation object, you must provide the Id
of the contact and the fields you would like to update in the request.
Example Request
mutation {
updateContact(
input: {
id: 208269856
lastName: "Solo"
firstName: "Han"
email: "[email protected]"
countryId: US
languageId: EN
addressLine1: "123 Falcon Way"
postalCode: "30033"
city: "Atlanta"
stateId: US_GA
}
) {
updatedContact {
lastName
firstName
email
addressLine1
postalCode
city
state {
id
}
}
}
}
Example Response
The API call returns the updateContact
object with the requested fields.
{
"data": {
"updateContact": {
"updatedContact": {
"lastName": "Solo",
"firstName": "Han",
"email": "[email protected]",
"addressLine1": "123 Falcon Way",
"postalCode": "30033",
"city": "Atlanta",
"state": {
"id": "US_GA"
}
}
}
}
}
View Customer Emails
Shieldware, Inc. offers security software for small and medium-sized businesses on the basis of annual subscriptions. They sell their software through Cleverbridge and use Salesforce as their CRM tool. To increase the visibility of all emails sent for new opportunities, their development department fetches all emails sent by Cleverbridge, using the GraphQL API, and pushes them to Salesforce. As a result, their CRM becomes the single point of truth for communication with customers.
You can use the GraphQL API to get all emails a customer has received for a specific purchase and display the emails in another system. To do so, use the purchase
query object and request the emails
payload object. You must provide the id
of the purchase in the request and specify the email fields that you would like to return.
Example Request
query {
purchase(id: 123805998) {
emails {
bodyPlain
bounceReason
creationTime
deliveryTime
fromAddress
id
mailType {
id
name
}
status {
id
name
}
toAddress
}
}
}
The API call returns an array of emails
objects with the requested fields, for example, bodyPlain
or deliveryTime
.
Example Response
{
"data": {
"purchase": {
"emails": [
{
"bodyPlain": "Sehr geehrte(r) Han Solo,\r\n\r\nERFOLGREICHE ZAHLUNG FÜR IHR ABONNEMENT\r\n\r\nSie haben ein Abonnement für Internet Security Basic. Eine weitere\r\nerfolgreiche Zahlung für dieses Abonnement ist erfolgt.\r\n\r\n\r\nINFORMATIONEN ZUR PRODUKTLIEFERUNG\r\n\r\nWeitere Informationen zur Auslieferung von Internet Security Basic\r\nerhalten Sie auf dieser Webseite:\r\n\r\nhttps://www.cleverbridge.com/864/p/126083636-XaKx3EwSgdicckjJMWQ1?\r\n\r\n\r\nIHRE RECHNUNG\r\n\r\nIm Anhang dieser E-Mail finden Sie die Rechnung zu Ihrer Bestellung. Sie\r\nkönnen die Rechung auch über folgenden Link herunterladen:\r\n\r\nhttps://www.cleverbridge.com/864/p/126083636-XaKx3EwSgdicckjJMWQ1?\r\n\r\nEin PDF mit den allgemeinen Geschäftsbedingungen der Cleverbridge GmbH\r\nfinden Sie im Anhang dieser E-Mail.\r\n\r\n\r\nIHR ABONNEMENT\r\n\r\nIhr Abonnement für \"Internet Security Basic\" begann am 17.11.2017. Unter\r\ndiesem Link finden Sie weitere Informationen zu Ihrer Bestellung:\r\n\r\nhttps://www.cleverbridge.com/864/p/123849279-TRo7lgfBwxJYtc4KlMIt?\r\n\r\n\r\nABONNEMENT KÜNDIGEN\r\n\r\nWenn Sie Ihr Abonnement kündigen möchten, finden Sie die Möglichkeit\r\nhierzu auf der folgenden Seite:\r\n\r\nhttps://www.cleverbridge.com/864/p/126083636-XaKx3EwSgdicckjJMWQ1?\r\n\r\n\r\nKUNDENSERVICE\r\n\r\n\r\nFragen zu Produkten und technischer Support\r\n\r\nWenn Sie technische Fragen oder Fragen zu Produkten haben, wenden Sie\r\nsich bitte an Shieldware (Example Company):\r\n\r\nWebseite: http://www.shieldwareexamplecompany.com\r\nE-Mail: [email protected]\r\nTelefon: 18005551212\r\nFax: 18005551213\r\n\r\n\r\nFragen zur Zahlung und Bestellung\r\n\r\nWenn Sie Fragen zu Ihrer Zahlung oder Bestellung haben, wenden Sie sich\r\nbitte an den Cleverbridge Kundenservice:\r\n\r\nhttps://www.cleverbridge.com/864/ma/cuseco/126083636-XaKx3EwSgdicckjJMWQ1?\r\n\r\nVielen Dank, dass Sie Ihre Online-Einkäufe über Cleverbridge getätigt\r\nhaben.\r\n\r\n\r\nMit freundlichen Grüßen\r\nIhr Cleverbridge Kundenserviceteam\r\n\r\n\r\nCleverbridge GmbH\r\nGereonstr. 43-65 - 50670 Köln - Deutschland\r\n\r\nVorstand: Christian Blume, Reinhard Wille, Martin Trzaskalik, Craig\r\nVodnik\r\nVorsitzender des Aufsichtsrats: Dr. Michael Inhester\r\nRegistergericht: HRB 58900 - Amtsgericht Köln",
"bounceReason": "",
"creationTime": "2017-12-21T11:09:20.177572Z",
"deliveryTime": "2017-12-21T11:09:20.387385Z",
"fromAddress": "[email protected]",
"id": 224927486,
"mailType": {
"id": "RECEIPT",
"name": "Customer -> Invoice (Receipt)"
},
"status": {
"id": "SENT",
"name": "Sent"
},
"toAddress": "[email protected]"
}
]
}
}
}
You can now push this information to the application of your choice.
Updated almost 2 years ago