Skip to content

Podcasts

When a Podcast is published or updated in Sanity, the system fetches type-specific fields in addition to the general variables. Podcasts share much of their logic with Webinars — including localized speakers and regional record creation — but with key differences.

Source file: algolia/custom_actions/types/getResourcesData.js


FieldSourceDescription
typeNameclient.fetch(queryTypeName)Localized display name from post_type_names (not webinar_types)
is_visibleprops.draft?.is_hiddenVisibility flag (inverted: true if not hidden)
is_webinarHardcoded falseDistinguishes podcasts from webinars
type_slugInitially ['podcasts'], then overriddenPodcast type slug
audiences_slugfetchTaxonomiesSlug()Target audience slugs
languages_slugfetchTaxonomiesRepeaterSlug()Available language slugs
regions_slugfetchTaxonomiesRepeaterSlug()Region slugs for regional filtering
regionsfetchWebinarLanguages()Localized region names
aundiences_languagesfetchEventsTaaxonomies()Localized audience names
regions_infoprops?.draft?.repeaterRaw region repeater data
organizersGROQ query on peopleSpeakers with localized job titles

AspectWebinarsPodcasts
is_webinartruefalse
typeName sourcewebinar_types taxonomypost_type_names global
type_slug initial valueFrom webinar_typesHardcoded ['podcasts']

Podcasts use the same localized speaker logic as webinars. See the Webinars documentation for the full implementation details.

The logic checks has_localized_speakers:

  • true → Speakers are grouped by region.
  • false → All speakers apply to every region.

Like webinars, a separate Algolia record is created for each region. The date resolution differs slightly:

date: customerData.regions_info[index].manual_date || type == 'podcasts'
? customerData.regions_info[index].date
: customerData.regions_info[index].webinar_date

For podcasts, the system uses date from the region info (not webinar_date), since they always match the type == 'podcasts' condition.

See the Webinars documentation for the full regional record creation code.