Skip to main content
Skip to content
Start a project
123Sonography / Drupal + AI / Search & discovery

Find the course. Understand the match.

Learners may know what they want to learn without knowing which course covers it. SDEV built Smart Search for 123Sonography to connect that intent with course and lecture content, helping learners explore relevant options with reasons for each recommendation.

SDEV contribution
Semantic search, custom Drupal development, campaign integration and guided discovery
Platform foundation
Drupal · Search API · Drupal AI Search · OpenAI · Pinecone · Matomo
Engagement
Live course-discovery feature
Project timeline
Launched 3 June 2026
01 / The challenge

The knowledge is there.The right course is harder to find.

A course title cannot describe every technique covered inside its lectures. Learners may know what they want to learn and still miss the relevant course because their terminology differs from the catalogue.

The same search can mean something different to a cardiologist and an emergency physician. SDEV’s task was to connect those learning goals with the teaching material, audience context and real courses already held in Drupal.

02 / What SDEV built

Semantic discovery. Platform control.

SDEV built a custom Drupal search that looks beyond course titles into lecture content. Relevant lecture matches lead back to their courses, helping learners discover teaching material through the topics and techniques they have in mind.

Drupal checks eligible courses and ranks recommendations using search, campaign and learner context. AI can explain the results, while editors maintain the search journey and its copy.

03 / The learner journey

One search.Several useful ways forward.

  1. Start with a learning goal

    A learner enters a topic, technique or skill. Suggested searches and campaign context can provide a relevant starting point.

  2. Discover relevant courses

    Search retrieves course and lecture material. Drupal brings eligible courses together and ranks them, with reasons and an optional AI explanation.

  3. Refine the recommendations

    Duration and CME filters help learners narrow results. When search finds no match, structured questions about role, interests and experience offer another route.

  4. Keep a useful starting point

    Learners can revise their choices or return to the original query. If no suitable course is found, an editor-configured newsletter follow-up offers a way to stay connected.

04 / Platform architecture

AI retrieves and explains. Drupal decides.

Catalogue preparation

Relevant teaching material often sits inside a lecture rather than in a course title. SDEV indexes both course records and processed lectures, using Search API, Drupal AI Search, OpenAI embeddings and separate Pinecone collections.

Search & recommendation

Drupal connects lecture matches to their courses, checks publication and access, and ranks eligible results. Campaign and learner context help refine the selection before an explanation is generated.

OpenAI can explain the ranked recommendations. Drupal reason labels and editor-written templates also support the journey when generative explanations are disabled or unavailable.

Smart SearchPlatform architecture
Catalogue preparation
sg_course entitiesCourse catalogue

Course content · Audience · Interests
Duration · CME · Experience

ai_metadata entitiesLecture knowledge

Processed lecture text · Context
Parent-course relationships

Search API · Drupal AI Search
Context-aware index preparation

Chunking + metadata

OpenAI creates embeddings from the course and lecture text.

Pinecone vector storage
Course namespaceLecture namespace
The source content and its relationships remain in Drupal.
Search & recommendation
Learner intentSearch query

OpenAI query embedding
Search both Pinecone indexes

Campaign contextDrupal Campaign

UTM term · Category restrictions
Audience · Interests · Experience

Semantic hits + available context
Custom Drupal services

Validate & rank

Lecture hits → parent courses · Deduplicate
Combine semantic and learner-fit signals

  • Active & public
  • Visitor access
  • Campaign category
Explain the existing resultsOptional OpenAI summary · Drupal-generated reason labels
Editor-written templates when AI text is disabled or unavailable
Best match & alternative coursesRelative relevance indicators · Grounded reasons
Choose the next routeResults: practical filters first
No match: guided role, interests & experience first
Service failure: report an error
Refine, edit or resetStructured Drupal matching · Duration & CME filters
Retain the original query · Configured newsletter follow-up
Matomo records the discovery route and selected campaign context.
Index preparation and the search journey share the Drupal catalogue. Generative text explains courses already selected and ranked by Drupal.
05 / Ongoing development

A live feature.Room to keep learning.

The catalogue and its audiences change over time. Editors can adapt campaign targeting, suggested searches, interface copy and follow-up routes in Drupal without moving the search journey into a separate application.

Matomo records semantic, guided and filter searches with campaign context, giving the team a basis for reviewing discovery and refining the experience.

  1. Foundation

    Connect courses and lecture knowledge

    Build semantic discovery around the existing Drupal catalogue and processed educational content.

  2. Smart Search launches

    Course discovery brings together semantic retrieval, campaign-aware ranking, explanations and controlled follow-up routes.

  3. TodayWe are here

    A live, editor-controlled search journey

    Campaigns, catalogue relationships and search settings remain owned by Drupal, with distinct routes recorded for review.

  4. Possible next steps

    Refine the discovery experience

    Potential work includes clearer learning-goal prompts, richer recommendation context and further refinement of the guided journey. These are directions for discussion, rather than announced releases.

Common questions

The detailsthat matter.

SDEV & delivery

What did SDEV build?

SDEV developed a custom Drupal search feature combining semantic retrieval, course ranking, campaign configuration, recommendation explanations and guided follow-up routes.

How is this different from SonoAssistant?

Smart Search helps learners discover courses. SonoAssistant answers educational questions with supporting knowledge and media. They are separate projects within 123Sonography’s Drupal platform.

Can SDEV apply this approach to another catalogue?

The approach can be adapted to other structured catalogues. The work starts with the content, access rules, audiences and discovery journeys that the platform needs to support.

Drupal & AI technology

What do OpenAI and Pinecone do?

OpenAI creates embeddings for catalogue content and queries. Pinecone searches the course and lecture vectors. OpenAI can also write an explanation after Drupal has ranked the results.

Can a lecture surface its parent course?

Yes. Lecture content has its own search index. Drupal follows the lecture record’s course relationship and consolidates the recommendation with any direct course match.

Who decides which courses appear?

Drupal checks whether courses are active, public and viewable, applies configured restrictions, consolidates duplicates and ranks the eligible results. The generative explanation layer receives that existing result set.

Campaigns & editorial control

How do Google Ads campaigns connect?

An advertising link passes a UTM term in the URL. Drupal uses it to select an active Campaign entity or a default. The hand-off does not require a direct Google Ads API integration.

What can editors change?

Campaign targeting, audience context, suggested searches, introductions, loading copy, explanation guidance, summary templates and newsletter follow-up are maintained through Drupal content and settings.

How are search journeys measured?

Matomo records semantic, guided and filter-based searches separately, with the selected campaign context attached. Tracking does not need to be available for search to work.

Operation & development

What happens when AI does not return a useful match?

A legitimate no-match moves to structured role, interest and experience questions, then practical filters and configured newsletter follow-up. A search-service failure is reported separately as an error.

What does the match percentage mean?

It expresses relative relevance within the current result set. It is not a probability, medical confidence score or a measure of how much of a course matches the query.

What could come next?

Potential improvements include more useful learning-goal prompts, richer recommendation context and further refinement of guided discovery. Future scope would be agreed against catalogue needs and observed search behaviour.

Let’s make the next step useful

Make complex content easier to discover.

Bring us the catalogue, content and user journeys that your search needs to understand.

Start a project