Skip to content

Proposal: global search command across conversations, contacts, messages, and articles #22

@dnikolaev

Description

@dnikolaev

Summary

I'd like to add a top-level chatwoot search "<query>" command that returns matches across conversations, contacts, messages, and help-center articles in one call, with --only=<bucket> to restrict the output. This complements the existing per-resource search (contacts --search, convs --query) with a single cross-resource entry point.

Endpoint

It would call the account-scoped dashboard search endpoint:

GET /api/v1/accounts/{account_id}/search          # all four buckets

This is what the Chatwoot dashboard's global search uses (Api::V1::Accounts::SearchController). Two questions before I open the PR:

  1. Is /search a supported API surface for the CLI to depend on? It isn't in the published OpenAPI spec (internal/sdk/testdata/application_swagger.json only lists /contacts/search), so I'd cover it with httptest-based tests rather than the swagger contract harness — matching the existing internal/cmd/*_test.go. Happy to add the path to the bundled spec instead if you'd prefer to treat it as official.
  2. Top-level command vs. flag? A new top-level search reads naturally for cross-bucket search, but it overlaps conceptually with contacts --search / convs --query. Would you prefer a top-level command, or a different shape?

Follow-up (separate PR)

A second, optional PR adds date-range filtering (--after / --before / --on, --tz) mapping to since / until query params on /search. Heads-up: those params are also dashboard-internal (not in the published spec) and only take effect when the account has the advanced_search feature — so it's cleanly separable and easy to defer.

Both PRs are ready to open once you confirm the direction. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions