Zendesk Sell Outbound and Inbound Example
The following example is a Zendesk Sell configuration with multiple outbound workflows and an inbound workflow.
{
"$version": "2",
"api": {
"base_url": "https://api.getbase.com",
"rate_limit": {
"app": {
"requests": 10,
"period": 1
}
},
"pagination": {
"style": {
"type": "page",
"page_number": {
"param": "page",
"value": 1
},
"page_size": {
"param": "per_page",
"value": 25
}
},
"parser": {
"next_page_url": {
"!jq": ".meta.links.next_page"
}
}
}
},
"auth": {
"zendesk_oauth2": {
"type": "oauth2",
"configuration": {
"authorization_base_url": "https://api.getbase.com/oauth2/authorize",
"client_id": "",
"client_secret": "",
"scopes": [
"read",
"write",
"profile"
],
"token_url": "https://api.getbase.com/oauth2/token",
"refresh_url": "https://api.getbase.com/oauth2/token"
}
}
},
"data_intake": [
{
"name": "zendesk_webhook",
"type": "webhook",
"scope": "workflow",
"create": {
"!http": {
"body": {
"enabled": true,
"url": "${webhook.url}"
},
"method": "PUT",
"path": "forms/${custom_data.form.value}/webhooks/${webhook.id}"
}
},
"delete": {
"!http": {
"method": "DELETE",
"path": "forms/${custom_data.form.value}/webhooks/${webhook.id}"
}
}
}
],
"workflows": [
{
"label": "Create and Update Leads in Zendesk Sell",
"description": "Create and Update Leads in Zendesk Sell",
"name": "create-lead-zendesk",
"type": "automations",
"auth": "zendesk_oauth2",
"setup": {
"connect": {
"label": "Connect",
"describe_connection": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/v2/users/self"
}
},
{
"!jq": ".body | {account_id: .data.id, description: (if .data.team_name | length > 0 then .data.team_name + \" - \" + .data.email else .data.email end)}"
}
]
}
},
"select": {
"label": "Select Tags",
"description": "You can associate one or more tags from ZendeskSell to the Lead being created",
"form_fields": [
{
"label": "Tags (optional)",
"id": "leads-tags",
"type": "multiselect",
"required": false,
"placeholder": "Select Tag(s)",
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/v2/tags?resource_type=lead",
"pagination": true
}
},
{
"!jq": "[.body.items[] | .data | {display: .name, value: .id}]"
}
]
}
}
]
},
"map": {
"label": "Mapping",
"describe_source": {
"label": "ActiveCampaign",
"options": {
"!resource": "ActiveCampaignContact.fields"
}
},
"describe_target": {
"label": "Zendesk Sell",
"options": {
"!pipe": [
{
"!jq": "[\"first_name\", \"last_name\", \"organization_name\",\"status\", \"source_id\", \"title\", \"description\", \"industry\", \"website\", \"email\", \"phone\", \"mobile\", \"fax\", \"twitter\", \"facebook\", \"linkedin\", \"skype\"]"
},
{
"!http": {
"method": "GET",
"path": "/v2/lead/custom_fields"
}
},
{
"!jq": "${piped_content.1} + [.body.items[].data.name]"
},
{
"!jq": "[\"last_name\", \"email\"] as $required | map(. as $input | {id: ., title: . | split(\"_\") | join(\" \"), required: (if ($required | index($input) == null) then false else true end) })"
}
]
}
}
}
},
"data_pipeline": {
"source": {
"!resource": "ActiveCampaignContact"
},
"target": {
"!pipe": [
{
"!jq": "[\"first_name\", \"last_name\", \"organization_name\",\"status\", \"source_id\", \"title\", \"description\", \"industry\", \"website\", \"email\", \"phone\", \"mobile\", \"fax\", \"twitter\", \"facebook\", \"linkedin\", \"skype\", \"tags\"]"
},
{
"!jq": "${custom_data.tags | default} as $tags | if ($tags | length) > 0 then {tags: ${custom_data.tags} | map(.display)} else null end"
},
{
"!jq": "${piped_content.0} | ${piped_content.1} as $core_fields | with_entries(select((.key as $k | $core_fields | index($k)))) + (with_entries(select((.key as $k | $core_fields | index($k) | not))) | {custom_fields: .}) + ${piped_content.2}"
},
{
"!jq": ".email"
},
{
"!http": {
"method": "POST",
"path": "https://api.getbase.com/v2/leads/upsert?email=${piped_content.4}",
"body": {
"data": "${piped_content.3}"
},
"headers": {
"Content-Type": "application/json"
}
}
}
]
}
}
},
{
"label": "Create and Update Contacts in Zendesk Sell",
"description": "Create and Update Contacts in Zendesk Sell",
"name": "create-contact-zendesk",
"type": "automations",
"auth": "zendesk_oauth2",
"setup": {
"connect": {
"label": "Connect",
"describe_connection": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/v2/users/self"
}
},
{
"!jq": ".body | {account_id: .data.id, description: (if .data.team_name | length > 0 then .data.team_name + \" - \" + .data.email else .data.email end)}"
}
]
}
},
"select": {
"label": "Select Tags",
"description": "You can associate one or more tags from ZendeskSell to the Lead being created",
"form_fields": [
{
"label": "Tags (optional)",
"id": "contacts-tags",
"type": "multiselect",
"required": false,
"placeholder": "Select Tag(s)",
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/v2/tags?resource_type=lead",
"pagination": true
}
},
{
"!jq": "[.body.items[] | .data | {display: .name, value: .id}]"
}
]
}
}
]
},
"map": {
"label": "Mapping",
"describe_source": {
"label": "ActiveCampaign",
"options": {
"!resource": "ActiveCampaignContact.fields"
}
},
"describe_target": {
"label": "Zendesk Sell",
"options": {
"!pipe": [
{
"!jq": "[\"first_name\", \"last_name\", \"name\",\"is_organization\", \"creator_id\",\"owner_id\",\"customer_status\", \"customer_status\", \"creator_id\", \"title\", \"description\", \"industry\", \"website\", \"email\", \"phone\", \"mobile\", \"fax\", \"twitter\", \"facebook\", \"linkedin\", \"skype\"]"
},
{
"!http": {
"method": "GET",
"path": "/v2/contact/custom_fields"
}
},
{
"!jq": "${piped_content.1} + [.body.items[].data.name]"
},
{
"!jq": "[\"last_name\", \"email\"] as $required | map(. as $input | {id: ., title: . | split(\"_\") | join(\" \"), required: (if ($required | index($input) == null) then false else true end) })"
}
]
}
}
}
},
"data_pipeline": {
"source": {
"!resource": "ActiveCampaignContact"
},
"target": {
"!pipe": [
{
"!jq": "[\"first_name\", \"last_name\", \"name\",\"is_organization\", \"creator_id\",\"owner_id\",\"customer_status\", \"customer_status\", \"creator_id\", \"title\", \"description\", \"industry\", \"website\", \"email\", \"phone\", \"mobile\", \"fax\", \"twitter\", \"facebook\", \"linkedin\", \"skype\", \"tags\"]"
},
{
"!jq": "${custom_data.tags | default} as $tags | if ($tags | length) > 0 then {tags: ${custom_data.tags} | map(.display)} else null end"
},
{
"!jq": "${piped_content.0} | ${piped_content.1} as $core_fields | with_entries(select((.key as $k | $core_fields | index($k)))) + (with_entries(select((.key as $k | $core_fields | index($k) | not))) | {custom_fields: .}) + ${piped_content.2}"
},
{
"!jq": ".email"
},
{
"!http": {
"method": "POST",
"path": "https://api.getbase.com/v2/contacts/upsert?email=${piped_content.4}",
"body": {
"data": "${piped_content.3}"
},
"headers": {
"Content-Type": "application/json"
}
}
}
]
}
}
},
{
"label": "Zendesk Sell",
"description": "Create and Update Contacts in ActiveCampaign",
"name": "zendesk-sell-forms",
"type": "generic",
"data_intake": "zendesk_webhook",
"auth": "zendesk_oauth2",
"resource_type": "form",
"setup": {
"connect": {
"label": "Connect",
"describe_connection": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/me"
}
},
{
"!jq": ".body | {account_id: .email, description: [.alias, .email] | join(\" - \")}"
}
]
}
},
"select": {
"label": "Select Form",
"description": "Select a form from the list.",
"describe_selection": {
"resource_id": {
"!jq": "${custom_data.form.value}"
},
"display": {
"!jq": "${custom_data.form.display}"
}
},
"form_fields": [
{
"label": "Choose Your Form",
"type": "dropdown",
"id": "form",
"placeholder": "Select Form",
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"params": {
"page_size": 200
},
"path": "/forms",
"pagination": true
}
},
{
"!jq": "[.body.items[] | {display: .title, value: .id}]"
}
]
}
}
]
},
"map": {
"label": "Mapping",
"describe_source": {
"label": "Zendesk Sell",
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "/forms/${custom_data.form.value}"
}
},
{
"!jq": "[.body.fields[]|{title, id, type}]"
}
]
}
},
"describe_target": {
"label": "ActiveCampaign",
"options": {
"!resource": "ActiveCampaignContact.fields"
}
}
}
},
"data_pipeline": {
"source": {
"!jq": "[.form_response | .answers[] | { key: .field.id, value: (.text // .email // .date // .boolean // .url // .number // .phone_number // .file_url // .payment.amount // .choices.labels // .choice.label // .choice.other ) }] | from_entries"
},
"target": {
"!resource": "ActiveCampaignContact"
}
}
}
]
}
Updated over 2 years ago