Skip to content
alex [dot] kramer [at] g_m_a_i_l [dot] com edited this page Mar 1, 2020 · 2 revisions

The Difference

Bugs/TODOs

  • normalize DB schema (e.g. make appropriate columns non-nullabe)
  • customer tags are broken up by spaces

Creds

Service Login
ZD [email protected], [email protected]
the-difference.heroku.com [email protected]
the-difference.herokuapp.com/admin [email protected]
Stripe ???

TD API <- Zendesk API

Inbound URLS

Setting up Zendesk webhooks

https://support.zendesk.com/hc/en-us/articles/204890268-Creating-webhooks-with-the-HTTP-target

{
  "ticket_id": "{{ticket.id}}",
  "user_pk": "{{ticket.requester.external_id}}"
}

TD API -> Zendesk API

Docs

https://developer.zendesk.com/rest_api/docs/

API env vars

Env Var Value
ZENDESK_API_BASE_URL https://thedifference.zendesk.com/api/v2/
ZENDESK_FIND_USER_URL https://thedifference.zendesk.com/api/v2/users/search.json?query=
ZENDESK_REQUEST_URL https://thedifference.zendesk.com/api/v2/requests.json
ZENDESK_TICKET_URL https://thedifference.zendesk.com/agent/tickets/

Setting up Zendesk API access

App flow


Product deck: https://docs.google.com/presentation/d/1VljhTCKUpLL8vobb76pnJOXs1Gaa5Lj9deubQcWBMWc/edit?ts=5cf01ce9#slide=id.g556ac5b81e_0_166

Testing

Running frontend locally

# brew install angular
npm install -g npm
npm install -g @angular/cli
npm install
ng build
ng serve
# Navigate browser to http://localhost:4200

Testing Stripe integration

Testing Resources

NOTES

ZendeskHelper calls

zendesk_helper = ZendeskHelper()

# GET https://thedifference.zendesk.com/api/v2/tickets/{ticket_id}/comments.json
zendesk_helper.get_voice_comment_from_ticket(ticket_id)

# POST https://thedifference.zendesk.com/api/v2/users.json {}
zendesk_helper.create_profile(self)

# PUT https://thedifference.zendesk.com/api/v2/users/{user.zendesk_id}.json
zendesk_helper.update_profile(self / client / user)

# GET https://thedifference.zendesk.com/api/v2/users/search.json?query={email}
zendesk_helper.check_if_user_exists(self.initial_data.get('email') / request.data['email'])

# GET https://thedifference.zendesk.com/api/v2/users/{user.zendesk_id}.json
zendesk_helper.get_zendesk_profile_data(user)

# POST https://thedifference.zendesk.com/api/v2/requests.json
zendesk_helper.create_callback_request(user)

# GET https://thedifference.zendesk.com/api/v2/users/{user.zendesk_id}/tickets/requested.json?sort_order=desc
# DELETE https://thedifference.zendesk.com/api/v2/tickets/{recent_ticket_id}.json
zendesk_helper.cancel_callback_request(user)

# POST https://thedifference.zendesk.com/api/v2/requests.json
zendesk_helper.create_invoice_request(user, requested_id)
Clone this wiki locally