This is thru the Docusign api. Here is the envelope definition:
{
"eventNotification": {
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "Delivered"
},
{
"envelopeEventStatusCode": "Completed"
},
{
"envelopeEventStatusCode": "Declined"
},
{
"envelopeEventStatusCode": "Voided"
},
{
"envelopeEventStatusCode": "Sent"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "false",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "c110d14a-3690-4ed1-921d-a7bef9524ed6"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "1",
"accessCode": "12345",
"customFields": [],
"routingOrder": "1",
"note": "",
"roleName": "##Buyer1"
}
],
"certifiedDeliveries": []
},
"customFields": {
"textCustomFields": [
{
"name": "EnvelopeInfo",
"value": "my data"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "c:\three of the test.docx",
"fileExtension": ".docx",
"documentFields": [],
"documentBase64": [bytearray]
}
}
],
"status": "sent",
"emailSubject": "This is the new subject"
}
The subject still shows as "Please DocuSign: sign this". I would have thought setting the subject would have addressed this, but I must be missing something.
You have most likely configured per recipient email subject in your server template. In such a case the emailSubject that is specified at the root level of the postEnvelope request is ignored.
You can confirm that by making a getTemplates call using your server template Id. It will look something like below. Look specifically for recipients.signers.emailNotification property. I have removed some of the properties for simplicity.
{
"envelopeTemplateDefinition": {
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-e672c4efd436",
},
"documents": [ ],
"emailSubject": "This is the subject on the server template.",
"emailBlurb": "",
"recipients": {
"signers": [
{
"tabs": {},
"roleName": "RoleOne",
"emailNotification": {
"emailSubject": "Please DocuSign: sign this",
"emailBody": "",
"supportedLanguage": "en"
},
}
]
}
}
To override the per recipient email subject specified in the server template, specify the emailNotification property in the inlineTemplate.
{
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "c110d14a-3690-4ed1-921d-a7bef9524ed6"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "1",
"accessCode": "12345"
"routingOrder": "1",
"roleName": "##Buyer1",
"emailNotification": {
"emailSubject": "This is email subject to Buyer1",
"emailBody": "",
"supportedLanguage": "en"
},
}
],
}
}
],
"document": { }
}
],
"status": "sent",
}
Related
I'm getting an error when finishing a DocuSign Ceremony using EU Advanced Signature with Templates. The odd thing is that it was working before and still working for ceremonies that have an embedded PDF.
When finishing a ceremony the following error is popping up:
The envelope history shows more details:
It mentions the userEmail, so I've double-checked the JSON and everything seems to be fine, after all, I didn't get any error when creating the envelope.
Here's the JSON using a Template that is failing:
{
"status": "sent",
"eventNotification": {
"recipientEvents": [
{
"recipientEventStatusCode": "delivered"
},
{
"recipientEventStatusCode": "completed"
},
{
"recipientEventStatusCode": "sent"
},
{
"recipientEventStatusCode": "declined"
}
],
"envelopeEvents": [
{
"envelopeEventStatusCode": "delivered"
},
{
"envelopeEventStatusCode": "completed"
},
{
"envelopeEventStatusCode": "sent"
},
{
"envelopeEventStatusCode": "declined"
}
]
},
"emailSubject": "Contract",
"compositeTemplates": [
{
"serverTemplates": [
{
"templateId": "TEMPLATE_ID",
"sequence": "1"
}
],
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"routingOrder": "2",
"roleName": "Signer 2",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00999555585"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "2",
"name": "Axel Foley",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"email": " axel.foley#email.com"
},
{
"routingOrder": "2",
"roleName": "Signer 3",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00123456789"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "3",
"name": "Alex Murphy",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"email": "alex.murphy#email.com"
}
],
"inPersonSigners": [
{
"signerName": "Leeroy Jenkins",
"signerEmail": "leeroy.jenkins#email.com",
"routingOrder": "1",
"roleName": "Signer 1",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00666888777"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "1",
"hostName": "Lightning McQueen",
"hostEmail": "lightning.mcqueen#email.com",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"clientUserId": "SFDC_CLIENT_USER_ID"
}
]
},
"customFields": {
"textCustomFields": [
{
"value": "SFDC_ID",
"show": "false",
"required": "false",
"name": "##SFContract"
}
]
}
}
]
}
]
}
And here's the JSON with an embedded PDF that works fine:
{
"status": "sent",
"recipients": {
"inPersonSigners": [
{
"tabs": {
"signHereTabs": [
{
"anchorYOffset": "0",
"anchorXOffset": "0",
"anchorUnits": "inches",
"anchorString": "\\s1\\",
"anchorIgnoreIfNotPresent": "false"
}
]
},
"signerName": "Vincent Vega",
"signerEmail": "vicent.vega#email.com",
"routingOrder": "1",
"roleName": "Signer 1",
"recipientSignatureProviders": [
{
"signatureProviderOptions": {
"sms": "+00789456123"
},
"signatureProviderName": "UniversalSignaturePen_OpenTrust_Hash_TSP"
}
],
"recipientId": "1",
"hostName": "Lightning McQueen",
"hostEmail": "lightning.mcqueen#email.com",
"emailNotification": {
"supportedLanguage": "en",
"emailSubject": "CUSTOM_MESSAGE",
"emailBody": "CUSTOM_MESSAGE"
},
"clientUserId": "SFDC_CLIENT_USER_ID"
}
]
},
"eventNotification": {
"recipientEvents": [
{
"recipientEventStatusCode": "delivered"
},
{
"recipientEventStatusCode": "completed"
},
{
"recipientEventStatusCode": "sent"
},
{
"recipientEventStatusCode": "declined"
}
],
"envelopeEvents": [
{
"envelopeEventStatusCode": "delivered"
},
{
"envelopeEventStatusCode": "completed"
},
{
"envelopeEventStatusCode": "sent"
},
{
"envelopeEventStatusCode": "declined"
}
]
},
"documents": [
{
"name": "Form.pdf",
"fileExtension": "pdf",
"documentId": "1",
"documentBase64": "BASE64_PDF"
}
],
"customFields": {
"textCustomFields": [
{
"value": "SFDC_ID",
"show": "false",
"required": "false",
"name": "##SFAccount"
}
]
}
}
Am I missing something? Have anyone ever seen this error before?
It's worth to mention that I'm getting the error right in the first signature (InPerson).
Kind regards
It turned out that is a known issue of DocuSign.
There is a known issue during an in-person signing session when the signer clicks on Finished, he should get the following popup
If you don’t set any email, it will fail with the CONSTRAINT_VALIDATION_ERROR
The workaround is to specify an email.
I am trying to use the same server template for 3 different documents. I was assuming that by using 3 different composite templates, I could accomplish this. Instead, what I am seeing is that the first document is repeated 3 times in the envelope. Here is the request:
{
"customFields": {
"textCustomFields": [
{
"name": "Cartus file id",
"value": "1823456"
}
]
},
"eventNotification": {
"url": "http://requestb.in/p2qfvfp2",
"loggingEnabled": "true",
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "Delivered"
},
{
"envelopeEventStatusCode": "Completed"
},
{
"envelopeEventStatusCode": "Declined"
},
{
"envelopeEventStatusCode": "Voided"
},
{
"envelopeEventStatusCode": "Sent"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "false",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"compositeTemplates": [
{
"compositeTemplateId": "1",
"serverTemplates": [
{
"sequence": "1",
"templateId": "4e2f0e2d-9888-xxxx-8da3-bbf70163233f"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"customFields": [
"this is the buyer"
],
"routingOrder": "1",
"roleName": "##Buyer1"
},
{
"name": "Kathy Langdon",
"email": "KathyLangdon1#xxx.com",
"recipientId": "2",
"customFields": [
"this is the seller"
],
"routingOrder": "2",
"roleName": "##Seller1"
}
],
"certifiedDeliveries": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "3",
"accessCode": "12345",
"routingOrder": "3",
"roleName": "##OtherPerson"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "Here is document one of the test.docx",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc1Info",
"value": "here is doc1 info"
}
]
}
},
{
"compositeTemplateId": "2",
"serverTemplates": [
{
"sequence": "1",
"templateId": "4e2f0e2d-9888-xxxx-8da3-bbf70163233f"
}
],
"inlineTemplates": [
{
"sequence": "3",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"customFields": [
"this is the buyer"
],
"routingOrder": "1",
"roleName": "##Buyer1"
}
],
"certifiedDeliveries": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "3",
"accessCode": "12345",
"routingOrder": "3",
"roleName": "##OtherPerson"
}
]
}
}
],
"document": {
"documentId": "2",
"name": "Here is document two of the test",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc2Info",
"value": "here is doc2 info"
}
]
}
},
{
"compositeTemplateId": "3",
"serverTemplates": [
{
"sequence": "1",
"templateId": "4e2f0e2d-9888-xxxx-8da3-bbf70163233f"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"customFields": [
"this is the buyer"
],
"routingOrder": "1",
"roleName": "##Buyer1"
},
{
"name": "Kathy Langdon",
"email": "KathyLangdon1#xxx.com",
"recipientId": "2",
"customFields": [
"this is the seller"
],
"routingOrder": "2",
"roleName": "##Seller1"
}
],
"certifiedDeliveries": [
{
"name": "Kathy Lori",
"email": "kathylori#xxx.com",
"recipientId": "3",
"accessCode": "12345",
"routingOrder": "3",
"roleName": "##OtherPerson"
}
]
}
}
],
"document": {
"documentId": "3",
"name": "Here is document three of the test",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc3Info",
"value": "here is doc3 info"
}
]
}
}
],
"status": "sent",
"emailSubject": "Please sign the following document at 9:26 AM"
}
Like I said, document1.docx was repeated 3 times in the envelope ( these documents are only 1 page each ).
You are not specifying the Document bytes in your Composite Template.
Since the Document bytes are not included in your Composite template, the Server templates documents will be used to create the envelope. That's the reason you are seeing the same doc from the server template being repeated three times.
Change your document property in each composite template as below. I have added the documentBase64 property.
"document": {
"documentId": "1",
"name": "Here is document one of the test.docx",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc1Info",
"value": "here is doc1 info"
}
],
"documentBase64" : "[Include the base64 of the .docx file here]"
}
I can't figure out why the only document that gets delivered here is the first one. The roles on doc 1 are : buyer, seller, doc2 has seller and lawyer, doc3 has buyer and seller. I purposely left off a template role for lawyer. Here is what the envelope definition looks like:
{
"documents": [
{
"documentId": "1",
"name": "Here is document one of the test.docx",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc1Info",
"value": "here is doc1 info"
}
],
"documentBase64": [bytearray]
},
{
"documentId": "2",
"name": "Here is document two of the test",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc2Info",
"value": "here is doc2 info"
}
],
"documentBase64": [bytearray]
},
{
"documentId": "3",
"name": "Here is document three of the test",
"fileExtension": "docx",
"documentFields": [
{
"name": "Doc3Info",
"value": "here is doc3 info"
}
],
"documentBase64": [bytearray]
}
],
"customFields": {
"textCustomFields": [
{
"name": "My file id",
"value": "1823456"
}
]
},
"eventNotification": {
"url": "http://requestb.in/opiu2bop",
"loggingEnabled": "true",
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "Delivered"
},
{
"envelopeEventStatusCode": "Completed"
},
{
"envelopeEventStatusCode": "Declined"
},
{
"envelopeEventStatusCode": "Voided"
},
{
"envelopeEventStatusCode": "Sent"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "false",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"templateId": "xxxx-ad34-4a2e-a375-069ce2df630c",
"templateRoles": [
{
"email": "KathyGilbert11#xxx.com",
"roleName": "##Buyer1",
"name": "Kathy Gilbert",
"routingOrder": "1"
},
{
"email": "KathyLangdon1#xxx.com",
"roleName": "##Seller1",
"name": "Kathy Langdon",
"routingOrder": "2"
}
],
"status": "sent",
"emailSubject": "Please sign the following document at 9:49 AM"
This has nothing to do with roles. Since you are specifying "ServerTemplate" in your request along with some additional documents. This is considered as a compositeTemplate.
In a single Composite Template you can only overlay ONE document. You will have to use multiple CompositeTemplates in your request to overlay all the three documents.
Here is a working code which overlays multiple documents on a server template. I have simplified your example below(removed connect & custom field related info). It should still work if you add that information back.
Tip: If you want to retain the documents in your server Template, you can move the Document(documentId:1) specified in the first Composite Template( ID:1) to the second CompositeTemplate (ID:2). The final envelope will have 3 more documents in addition to the documents on your serverTemplate
{
"emailSubject": "Testing multiple docs",
"status": "sent",
"compositeTemplates": [
{
"compositeTemplateId": "1",
"serverTemplates": [
{
"sequence": "1",
"templateId": "XXXXXX-2f8a-4cfc-907b-4c84cb523426"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Byer One",
"email": "buyerone#acme.com",
"roleName": "##Buyer1",
"recipientId": "1",
"routingOrder": "1",
}
]
}
}
],
"document": {
"documentId": "1",
"name": "Here is document one of the test",
"fileExtension": "docx",
"documentBase64": "[Bytes Removed]"
}
},
{
"compositeTemplateId": "2",
"inlineTemplates": [
{
"sequence" : "3",
"documents": [
{
"documentId": "2",
"name": "Here is document two of the test",
"fileExtension": "docx",
"documentBase64": "[Bytes Removed]"
},
{
"documentId": "3",
"name": "Here is document three of the test",
"fileExtension": "docx",
"documentBase64": "[Bytes Removed]"
}
]
}
]
}
]
}
I created an envelope with one signer, 1 template, 3 different docs. I added a custom field to the envelope. I send off the envelope and get the response back on the url I specified. I look at the response and I don't see the custom envelope field in there. Should it be sent along with the response? Here is what I sent:
{
"customFields": {
"textCustomFields": [
{
"name": "file id",
"value": "1823456"
}
]
},
"eventNotification": {
"url": "http://requestb.in/16avl8c1",
"loggingEnabled": "true",
"requireAcknowledgment": "true",
"envelopeEvents": [
{
"envelopeEventStatusCode": "Delivered"
},
{
"envelopeEventStatusCode": "Completed"
},
{
"envelopeEventStatusCode": "Declined"
},
{
"envelopeEventStatusCode": "Voided"
},
{
"envelopeEventStatusCode": "Sent"
}
],
"useSoapInterface": "false",
"includeCertificateWithSoap": "false",
"signMessageWithX509Cert": "false",
"includeDocuments": "false",
"includeEnvelopeVoidReason": "false",
"includeTimeZone": "true",
"includeSenderAccountAsCustomField": "true",
"includeDocumentFields": "true",
"includeCertificateOfCompletion": "false"
},
"compositeTemplates": [
{
"compositeTemplateId": "1",
"serverTemplates": [
{
"sequence": "1",
"templateId": "a0d319ef-ad34-4a2e-a375-069ce2df630c"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "##Buyer1"
}
]
}
}
],
"document": {
"documentId": "1",
"name": "Here is document one of the test.docx",
"fileExtension": "docx",
"documentBase64": [bytearray]
}
},
{
"compositeTemplateId": "2",
"serverTemplates": [
{
"sequence": "1",
"templateId": "a0d319ef-ad34-4a2e-a375-069ce2df630c"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "##Buyer1"
}
]
}
}
],
"document": {
"documentId": "2",
"name": "Here is document two of the test",
"fileExtension": "docx",
"documentBase64": [bytearray]
}
},
{
"compositeTemplateId": "3",
"serverTemplates":
{
"sequence": "1",
"templateId": "a0d319ef-ad34-4a2e-a375-069ce2df630c"
}
],
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "##Buyer1"
}
]
}
}
],
"document": {
"documentId": "3",
"name": "Here is document three of the test",
"fileExtension": "docx",
"documentBase64": [bytearray]
}
}
],
"status": "sent",
"emailSubject": "Please sign the following document at 3:20 PM"
}
Connect webhook response will contain the Envelope Custom Fields if they were added to the envelope successfully.
For CompositeTemplates the CustomFields specified at the root level are ignored. You should specify the Custom Fields within the inline template.
Troubleshooting Tip:You can do an additional Check to see if the Custom Fields are created by using listCustomFields api.
Here is an example.
"compositeTemplates": [
{
"compositeTemplateId": "1",
"serverTemplates": [
{
"sequence": "1",
"templateId": "a0d319ef-ad34-4a2e-a375-069ce2df630c"
}
],
"inlineTemplates": [
{
"sequence": "2",
"customFields": {
"textCustomFields": [
{
"name": "file id",
"value": "1823456"
}
]
},
"recipients": {
"signers": [
{
"name": "Kathy Gilbert",
"email": "KathyGilbert11#xxx.com",
"recipientId": "1",
"routingOrder": "1",
"roleName": "##Buyer1"
}
]
}
}
]
}
I am trying to create 2 custom fields when creating an Envelope from templates using composite templates below is the json.
{
"emailSubject": "This is a new",
"status": "sent",
"compositeTemplates": [
{
"inlinetemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"email": "email#email.com",
"name": "Jimmy Nobody",
"clientuserid": "1",
"recipientid": "1",
"rolename": "signer",
"dfaultrecipient": "true",
"tabs": {
"texttabs": [
{
"name": "Text",
"tabLabel": "name",
"value": "Joe Smith"
},
{
"name": "Text",
"tabLabel": "address",
"value": "987 apple lane"
}
]
}
}
]
}
}
],
"servertemplates": [
{
"sequence": "1",
"templateId": "52be0f34-d8aa-420f-8283-4e9cc2bb499f"
}
]
},
{
"inlinetemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"email": "email#email.com",
"name": "Jimmy Nobody",
"clientuserid": "1",
"recipientid": "1",
"rolename": "signer",
"dfaultrecipient": "true",
"tabs": {
"texttabs": [
{
"name": "Text",
"tabLabel": "name",
"value": "Joe Smith"
},
{
"name": "Text",
"tabLabel": "address",
"value": "987 apple lane"
}
]
}
}
]
}
}
],
"servertemplates": [
{
"sequence": "1",
"templateId": "e00b896b-4ac7-48b1-8280-bfe3830a61f1"
}
]
}
],
"customFields": {
"textCustomFields": [
{
"name": "callingsystem",
"required": "true",
"show": "false",
"value": "3e56cabd-6211-4203-a462-a7ff960a6b9c"
},
{
"name": "callingsystemid",
"required": "true",
"show": "false",
"value": "crm"
}
]
}
}
The problem is that this JSON is accepted and and envelope is created but no custom fields are on the envelope. What am i doing wrong?
You want to put it inside the inline templates tag. Also your formatting was a bit off and you had a typo in defaultRecipient
Try this:
{
"emailSubject": "This is a new",
"status": "sent",
"compositeTemplates": [
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "52be0f34-d8aa-420f-8283-4e9cc2bb499f"
}
]
},
{
"serverTemplates": [
{
"sequence": "1",
"templateId": "e00b896b-4ac7-48b1-8280-bfe3830a61f1"
}
]
},
{
"inlineTemplates": [
{
"sequence": "2",
"customFields": {
"textCustomFields": [
{
"name": "callingsystem",
"required": "true",
"show": "false",
"value": "3e56cabd-6211-4203-a462-a7ff960a6b9c"
},
{
"name": "callingsystemid",
"required": "true",
"show": "false",
"value": "crm"
}
]
},
"recipients": {
"signers": [
{
"email": "email#email.com",
"name": "Jimmy Nobody",
"clientuserid": "1",
"recipientid": "1",
"rolename": "signer",
"defaultrecipient": "true",
"tabs": {
"texttabs": [
{
"name": "Text",
"tabLabel": "name",
"value": "Joe Smith"
},
{
"name": "Text",
"tabLabel": "address",
"value": "987 apple lane"
}
]
}
}
]
}
}
]
}
]
}