Base URL
The base URL we are using for the current version of our Zapier endpoints is
https://api.expertise.ai/v0/users
this will be referred to as {{BASE_URL}}.
Authentication
This is the endpoint that Zapier calls when a user is attempting to log into Chatsimple.
It lives at
{{BASE_URL}}/zapier
.Request:
const options = { url: '{{BASE_URL}/zapier', method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-HTML-SNIPPET': html_snippet, 'X-API-KEY': api_key, }, }; return z.request(options) .then((response) => { response.throwForStatus(); const results = response.json; return results; })
html_snippet contains the user_id and chatbot_id.
api_key is the api_key given by Chartsimple.
Response:
A successful call will authorize the user:
return {'status': 'success', 'user_id': user_id, 'chatbot_id': chatbot_id}, 200
user_id and chatbot_id are returned to make a connection label in Zapier.
Subscribe
This is the endpoint Zapier calls to subscribe to a webhook.
It lives at
{{BASE_URL}}/zapier/subscribe
.Request:
const options = { url: ' {{BASE_URL}}/zapier/subscribe', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-API-KEY': api_key, 'X-USER-ID': user_id, 'X-CHATBOT-ID': chatbot_id, 'X-HOOKURL': bundle.targetUrl } }; return z.request(options) .then((response) => { response.throwForStatus(); const results = response.json; return results; });
html_snippet
can be parsed for the user_id
and chatbot_id
.api_key
is the api_key
given by Chartsimple.bundle.targetUrl
is the hook URL given by Zapier.Response:
A successful call will subscribe the user:
const leads_list = leads.map(lead => ({ created_on: lead.created_on, name: lead.name, email: lead.email, phone_number: lead.phone_number, questions: lead.questions })); return leads_list, 200
leads
is the object that holds all the leads of a user.Unsubscribe
This is the endpoint Zapier calls to unsubscribe to a webhook.
It lives at
{{BASE_URL}}/zapier/unsubscribe
.Request:
const options = { url: '{{BASE_URL}}/zapier/unsubscribe', method: 'DELETE', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-API-KEY': api_key, 'X-USER-ID': user_id, 'X-CHATBOT-ID': chatbot_id, } }; return z.request(options) .then((response) => { response.throwForStatus(); const results = response.json; return results; });
html_snippet
can be parsed for the user_id
and chatbot_id
.api_key
is the api_key
given by Chatsimple.Response:
A successful call will unsubscribe the user:
const integration = { user_id = user_id, chatbot_id = chatbot_id, integration_id = integration_id, integration_type = 'ZAPIER', api_key = api_key, target_url = bundle.targetUrl, } return integration, 200
Get Leads
This is the endpoint Zapier calls to when the webhook is triggered.
It lives at
{{BASE_URL}}/zapier/get_leads
.Request:
const options = { url: '{{BASE_URL}}/zapier/get_leads', method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-API-KEY': api_key, 'X-USER-ID': user_id, 'X-CHATBOT-ID': chatbot_id, } }; return z.request(options) .then((response) => { response.throwForStatus(); const results = response.json; return results; });
html_snippet
can be parsed for the user_id
and chatbot_id
.api_key
is the api_key
given by Chartsimple.Response:
A successful call will return the most recent lead:
const lead = { 'created_on': leads.created_on, 'name': leads.name, 'email': leads.email, 'phone_number': leads.phone_number, 'questions': leads.questions, } return lead, 200
leads
is the object the most recent lead of a user.