Skip to content
Overview

Presets

Custom

Inspect components

List page

One list screen for every table in the product. Engagement history, job post history and users share the same chrome: stat cards, a filter bar, column headers, selectable rows, pagination and an empty state. Only the columns, filters and rows change.

Built from views/components/module-list.blade.php views/components/profile-widgets.blade.php views/agent/job-posts.blade.php

Full page

The composed screen, built from kit components and the rows documented on the Profile page.

List type

Engagement history

Every call, chat, email and ticket you handled

ChannelCustomerWhenConversationDurationOutcome
Call

Joseph Otieno

Savanna Dental Care

When

Today

10:41

Conversation
0:00 6:12
Duration6:12 OutcomeBooked
Chat

Peter Njoroge

Mara Home Services

When

Today

09:15

Conversation Duration14:40 OutcomeResolved

Transcript preview

Open full transcript
  1. Peter Njoroge, 09:15

    Hi, can someone fix a leaking kitchen tap tomorrow?

  2. Amina Hassan, 09:16

    Yes, a plumber is free from 10:00. Shall I book you in for Kileleshwa?

  3. Peter Njoroge, 09:17

    10:00 works. How much is the call-out fee?

  4. Amina Hassan, 09:18

    KES 1,500 for the visit, parts at cost. You're booked for tomorrow at 10:00.

Showing 4 of 18 messages

Email

Grace Achieng

Upland Motors

When

Yesterday

16:20

Conversation Thread, 4 messages DurationNone OutcomeFollow-up
Ticket

Samuel Kiprono

Upland Motors

When

21 Sep

11:02

Conversation #TK-2041, open ticket Duration2 d 4 h OutcomeEscalated
Call

+254 733 908 112

Savanna Dental Care

When

20 Sep

18:02

Conversation
0:00 0:48
Duration0:48 OutcomeVoicemail
Chat

Wanjiru Kamau

Savanna Dental Care

When

20 Sep

14:22

Conversation Duration6:05 OutcomeBooked

Transcript preview

Open full transcript
  1. Wanjiru Kamau, 14:22

    Hello, do you have a slot for a cleaning this Saturday?

  2. Amina Hassan, 14:23

    We do: 10:30 with Dr Otieno. Shall I book it under the number ending 457?

  3. Wanjiru Kamau, 14:24

    Yes please. Is a cleaning covered by my insurance?

Showing 3 of 9 messages

Call

Daniel Mutua

Mara Home Services

When

19 Sep

11:30

ConversationNo recording DurationNone OutcomeMissed
Call

Faith Njeri

Upland Motors

When

19 Sep

09:05

Conversation
0:00 12:05
Duration12:05 OutcomeResolved

No engagements match these filters

Try another channel or outcome, or clear the search.

Job postBusinessChannelsRateStatusDate

Front desk calls, weekday mornings

Mon–Fri, 08:00–13:00

Savanna Dental Care ChannelsCalls, chat RateKES 450/hr StatusShortlisted Date24 Sep 2026

Bilingual live chat, English and Kiswahili

Evenings, 20 hours a week

Mara Home Services ChannelsChat, email RateKES 380/hr StatusApplied Date22 Sep 2026

Appointment reminders, Saturday shift

Sat, 09:00–13:00

Savanna Dental Care ChannelsCalls RateKES 400/hr StatusApplied Date18 Sep 2026

After-hours roadside assistance line

Nights, rotating

Upland Motors ChannelsCalls RateKES 520/hr StatusHired Date10 Sep 2026

Weekend support tickets

Sat–Sun, 10 hours a week

Mara Home Services ChannelsTickets, chat RateKES 420/hr StatusHired Date2 Sep 2026

Claims follow-up by email

Flexible, 15 hours a week

Kilele Insurance ChannelsEmail, tickets RateKES 400/hr StatusClosed Date28 Aug 2026

No job posts match these filters

Try another status or channel, or clear the search.

UserRoleStatusLast activeJoined
Brian Mwangibrian.mwangi@example.com RoleAgent StatusActive Last active2 min ago JoinedMar 2025
Faith Wambuifaith.wambui@example.com RoleAgent StatusPending Last activeNever JoinedSep 2026
Amina Wafulaamina@savannadental.co.ke RoleBusiness StatusActive Last activeYesterday JoinedFeb 2025
Amina Hassanamina.hassan@example.com RoleAgent StatusActive Last activeOnline now JoinedJan 2024
Joyce Kendijoyce.kendi@bcs.co.ke RoleAdmin StatusActive Last active1 h ago JoinedJun 2024
Kevin Ochiengkevin.ochieng@example.com RoleAgent StatusSuspended Last active3 days ago JoinedJan 2026

No users match these filters

Try another role or status, or clear the search.

Showing 1–8 of 214

Try it: switch the list type above the screen, search or pick filters (a set filter turns primary-tinted with a clear button), and pick filters that match nothing to see the empty state. Select rows with their checkboxes, a click on the row, or Space on a focused row; Up and Down move between rows. The checkbox carries the selection, so the rows stay plain table rows with no aria-selected, as in the Data table: a selected row gets the darker primary tint and bar, a focused row only an outline. Export downloads the list as CSV. This is one specimen with a type switch rather than three because <x-module-list> is one template: the type only swaps the columns, filters and row partial, so everything else stays identical. The engagement and job post rows are the profile page's Engagement history row and Job post history row. The sidebar rail opens over the list, so the table doesn't reflow, and below 720px it folds into the menu button.

Parts

Pieces that only exist on this screen. The filter bar, pagination and data table rows are in the component showcase.

No engagements match these filters

Try another channel or outcome, or clear the search.

No job applications yet

Job posts you apply to show up here, with where each application stands.

The source shows a grey inbox icon and "No records found" for both cases. Saying which case it is tells people whether to change the filters or go and create something. It is the same .bcs-empty as the standalone Empty state; it sits in the table, so it leaves out the dashed edge (.is-boxed).

Built from resources/ on 24 September 2026. Components render with the Tailwind v4 browser build, Alpine 3.14 and Font Awesome 6.4, the same stack the app uses. The one-line catalogue is in ui-components.md.