Skip to main content
Minh Nong
💬
0 discussions

[API] mobile-service

API Endpoints​

Response​

  • 200: Success
  • 403: Forbidden
  • 400: Bad Request

Auth​

  • Auth Type : Bearer Token

auth_keycloak.js​

Forget Password​

  • Route: /fogetPasswordKeycloak
  • Method: POST
  • Body: realm, email
  • Related API:
    • access: POST /user/resetPassword
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 500 { success: false, error: 'Invalid access' }

calllog.js​

Create Calllog​

  • Route: /ua/calllog
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Description: Creates a new call log entry with the specified details.
  • Related API:
    • access: POST /callcenter/${idCallcenter}/calllog
    • access: GET /${versionApi}/callcenter/${user.idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

integration.js​

Create Integration​

  • Route: /ua/integration/:template_name/endpoint/:endpoint_name
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Related API:
    • integration: POST /api/integrator/${template_name}/endpoint/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

nexmo.js​

Get Inbound SMS from Nexmo​

  • Route: /inbound-sms
  • Method: GET
  • Query Parameters: text, msisdn, to, api-key, idCallcenter
  • Related API:
    • Access: GET /nexmos
    • Access: GET /callcenter/${idCallcenter}/phone
    • Access: POST /callcenter/${idCallcenter}/contact
    • Access: GET /callcenter/${idCallcenter}/contact/${idContact}/activities
    • Access: GET /user/search
    • Access: POST /callcenter/${idCallcenter}/contact/${idContact}/activity
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

activity.js​

Get Activities for a Contact​

  • Route: /contact/:contact_id/activities
  • Method: GET
  • Params: contact_id
  • Query Parameters: page, limit, type
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activities
    • Access: GET /callcenter/${user.idCallcenter}/agents/all
  • Return Format:
    • Success: 200 res.json({ success: true, result: list, hasMore })
    • Failure: 400 { success: true, result: [], hasMore: false }

Add Activity for a Contact​

  • Route: /contact/:contact_id/activity
  • Method: POST
  • Params: contact_id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/contact/${contact_id}/activity
    • Access: GET /callcenter/${user.idCallcenter}/agent/${body.body.remindedAgent}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true, result: null }

Get All Activities​

  • Route: /activities
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/activities
    • Access: GET /callcenter/${user.idCallcenter}/agents/all
  • Return Format:
    • Success: 200 { success: true, result: list, hasMore }
    • Failure: 400 { success: true, result: null }

Get Activity Details​

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: GET
  • Params: contact_id, activity_id
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

Update Activity​

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: PUT
  • Params: contact_id, activity_id
  • Related API:
    • Access: PUT /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

Delete Activity​

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: DELETE
  • Params: contact_id, activity_id
  • Related API:
    • Access: DELETE /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true }

Add Tags to Activity​

  • Route: /activity/:id/tags
  • Method: POST
  • Params: id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/activity/${id}/tags
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true, result: null }

Remove Tags from Activity​

  • Route: /activity/:id/tags
  • Method: DELETE
  • Params: id
  • Body: req.body
  • Related API:
    • Access: DELETE /callcenter/${user.idCallcenter}/activity/${id}/tags
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

agent.js​

All Agents​

  • Route: /agents/all
  • Method: GET
  • Related API:
    • Access: GET ${versionApi}/callcenter/${idCallcenter}/agents/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Update Agent Status​

  • Route: /agent/status
  • Method: PUT
  • Body: req.body
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

calllog.js​

Create Calllog​

  • Route: /calllog
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/calllog
    • Access: POST /${versionApi}/callcenter/${user.idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get All Calllogs​

  • Route: /calllogs
  • Method: GET
  • Query: page, limit, filter
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/activities
    • Access: GET /callcenter/${idCallcenter}/calllogs
  • Return Format:
    • Success: 200 { success: true, result: result, hasMore: resp.data.hasMore }
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Calllog by ID​

  • Route: /calllog/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/calllog/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Calllogs by Phone Number​

  • Route: /calllogs/phone/:phone
  • Method: GET
  • Params: phone
  • Query: page, limit, filter
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/phone/${phone}/activities
  • Return Format:
    • Success: 200 { success: true, result: result, hasMore: resp.data.hasMore }
    • Failure: 400 { success: false, error: 'Invalid input' }

contact_field.js​

Get All Contact Fields​

  • Route: /contactfields/all
  • Method: GET
  • Body: name, type, idCallcenter
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contactfields/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

contact_group.js​

Get All Contact Groups​

  • Route: /contactgroups
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroups
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contact Groups​

  • Route: /contactgroups/search
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroups/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Get Contacts of a Contact Group​

  • Route: /contactgroup/:id/contacts
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Add Contacts to a Contact Group​

  • Route: /contactgroup/:id/contacts
  • Method: POST
  • Params: id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Remove Contacts from a Contact Group​

  • Route: /contactgroup/:id/contacts
  • Method: DELETE
  • Params: id
  • Body: req.body
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contacts in a Contact Group​

  • Route: /contactgroup/:id/contacts/search
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroup/${id}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

contact.js​

Contacts​

  • Route: /contacts
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contacts​

  • Route: /contacts/search
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Create Contact​

  • Route: /contact
  • Method: POST
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/contact
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Get Contact​

  • Route: /contact/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Update Contact​

  • Route: /contact/:id
  • Method: PUT
  • Params: id
  • Body: req.body
  • Related API:
    • Access: PUT /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Delete Contact​

  • Route: /contact/:id
  • Method: DELETE
  • Params: id
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

integration.js​

Create HubSpot Engagement​

  • Route: /hubspot/engagement
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/engagement
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get HubSpot Engagement by ID​

  • Route: /hubspot/engagement/:id
  • Method: GET
  • Params: id
  • Related API:
    • Integration: GET /api/hubspot/engagement/${req.params.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Update HubSpot Engagement by ID​

  • Route: /hubspot/engagement/:id
  • Method: PUT
  • Params: id
  • Related API:
    • Integration: GET /api/hubspot/engagement/${id}
    • Integration: PUT /api/hubspot/engagement/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search HubSpot Contacts​

  • Route: /hubspot/contacts/search
  • Method: GET
  • Related API:
    • Integration: GET /api/hubspot/contacts/search
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Contact​

  • Route: /hubspot/contact
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/contact
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get HubSpot Tickets​

  • Route: /hubspot/tickets
  • Method: GET
  • Related API:
    • Integration: GET /api/hubspot/tickets/search?id=${req.query.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Ticket​

  • Route: /hubspot/ticket
  • Method: POST
  • Related API:
    • Integration: POST /api/hubspot/ticket
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Association​

  • Route: /hubspot/association
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/association
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Recent HubSpot Deals​

  • Route: /hubspot/deals/recent
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/hubspot/deals/recent
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search Integrator​

  • Route: /integrator/search
  • Method: GET
  • Query: host, phone
  • Related API:
    • Integration: POST/api/integrator/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Integrator Endpoint​

  • Route: /integrator/:endpoint
  • Method: POST
  • Query: host
  • Related API:
    • Integration: POST /api/integrator/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Integration by Template and Endpoint​

  • Route: /integration/:template_name/endpoint/:endpoint_name
  • Method: POST
  • Body: req.body
  • Params: template_name, endpoint_name
  • Related API:
    • Integration: POST /api/integrator/${template_name}/endpoint/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Vietguy SMS​

  • Route: /vietguy/sms
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/vietguy/sms
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search Nhanh Customers​

  • Route: /nhanh/customer/search
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/nhanh/customer/search
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Customers​

  • Route: /sapo/customers
  • Method: GET
  • Query: req.query
  • Body: req.body
  • Related API:
    • Integration: GET /api/sapo/customers
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Sapo Customer Note​

  • Route: /sapo/customers/note
  • Method: POST
  • Query: req.query
  • Body: req.body
  • Related API:
    • Integration: POST /api/sapo/customers/note
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Accounts​

  • Route: /sapo/accounts
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/sapo/accounts
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Account Details Integration​

  • Route: /sapo/accounts/:id
  • Method: GET
  • Params: id
  • Related API:
    • Integration: GET /api/sapo/accounts/${req.params.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Orders Integration​

  • Route: /sapo/orders
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/sapo/orders
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Mio Investor by Phone Integration​

  • Route: /mio/get-investor-by-phone
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/mio/get-investor-by-phone
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Post Brandname OTP Integration​

  • Route: /fpt/push-brandname-otp
  • Method: POST
  • Body: brandname
  • Related API:
    • Integration: POST /api/fpt/push-brandname-otp
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

session-iam.js​

Session​

  • Route: /session
  • Method: GET
  • Related API:
  • Return Format:
    • Success: 200 { success: true, result: {...user,sip: sip,status: status}}
    • Failure: 400 { success: false, error: 'Invalid input' }

Signout​

  • Route: /signout
  • Method: POST
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

session.js​

Signin​

  • Route: /signin
  • Method: POST
  • Body: email, password
  • Related API:
    • access: POST /signin
  • Return Format:
    • Success: 200 res.json(response)
    • Failure: 400 { success: false, error: { message: error.message } }

Session​

  • Route: /session
  • Method: GET
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true, result: user })
    • Failure: 400 { success: false, error: 'Invalid input' }

Signout​

  • Route: /signout
  • Method: POST
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

Forget Password​

  • Route: /forgetpassword
  • Method: POST
  • Body: email
  • Related API:
    • access: POST /confirm
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

template.js​

Create Template​

  • Route: /template
  • Method: POST
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/template
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Template by ID​

  • Route: /template/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/template/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Delete Template by ID​

  • Route: /template/:id
  • Method: DELETE
  • Params: id
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/template/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get All Templates​

  • Route: /templates/all
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/templates/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }