View tickets related to a user

Please be sure of your agent type and version and pick the right documentation accordingly.

This is the documentation of the forest-express-sequelize and forest-express-mongoose Node.js agents that will soon reach end-of-support.

forest-express-sequelize v9 and forest-express-mongoose v9 are replaced by @forestadmin/agent v1.

Please check your agent type and version and read on or switch to the right documentation.

Now, let's say we want to access the tickets for a user of my database. We are going to use the email address as the foreign key between the database model (Users table) and Zendesk tickets.

First, we need to create the Smart Relationship between Users and zendesk_tickets as follows:

forest/users.js
collection('users', {
  actions: [],
  fields: [
    {
      field: 'ze_requested_tickets',
      type: ['String'],
      reference: 'zendesk_tickets.id',
    },
  ],
  segments: [],
});

Then, we need to implement the Smart Relationship route. This route will query the Zendesk tickets related to the user's email (requested field on zendesk_tickets).

routes/users.js
const { getTickets } = require('../services/zendesk-tickets-service');

router.get(
  '/users/:userId/relationships/ze_requested_tickets',
  async (request, response, next) => {
    // Get the user email for filtering on requester
    const user = await users.findByPk(request.params.userId);
    const additionalFilter = `requester:${user.email}`;
    getTickets(request, response, next, additionalFilter);
  }
);

Now, you should see the requested tickets for a user:

Last updated