{"users":[{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":100484,"username":"JammyDodger","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jammydodger/{size}/254611_2.png","trust_level":3},{"id":63921,"username":"eextra","name":"Sylwia","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eextra/{size}/170266_2.png","trust_level":2},{"id":77477,"username":"b4oshany","name":"Oshane Bailey","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/b4oshany/{size}/176298_2.png","trust_level":2},{"id":68638,"username":"ClawdiaWolf","name":"Claudia","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/clawdiawolf/{size}/262518_2.png","trust_level":2},{"id":16295,"username":"cogdog","name":"Alan Levine","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/cogdog/{size}/116536_2.png","trust_level":2},{"id":24816,"username":"RBoy","name":"RBoy","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/{size}.png","trust_level":2},{"id":133767,"username":"petermarkley","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/petermarkley/{size}/307825_2.png","trust_level":1},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/canapin/{size}/119591_2.png","trust_level":3},{"id":138567,"username":"pHneutre","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/phneutre/{size}/326831_2.png","trust_level":2},{"id":79696,"username":"Jim_Starkweather","name":"Jim Starkweather","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jim_starkweather/{size}/181916_2.png","trust_level":2},{"id":19,"username":"eviltrout","name":"Robin Ward","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eviltrout/{size}/5275_2.png","trust_level":4},{"id":14353,"username":"simon","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/simon/{size}/339122_2.png","trust_level":2},{"id":111706,"username":"kiefferr","name":"Ryan Kieffer","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/a5b964/{size}.png","trust_level":2},{"id":19189,"username":"rkda","name":"RK","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/rkda/{size}/120046_2.png","trust_level":2},{"id":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/david/{size}/157490_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":43426,"username":"debryc","name":"Deborah Chang","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/debryc/{size}/101652_2.png","trust_level":2},{"id":193655,"username":"Devansh_Bartwal","name":"Devansh Bartwal","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/devansh_bartwal/{size}/489793_2.png","trust_level":0},{"id":131037,"username":"GregorSondermeier","name":"Gregor Sondermeier","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gregorsondermeier/{size}/299039_2.png","trust_level":2},{"id":172380,"username":"Michael_Liu","name":"Michael Liu","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/michael_liu/{size}/494049_2.png","trust_level":2},{"id":53853,"username":"markschmucker","name":"Mark S","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/markschmucker/{size}/141599_2.png","trust_level":2},{"id":153707,"username":"Stefan_Holmes","name":"Stefan Holmes","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/stefan_holmes/{size}/436043_2.png","trust_level":0},{"id":108257,"username":"MarkDoerr","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/markdoerr/{size}/549630_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":151433,"username":"luigi7up","name":"Luka","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/luigi7up/{size}/477213_2.png","trust_level":1},{"id":1,"username":"sam","name":"Sam Saffron","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sam/{size}/102149_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":80639,"username":"murphyke","name":"Kevin Murphy","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/murphyke/{size}/184302_2.png","trust_level":1},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":8722,"username":"Falco","name":"Falco","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/falco/{size}/179432_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":4},{"id":41681,"username":"silvacarl","name":"Carl L Silva","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/s/a3d4f5/{size}.png","trust_level":2},{"id":135271,"username":"Aaron_Walsh","name":"Aaron Walsh","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/aaron_walsh/{size}/312661_2.png","trust_level":2},{"id":32,"username":"codinghorror","name":"Jeff Atwood","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/codinghorror/{size}/110067_2.png","admin":true,"trust_level":2},{"id":39292,"username":"davidkingham","name":"David Kingham","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/davidkingham/{size}/119528_2.png","trust_level":2},{"id":15900,"username":"dax","name":"Daniela","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dax/{size}/244677_2.png","primary_group_name":"VolunteerMods","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"moderator":true,"trust_level":3},{"id":160255,"username":"Jeff_Bull","name":"Jeff Bull","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jeff_bull/{size}/479571_2.png","trust_level":1},{"id":25764,"username":"ask","name":"Ask Bjørn Hansen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ask/{size}/121327_2.png","trust_level":1},{"id":141800,"username":"Chukwithak","name":"Charlie King","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/chukwithak/{size}/348914_2.png","trust_level":2},{"id":138550,"username":"TonyG","name":"Tony G","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/t/f14d63/{size}.png","trust_level":2},{"id":20328,"username":"reverend_paco","name":"Daniel Eklund","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/b5ac83/{size}.png","trust_level":1},{"id":25348,"username":"JagWaugh","name":"Andrew Waugh","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jagwaugh/{size}/69335_2.png","trust_level":2},{"id":2681,"username":"uckelman","name":"Joel Uckelman","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/uckelman/{size}/103854_2.png","trust_level":2},{"id":161179,"username":"Horam","name":"Horam Shaloodegi","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/horam/{size}/463097_2.png","trust_level":0},{"id":145529,"username":"Deenius","name":"Daniel Jurnik","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/deenius/{size}/369129_2.png","trust_level":2},{"id":21029,"username":"pmusaraj","name":"Penar Musaraj","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pmusaraj/{size}/119489_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":64663,"username":"patrickemin","name":"Patrick EMIN","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/patrickemin/{size}/520162_2.png","trust_level":2},{"id":113325,"username":"piffy","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/piffy/{size}/254198_2.png","trust_level":2},{"id":167045,"username":"jorge-gbs","name":"Jorge Fernandez","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jorge-gbs/{size}/478482_2.png","trust_level":1},{"id":71041,"username":"satonotdead","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/satonotdead/{size}/447830_2.png","trust_level":2},{"id":59800,"username":"SHilser","name":"Stefan Hilser","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/shilser/{size}/142688_2.png","trust_level":2},{"id":66698,"username":"Dan_Turner","name":"Dan Turner","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dan_turner/{size}/138935_2.png","trust_level":2},{"id":152405,"username":"crossheadscrewdriver","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/c/7c8e57/{size}.png","trust_level":2},{"id":140592,"username":"Ric","name":"Ric Harvey","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ric/{size}/455867_2.png","trust_level":2},{"id":155711,"username":"tanya_byrne","name":"kukulaka","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/tanya_byrne/{size}/444826_2.png","trust_level":2},{"id":160470,"username":"francis_exalate","name":"Francis Martens (Exalate)","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/francis_exalate/{size}/461390_2.png","trust_level":2},{"id":1495,"username":"blake","name":"Blake Erickson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/blake/{size}/157322_2.png","trust_level":2},{"id":8571,"username":"tobiaseigen","name":"Tobias Eigen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/tobiaseigen/{size}/539204_2.png","trust_level":2},{"id":120090,"username":"twofoursixeight","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/twofoursixeight/{size}/493036_2.png","flair_name":"theme_creator","flair_url":"palette","flair_bg_color":"ddd","flair_color":"111","flair_group_id":84,"trust_level":2},{"id":178292,"username":"nicks","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/n/4af34b/{size}.png","trust_level":0},{"id":173218,"username":"gilles","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gilles/{size}/549022_2.png","trust_level":3},{"id":59827,"username":"Hifihedgehog","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/hifihedgehog/{size}/140207_2.png","trust_level":2},{"id":81794,"username":"Kartoon","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/e36b37/{size}.png","trust_level":2},{"id":124929,"username":"Crius","name":"Crius","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/crius/{size}/317214_2.png","trust_level":2},{"id":64555,"username":"DavidO","name":"David","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/d/f475e1/{size}.png","trust_level":2},{"id":43281,"username":"Serginho_Cintra","name":"Serginho Cintra","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/s/aca169/{size}.png","trust_level":1},{"id":38292,"username":"RCheesley","name":"Ruth Cheesley","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/rcheesley/{size}/455409_2.png","trust_level":2},{"id":127446,"username":"gormus","name":"Osman Görmüş","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gormus/{size}/428592_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/moin/{size}/554653_2.png","trust_level":3},{"id":127856,"username":"Lilly","name":"Lillian ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/lilly/{size}/555832_2.png","trust_level":3},{"id":130099,"username":"colin.mckibben","name":"Colin McKibben","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/colin.mckibben/{size}/307951_2.png","trust_level":2},{"id":137610,"username":"Santa_Claus","name":"Santa Claus","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/santa_claus/{size}/313731_2.png","trust_level":1},{"id":131569,"username":"fbpbdmin","name":"deepblue","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/fbpbdmin/{size}/300893_2.png","trust_level":2},{"id":182574,"username":"anoedo","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/a/bc8723/{size}.png","trust_level":2}],"primary_groups":[{"id":47,"name":"team"},{"id":276,"name":"VolunteerMods"}],"flair_groups":[{"id":47,"name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":142,"name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":84,"name":"theme_creator","flair_url":"palette","flair_bg_color":"ddd","flair_color":"111"},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/documentation/integrations/167?page=1","per_page":30,"top_tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":330,"name":"rest-api","slug":"rest-api"},{"id":543,"name":"ai","slug":"ai"},{"id":230,"name":"chat-integration","slug":"chat-integration"},{"id":816,"name":"platforms","slug":"platforms"},{"id":263,"name":"discourseconnect","slug":"discourseconnect"},{"id":755,"name":"social-auth","slug":"social-auth"},{"id":817,"name":"tasks","slug":"tasks"},{"id":126,"name":"data-explorer","slug":"data-explorer"},{"id":43,"name":"embedding","slug":"embedding"},{"id":482,"name":"reference","slug":"reference"},{"id":818,"name":"zapier","slug":"zapier"},{"id":617,"name":"analytics","slug":"analytics"},{"id":279,"name":"auth-plugins","slug":"auth-plugins"},{"id":271,"name":"configuring","slug":"configuring"},{"id":375,"name":"deprecation","slug":"deprecation"},{"id":39,"name":"email","slug":"email"},{"id":384,"name":"gamification","slug":"gamification"},{"id":1099,"name":"google","slug":"google"},{"id":872,"name":"google-workspace","slug":"google-workspace"},{"id":799,"name":"index","slug":"index"},{"id":233,"name":"oauth2","slug":"oauth2"},{"id":234,"name":"patreon","slug":"patreon"},{"id":484,"name":"tutorial","slug":"tutorial"},{"id":107,"name":"webhooks","slug":"webhooks"},{"id":215,"name":"zendesk","slug":"zendesk"}],"topics":[{"fancy_title":"Integrations Index","fancy_title_localized":false,"locale":"en","id":308033,"title":"Integrations Index","slug":"integrations-index","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-05-15T06:03:51.015Z","last_posted_at":"2024-05-15T06:03:51.127Z","bumped":true,"bumped_at":"2026-04-03T23:05:47.114Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Documentation about connecting Discourse with other platforms and services. \nGeneral\n\nCreate API keys: Create and configure an API key\nScoped API keys: Use scoped API Keys\nEmbed topics list: Embed a list of Discourse top&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":799,"name":"index","slug":"index"}],"tags_descriptions":{"index":"Documentation category index topics."},"views":964,"like_count":4,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A comprehensive list of documentation links for integrating Discourse with various platforms, services, and APIs, including chat integrations, API usage, and third-party service configurations.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":100484,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse REST API Documentation","fancy_title_localized":false,"locale":"en","id":22706,"title":"Discourse REST API Documentation","slug":"discourse-rest-api-documentation","posts_count":1,"reply_count":201,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_1024x474.gif","created_at":"2014-12-01T14:42:20.657Z","last_posted_at":"2014-12-01T14:42:20.905Z","bumped":true,"bumped_at":"2026-03-18T05:04:14.622Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Discourse API\nPlease view the Discourse API Documentation site for detailed info: \nhttps://docs.discourse.org \n\n:information_source: Authentication\nAPI requests must use HTTP header based authentication. Pass your Api-&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1524,"height":706,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b.gif"},{"max_width":1024,"max_height":1024,"width":1024,"height":474,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_1024x474.gif"},{"max_width":800,"max_height":800,"width":800,"height":370,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_800x370.gif"},{"max_width":600,"max_height":600,"width":600,"height":277,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_600x277.gif"},{"max_width":400,"max_height":400,"width":400,"height":185,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_400x185.gif"},{"max_width":300,"max_height":300,"width":300,"height":138,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_300x138.gif"},{"max_width":200,"max_height":200,"width":200,"height":92,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/c/8/7c8a349ac0853f9beb7863cd997e23750537b82b_2_200x92.gif"}],"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":482,"name":"reference","slug":"reference"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse"},"views":128194,"like_count":97,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":97,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse deprecated non-header API authentication as of April 2020, requiring API keys and usernames to be sent via HTTP headers for security, with exceptions for RSS and mail-receiver endpoints.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Generate new topics, posts and PM via IFTTT","fancy_title_localized":false,"locale":"en","id":61336,"title":"Generate new topics, posts and PM via IFTTT","slug":"generate-new-topics-posts-and-pm-via-ifttt","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c.png","created_at":"2017-04-20T16:30:45.305Z","last_posted_at":"2023-03-23T22:43:21.096Z","bumped":true,"bumped_at":"2026-06-08T21:52:07.575Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Want to use IFTTT to create new topics, posts and personal messages? Let’s get started! \nUsing Maker Webhooks of IFTTT service we can make Discourse API calls. For that we must generate API keys first. You can create API&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1007,"height":209,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c.png"},{"max_width":800,"max_height":800,"width":800,"height":166,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_800x166.png"},{"max_width":600,"max_height":600,"width":600,"height":124,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_600x124.png"},{"max_width":400,"max_height":400,"width":400,"height":83,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_400x83.png"},{"max_width":300,"max_height":300,"width":300,"height":62,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_300x62.png"},{"max_width":200,"max_height":200,"width":200,"height":41,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_200x41.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":817,"name":"tasks","slug":"tasks"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":11493,"like_count":26,"has_summary":false,"last_poster_username":"cogdog","category_id":167,"op_like_count":22,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users face issues with IFTTT integration due to API key and username being sent as GET params instead of headers, prompting alternatives like custom PHP scripts or Zapier for seamless Discourse integration.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":63921,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":77477,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":68638,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":16295,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configure Facebook login for Discourse","fancy_title_localized":false,"locale":"en","id":13394,"title":"Configure Facebook login for Discourse","slug":"configure-facebook-login-for-discourse","posts_count":38,"reply_count":114,"highest_post_number":210,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_1024x523.png","created_at":"2014-03-04T17:40:19.713Z","last_posted_at":"2026-06-03T12:45:59.346Z","bumped":true,"bumped_at":"2026-06-03T12:45:59.346Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":exclamation: As of February 2023, Meta has implemented a business verification requirement when publishing new and existing apps. \n\n:warning: Updating the Facebook app API or creating a new app will break existing login&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1394,"height":713,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":523,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_1024x523.png"},{"max_width":800,"max_height":800,"width":800,"height":409,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_800x409.png"},{"max_width":600,"max_height":600,"width":600,"height":306,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_600x306.png"},{"max_width":400,"max_height":400,"width":400,"height":204,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_400x204.png"},{"max_width":300,"max_height":300,"width":300,"height":153,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_300x153.png"},{"max_width":200,"max_height":200,"width":200,"height":102,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_200x102.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":755,"name":"social-auth","slug":"social-auth"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":332047,"like_count":138,"has_summary":false,"last_poster_username":"pHneutre","category_id":167,"op_like_count":77,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The tutorial for configuring Facebook login in Discourse is currently outdated because the provided developer link is broken and Meta's February 2023 business verification requirement has changed the setup process.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":24816,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":133767,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":138567,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Embed Discourse comments on another website via Javascript","fancy_title_localized":false,"locale":"en","id":31963,"title":"Embed Discourse comments on another website via Javascript","slug":"embed-discourse-comments-on-another-website-via-javascript","posts_count":128,"reply_count":311,"highest_post_number":491,"image_url":null,"created_at":"2015-08-10T18:20:46.333Z","last_posted_at":"2026-06-02T19:14:05.544Z","bumped":true,"bumped_at":"2026-06-02T19:14:05.544Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse has the ability to embed the comments from a topic in a remote site using a Javascript API that creates an IFRAME. For an example of this in action, check out Coding Horror’s blog. The blog is run via Ghost b&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":43,"name":"embedding","slug":"embedding"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":302993,"like_count":281,"has_summary":true,"last_poster_username":"kiefferr","category_id":167,"op_like_count":116,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss embedding Discourse comments on external sites, noting that private forums on separate domains block display for non-logged-in users and that HTTP 419 errors may stem from CSRF token mismatches between disconnected domains.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":79696,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":19,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":14353,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":111706,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Set up Slack notifications using the discourse-chat-integration plugin","fancy_title_localized":false,"locale":"en","id":66730,"title":"Set up Slack notifications using the discourse-chat-integration plugin","slug":"set-up-slack-notifications-using-the-discourse-chat-integration-plugin","posts_count":107,"reply_count":64,"highest_post_number":118,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257.png","created_at":"2017-07-24T16:45:28.351Z","last_posted_at":"2026-06-01T13:26:59.689Z","bumped":true,"bumped_at":"2026-06-01T13:26:59.689Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This <span class=\"hashtag-icon-placeholder\"></span>howto</span> describes how to setup the Slack provider included in discourse-chat-integration. \nIt allows posting notifications to Slack, managing rules using Slash Commands, and posting transcripts back to Discourse. Slas&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":564,"height":464,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257.png"},{"max_width":400,"max_height":400,"width":400,"height":329,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_400x329.png"},{"max_width":300,"max_height":300,"width":300,"height":246,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_300x246.png"},{"max_width":200,"max_height":200,"width":200,"height":164,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_200x164.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":230,"name":"chat-integration","slug":"chat-integration"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":33759,"like_count":194,"has_summary":true,"last_poster_username":"Devansh_Bartwal","category_id":167,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user inquired whether the discourse-chat-integration plugin allows tagging Slack users based on keywords used within the Discourse community.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":19189,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":43426,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":193655,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)","fancy_title_localized":false,"locale":"en","id":13045,"title":"Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)","slug":"setup-discourseconnect-official-single-sign-on-for-discourse-sso","posts_count":47,"reply_count":410,"highest_post_number":628,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_1024x297.jpeg","created_at":"2014-02-25T08:30:34.321Z","last_posted_at":"2026-05-27T03:47:22.487Z","bumped":true,"bumped_at":"2026-05-27T03:47:22.487Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"DiscourseConnect is a core Discourse feature that allows you to configure “Single Sign-On (SSO)” to completely outsource all user registration and login from Discourse to another site. Offered to our pro, business and en&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1632,"height":474,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":297,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_1024x297.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":232,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_800x232.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":174,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_600x174.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":116,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_400x116.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":87,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_300x87.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":58,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/d/0/d00e1a088a93b334b9cd7285854d904ed57ec417_2_200x58.jpeg"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":263,"name":"discourseconnect","slug":"discourseconnect"},{"id":60,"name":"sso","slug":"sso"},{"id":271,"name":"configuring","slug":"configuring"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":456096,"like_count":205,"has_summary":false,"last_poster_username":"markschmucker","category_id":167,"op_like_count":174,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report an error when logging in with SSO, suspecting conflicts with auth overrides like email, name, or username. They are investigating why Discourse attempts to create new users instead of authorizing existing ones.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":131037,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":172380,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":14353,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":53853,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Integrate Google Tag Manager with Google Analytics","fancy_title_localized":false,"locale":"en","id":47335,"title":"Integrate Google Tag Manager with Google Analytics","slug":"integrate-google-tag-manager-with-google-analytics","posts_count":5,"reply_count":33,"highest_post_number":99,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_1024x512.png","created_at":"2016-07-14T21:34:57.461Z","last_posted_at":"2025-01-26T17:47:40.953Z","bumped":true,"bumped_at":"2026-05-12T01:58:41.783Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide will help you set up Google Tag Manager and use it with Google Analytics on your Discourse site. Additionally, it covers configuring variables, triggers, and tags in Google Tag Manager to track pag&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1200,"height":601,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":512,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_1024x512.png"},{"max_width":800,"max_height":800,"width":800,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_800x400.png"},{"max_width":600,"max_height":600,"width":600,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_600x300.png"},{"max_width":400,"max_height":400,"width":400,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_400x200.png"},{"max_width":300,"max_height":300,"width":300,"height":150,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_300x150.png"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/8/a/58ab06a8429e5496f88caba5d30ad2a044c4ef2c_2_200x100.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":617,"name":"analytics","slug":"analytics"},{"id":816,"name":"platforms","slug":"platforms"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":25069,"like_count":50,"has_summary":false,"last_poster_username":"luigi7up","category_id":167,"op_like_count":47,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Google Tag Manager setup issue where Preview Mode isn't detecting the setup despite gtm.js loading correctly, user seeks help to resolve the detection problem.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":153707,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":108257,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":151433,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Auto-provisioning user accounts when SSO is enabled","fancy_title_localized":false,"locale":"en","id":399917,"title":"Auto-provisioning user accounts when SSO is enabled","slug":"auto-provisioning-user-accounts-when-sso-is-enabled","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-03T23:04:25.441Z","last_posted_at":"2026-04-03T23:04:25.441Z","bumped":true,"bumped_at":"2026-04-03T23:04:25.734Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to auto-provision user accounts in Discourse when an external authentication provider is enabled, so that users are created automatically without being shown a signup page. \n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":114,"like_count":2,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The guide explains enabling auto-provisioning in Discourse by activating the auth skip create confirm setting to silently create user accounts during external SSO login without displaying a signup page.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configuring Amazon Bedrock services","fancy_title_localized":false,"locale":"en","id":340742,"title":"Configuring Amazon Bedrock services","slug":"configuring-amazon-bedrock-services","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_571x1024.png","created_at":"2024-12-05T22:23:55.169Z","last_posted_at":"2024-12-05T22:23:55.288Z","bumped":true,"bumped_at":"2026-04-02T04:19:06.865Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to configure API keys for Amazon Bedrock to enable Discourse AI features that require 3rd party LLM keys. \n:person_raising_hand: Required user level: Administrator \n\nIn this example, w&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":629,"height":1127,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4.png"},{"max_width":1024,"max_height":1024,"width":571,"height":1024,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_571x1024.png"},{"max_width":800,"max_height":800,"width":446,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_446x800.png"},{"max_width":600,"max_height":600,"width":334,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_334x600.png"},{"max_width":400,"max_height":400,"width":223,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_223x400.png"},{"max_width":300,"max_height":300,"width":167,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_167x300.png"},{"max_width":200,"max_height":200,"width":111,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/8/9/8/8988002fa2f591e6d85089d83e73803d7fad3ed4_2_111x200.png"}],"tags":[{"id":543,"name":"ai","slug":"ai"}],"tags_descriptions":{},"views":245,"like_count":3,"has_summary":false,"last_poster_username":"sam","category_id":167,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A guide details configuring Amazon Bedrock API keys for Discourse AI, covering authentication methods, supported Nova and Claude models, and settings for tool calling and tokenizers.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Trigger a Zapier task with Discourse Webhooks","fancy_title_localized":false,"locale":"en","id":56753,"title":"Trigger a Zapier task with Discourse Webhooks","slug":"trigger-a-zapier-task-with-discourse-webhooks","posts_count":1,"reply_count":29,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7.png","created_at":"2017-02-01T22:11:22.350Z","last_posted_at":"2017-02-01T22:11:22.521Z","bumped":true,"bumped_at":"2026-04-01T23:15:24.765Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Want to use Discourse Webhooks to trigger a task via Zapier? Let’s get started! \n\n:bulb: Tip: Zapier now has an official Discourse integration with built-in triggers and actions (e.g. “New Post”, “Create Post”). For&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":644,"height":287,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7.png"},{"max_width":600,"max_height":600,"width":600,"height":267,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7_2_600x267.png"},{"max_width":400,"max_height":400,"width":399,"height":178,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7_2_399x178.png"},{"max_width":300,"max_height":300,"width":300,"height":133,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7_2_300x133.png"},{"max_width":200,"max_height":200,"width":199,"height":89,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/c/5c75173876c8457037359eb056eff8e2392fa9d7_2_199x89.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":107,"name":"webhooks","slug":"webhooks"},{"id":817,"name":"tasks","slug":"tasks"},{"id":818,"name":"zapier","slug":"zapier"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem","webhooks":""},"views":22518,"like_count":32,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":32,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse Webhooks trigger a Zapier task to send an email on user events, such as creation, approval, or updates, using a webhook and JavaScript actions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Create a Data Explorer query using the API","fancy_title_localized":false,"locale":"en","id":394388,"title":"Create a Data Explorer query using the API","slug":"create-a-data-explorer-query-using-the-api","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2026-01-26T23:27:26.111Z","last_posted_at":"2026-03-29T19:46:03.737Z","bumped":true,"bumped_at":"2026-03-29T19:46:03.737Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Create a Data Explorer query with the API\n\n\n:bookmark: This how-to guide explains how to create a Data Explorer query using the Discourse API. \n:person_raising_hand: Required user level: Administrator \n\n\nPrerequisites\nB&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"},{"id":126,"name":"data-explorer","slug":"data-explorer"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":138,"like_count":9,"has_summary":false,"last_poster_username":"pfaffman","category_id":167,"op_like_count":6,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report that recent changes to the Data Explorer API, including a path modification and the requirement for a Global API key instead of Read-only, have broken existing tooling.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":80639,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Configure API Keys for OpenAI","fancy_title_localized":false,"locale":"en","id":280783,"title":"Configure API Keys for OpenAI","slug":"configure-api-keys-for-openai","posts_count":12,"reply_count":7,"highest_post_number":17,"image_url":null,"created_at":"2023-10-02T18:04:22.840Z","last_posted_at":"2024-11-11T07:04:27.420Z","bumped":true,"bumped_at":"2026-03-23T21:53:37.559Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to configure API keys for OpenAI to enable Discourse AI features that require 3rd party LLM keys. \n:person_raising_hand: Required user level: Administrator \n\nIn this example, we are us&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":543,"name":"ai","slug":"ai"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":3711,"like_count":16,"has_summary":false,"last_poster_username":"sam","category_id":167,"op_like_count":6,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users troubleshoot OpenAI API key configuration for Discourse AI, resolving issues with GPT-4 setup and testing API connectivity, while also exploring alternative models and third-party services.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8722,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":41681,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":135271,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Setup HubSpot chat Integration","fancy_title_localized":false,"locale":"en","id":128777,"title":"Setup HubSpot chat Integration","slug":"setup-hubspot-chat-integration","posts_count":11,"reply_count":7,"highest_post_number":11,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54.png","created_at":"2019-09-17T11:36:54.767Z","last_posted_at":"2025-06-17T01:02:56.568Z","bumped":true,"bumped_at":"2026-03-19T10:07:30.409Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Do you want to integrate a CSM on Discourse? Let’s see how to integrate the HubSpot chat on Discourse! \n\n\ncreate an account to HubSpot \n\n\nselect Chat \n  \n\n\ncustomize the interface and the availability as you wish \n    \n\n\n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":868,"height":548,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54.png"},{"max_width":800,"max_height":800,"width":800,"height":505,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54_2_800x505.png"},{"max_width":600,"max_height":600,"width":600,"height":378,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54_2_600x378.png"},{"max_width":400,"max_height":400,"width":400,"height":252,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54_2_400x252.png"},{"max_width":300,"max_height":300,"width":300,"height":189,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54_2_300x189.png"},{"max_width":200,"max_height":200,"width":200,"height":126,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/a/c/acfe32dbd0f74357186fc7f4a923a5f8a8fe4c54_2_200x126.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":4270,"like_count":18,"has_summary":false,"last_poster_username":"Jeff_Bull","category_id":167,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users successfully resolved Content Security Policy errors preventing HubSpot and other chat integrations on Discourse by whitelisting specific domains or using wildcard patterns, while one participant questioned the strategic value of such CRM connections.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":39292,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15900,"primary_group_id":276,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":160255,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Enable group sync from Google Workplace","fancy_title_localized":false,"locale":"en","id":226850,"title":"Enable group sync from Google Workplace","slug":"enable-group-sync-from-google-workplace","posts_count":8,"reply_count":1,"highest_post_number":9,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_1024x256.jpeg","created_at":"2022-05-12T10:04:51.108Z","last_posted_at":"2025-04-11T02:03:14.589Z","bumped":true,"bumped_at":"2026-03-19T04:38:23.630Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"To get started, configure Google login according to these instructions: \n\n\nThen, follow these steps: \n\n\nIn the google dashboard for your OAuth integration, go to “APIs and Services”, and add &quot;Admin SDK \n  →  →  \n\n\nGo to &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":481,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":256,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_1024x256.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_800x200.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":150,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_600x150.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":100,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_400x100.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":75,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_300x75.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":50,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/1/7/e1784be45bb85c6331b7854498bc10c1569031fd_2_200x50.jpeg"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":816,"name":"platforms","slug":"platforms"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1658,"like_count":14,"has_summary":false,"last_poster_username":"TonyG","category_id":167,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users inquire about feature stability to migrate Google Groups, seeking assurance to justify the change for their vested audience.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":25764,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":141800,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":138550,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Use Discourse as an identity provider (SSO, DiscourseConnect)","fancy_title_localized":false,"locale":"en","id":32974,"title":"Use Discourse as an identity provider (SSO, DiscourseConnect)","slug":"use-discourse-as-an-identity-provider-sso-discourseconnect","posts_count":143,"reply_count":88,"highest_post_number":157,"image_url":null,"created_at":"2015-09-07T09:19:21.886Z","last_posted_at":"2024-11-09T11:50:05.276Z","bumped":true,"bumped_at":"2026-03-18T05:06:15.759Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"So you want to use Discourse as an identity provider for your own web app? Great! Let’s get started. \n\nEnable DiscourseConnect provider setting\nUnder Discourse admin site settings (/admin/site_settings) enable setting en&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":263,"name":"discourseconnect","slug":"discourseconnect"},{"id":60,"name":"sso","slug":"sso"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":50740,"like_count":303,"has_summary":true,"last_poster_username":"Horam","category_id":167,"op_like_count":63,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Horam is experiencing issues with SSO implementation, enabling verbose logging and suspecting errors in creating SSO and signature (sig) due to a discrepancy in their generated values.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":20328,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":25348,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2681,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":161179,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Reverse engineer the Discourse API","fancy_title_localized":false,"locale":"en","id":20576,"title":"Reverse engineer the Discourse API","slug":"reverse-engineer-the-discourse-api","posts_count":1,"reply_count":19,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/3/b/e/3be9c7a1d786db61c7769cba00a53806a76fd0cb.png","created_at":"2014-09-29T01:22:40.277Z","last_posted_at":"2014-09-29T01:22:40.342Z","bumped":true,"bumped_at":"2026-03-18T05:03:34.118Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse is backed by a complete JSON api. Anything you can do on the site you can also do using the JSON api. \nThe API is documented at docs.discourse.org. You can also use the discourse_api Ruby gem as a client librar&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":526,"height":151,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/3/b/e/3be9c7a1d786db61c7769cba00a53806a76fd0cb.png"},{"max_width":400,"max_height":400,"width":400,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/3/b/e/3be9c7a1d786db61c7769cba00a53806a76fd0cb_2_400x114.png"},{"max_width":300,"max_height":300,"width":300,"height":86,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/3/b/e/3be9c7a1d786db61c7769cba00a53806a76fd0cb_2_300x86.png"},{"max_width":200,"max_height":200,"width":200,"height":57,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/3/b/e/3be9c7a1d786db61c7769cba00a53806a76fd0cb_2_200x57.png"}],"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":37567,"like_count":102,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":102,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse's JSON API allows replicating site actions via undocumented endpoints, reverse-engineered using browser dev tools to capture requests, payloads, and headers for custom API calls.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Use the Discourse API ruby gem","fancy_title_localized":false,"locale":"en","id":17587,"title":"Use the Discourse API ruby gem","slug":"use-the-discourse-api-ruby-gem","posts_count":1,"reply_count":39,"highest_post_number":1,"image_url":null,"created_at":"2014-07-15T03:29:14.922Z","last_posted_at":"2014-07-15T03:29:15.135Z","bumped":true,"bumped_at":"2026-03-18T05:02:54.558Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"So you want to use Discourse API? Great! Let’s get started. \nSet up Discourse development environment\nSet up Discourse development environment using our Windows, macOS or Ubuntu guide. \nClone Discourse API Gem\nNow that&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":24609,"like_count":29,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":29,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The initial statement provides a step-by-step guide to set up and use the Discourse API Ruby gem, including cloning the repository, installing dependencies, generating an API key, and configuring API credentials to interact with a Discourse instance.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configure Google login for Discourse","fancy_title_localized":false,"locale":"en","id":15858,"title":"Configure Google login for Discourse","slug":"configure-google-login-for-discourse","posts_count":6,"reply_count":170,"highest_post_number":261,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133.jpeg","created_at":"2014-05-21T22:46:55.403Z","last_posted_at":"2025-07-15T17:06:01.178Z","bumped":true,"bumped_at":"2026-03-18T04:55:52.622Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to set up Google login integration for your Discourse site by configuring OAuth2 credentials in the Google Cloud Console. \n:person_raising_hand: Required user level: Administrator \n\n\nO&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":690,"height":276,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":240,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133_2_600x240.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":160,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133_2_400x160.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":120,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133_2_300x120.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":80,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/9/b/d9b99b45a5ff9119c1d5715c2692d164ac075133_2_200x80.jpeg"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":755,"name":"social-auth","slug":"social-auth"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":237330,"like_count":166,"has_summary":false,"last_poster_username":"patrickemin","category_id":167,"op_like_count":165,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users are configuring Google login for Discourse via OAuth2, and one user successfully completed setup but encountered issues registering with Google on a PC without using an access key or phone verification.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":145529,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":21029,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":64663,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configure GitHub login for Discourse","fancy_title_localized":false,"locale":"en","id":13745,"title":"Configure GitHub login for Discourse","slug":"configure-github-login-for-discourse","posts_count":1,"reply_count":18,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/a/b/2/ab2b4133a0458fac605f491efa7b0235ead716df.png","created_at":"2014-03-14T20:47:14.134Z","last_posted_at":"2014-03-14T20:47:14.255Z","bumped":true,"bumped_at":"2026-03-18T04:27:53.145Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to set up GitHub as a login option for your Discourse forum by configuring OAuth credentials. \n:person_raising_hand: Required user level: Administrator \n\n\nOverview\nGitHub login integra&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":511,"height":525,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/a/b/2/ab2b4133a0458fac605f491efa7b0235ead716df.png"},{"max_width":400,"max_height":400,"width":389,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/b/2/ab2b4133a0458fac605f491efa7b0235ead716df_2_389x400.png"},{"max_width":300,"max_height":300,"width":292,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/b/2/ab2b4133a0458fac605f491efa7b0235ead716df_2_292x300.png"},{"max_width":200,"max_height":200,"width":194,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/b/2/ab2b4133a0458fac605f491efa7b0235ead716df_2_194x200.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":755,"name":"social-auth","slug":"social-auth"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":269658,"like_count":45,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":45,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The guide explains how to configure GitHub OAuth for Discourse login, including setting up an OAuth app on GitHub and entering credentials in Discourse admin settings.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Google Search for Discourse AI - Programmable Search Engine and Custom Search API","fancy_title_localized":false,"locale":"en","id":307107,"title":"Google Search for Discourse AI - Programmable Search Engine and Custom Search API","slug":"google-search-for-discourse-ai-programmable-search-engine-and-custom-search-api","posts_count":15,"reply_count":6,"highest_post_number":16,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_1024x474.jpeg","created_at":"2024-05-07T16:17:28.961Z","last_posted_at":"2026-03-14T14:28:20.287Z","bumped":true,"bumped_at":"2026-03-14T14:28:20.287Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: Deprecation Notice (March 2026): Google has discontinued the “Search the entire web” option for Programmable Search Engines. New search engines now require at least one specific site to be configured. Additi&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2320,"height":1074,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":474,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_1024x474.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":370,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_800x370.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":277,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_600x277.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":185,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_400x185.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":138,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_300x138.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":92,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/a/0/5/a052540cad7024ab9e108f191bf9a5e42ed54b96_2_200x92.jpeg"}],"tags":[{"id":543,"name":"ai","slug":"ai"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":2726,"like_count":22,"has_summary":false,"last_poster_username":"satonotdead","category_id":167,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report that Google's Programmable Search Engine now requires configured sites, preventing full-web searches, while the platform confirms the API is being discontinued and plans to support native LLM search tools and alternative providers.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":113325,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":167045,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":71041,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Set up Microsoft Teams notifications using the discourse-chat-integration plugin","fancy_title_localized":false,"locale":"en","id":159193,"title":"Set up Microsoft Teams notifications using the discourse-chat-integration plugin","slug":"set-up-microsoft-teams-notifications-using-the-discourse-chat-integration-plugin","posts_count":29,"reply_count":20,"highest_post_number":32,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_1024x887.jpeg","created_at":"2020-07-29T17:41:28.424Z","last_posted_at":"2025-08-08T12:06:20.528Z","bumped":true,"bumped_at":"2026-03-03T13:34:38.016Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This guide describes how to set up the Microsoft Teams provider included in discourse-chat-integration . \n\nSetup Microsoft Teams\nIn Microsoft Teams: \n\n\nFrom the vertical navigation bar on the left, click the ellipsis but&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":3388,"height":2936,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/0/5/3/053afb904a0384321467f621af3e583598486837.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":887,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_1024x887.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":693,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_800x693.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":519,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_600x519.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":346,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_400x346.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":259,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_300x259.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":173,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/0/5/3/053afb904a0384321467f621af3e583598486837_2_200x173.jpeg"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":230,"name":"chat-integration","slug":"chat-integration"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":5978,"like_count":61,"has_summary":false,"last_poster_username":"Ric","category_id":167,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss setting up Microsoft Teams notifications via the discourse-chat-integration plugin, addressing issues with webhook validation, plugin updates, and future plans to migrate from deprecated Office 365 connectors to Power Automate, while also considering security concerns like authentication methods.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":59800,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":66698,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":152405,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":140592,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Automate the syncing of Discourse queries to Google Sheets","fancy_title_localized":false,"locale":"en","id":394473,"title":"Automate the syncing of Discourse queries to Google Sheets","slug":"automate-the-syncing-of-discourse-queries-to-google-sheets","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-01-27T18:31:01.339Z","last_posted_at":"2026-01-27T18:31:01.416Z","bumped":true,"bumped_at":"2026-02-25T00:37:36.539Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Sync Discourse Data Explorer queries to Google Sheets\n\n:bookmark: This how-to guide explains how to automate importing Discourse Data Explorer query results into Google Sheets using Google Apps Script. \n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":126,"name":"data-explorer","slug":"data-explorer"},{"id":1099,"name":"google","slug":"google"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":87,"like_count":4,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"MarkDoerr explains how to automate syncing Discourse Data Explorer query results to Google Sheets using Google Apps Script, requiring admin access and API key setup for scheduled data imports.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Run Data Explorer queries with the Discourse API","fancy_title_localized":false,"locale":"en","id":120063,"title":"Run Data Explorer queries with the Discourse API","slug":"run-data-explorer-queries-with-the-discourse-api","posts_count":15,"reply_count":40,"highest_post_number":65,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_1024x154.png","created_at":"2019-06-11T19:43:38.864Z","last_posted_at":"2025-05-06T17:15:01.413Z","bumped":true,"bumped_at":"2026-02-25T00:35:53.467Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to use the Discourse API to create, run, and manage queries with the Data Explorer plugin. \n:person_raising_hand: Required user level: Administrator \n\nVirtually any action that can b&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1494,"height":226,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":154,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_1024x154.png"},{"max_width":800,"max_height":800,"width":800,"height":121,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_800x121.png"},{"max_width":600,"max_height":600,"width":600,"height":90,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_600x90.png"},{"max_width":400,"max_height":400,"width":400,"height":60,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_400x60.png"},{"max_width":300,"max_height":300,"width":300,"height":45,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_300x45.png"},{"max_width":200,"max_height":200,"width":200,"height":30,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/d/e/0/de08dc117fcce3b54d59f22def342e04f9cbe301_2_200x30.png"}],"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"},{"id":126,"name":"data-explorer","slug":"data-explorer"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":13663,"like_count":56,"has_summary":false,"last_poster_username":"blake","category_id":167,"op_like_count":40,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse API allows running Data Explorer queries with correct Content-Type headers and parameter passing, including JSON-encoded strings for multiple parameters.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":155711,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":160470,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1495,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configure Discord Login for Discourse","fancy_title_localized":false,"locale":"en","id":127129,"title":"Configure Discord Login for Discourse","slug":"configure-discord-login-for-discourse","posts_count":6,"reply_count":35,"highest_post_number":67,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_990x1024.png","created_at":"2019-08-30T09:54:29.236Z","last_posted_at":"2026-02-24T18:57:59.715Z","bumped":true,"bumped_at":"2026-02-24T18:57:59.715Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to set up and configure Discord as a login option for your Discourse forum, including how to restrict access to specific Discord guilds. \n:person_raising_hand: Required user level: Adm&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1065,"height":1101,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a.png"},{"max_width":1024,"max_height":1024,"width":990,"height":1024,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_990x1024.png"},{"max_width":800,"max_height":800,"width":773,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_773x800.png"},{"max_width":600,"max_height":600,"width":580,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_580x600.png"},{"max_width":400,"max_height":400,"width":386,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_386x400.png"},{"max_width":300,"max_height":300,"width":290,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_290x300.png"},{"max_width":200,"max_height":200,"width":193,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/c/7/c742e90b2fdc30b7ac631a922084246e67688e4a_2_193x200.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":48192,"like_count":42,"has_summary":false,"last_poster_username":"gilles","category_id":167,"op_like_count":34,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user resolved an OAuth2 redirect URL error after following the official Discourse guide, confirming the setup works when correctly configured in Discord’s OAuth2 redirects section.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8571,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":120090,"primary_group_id":null,"flair_group_id":84},{"extras":null,"description":"Frequent Poster","user_id":178292,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":173218,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configuring X login and rich embeds for Discourse","fancy_title_localized":false,"locale":"en","id":13395,"title":"Configuring X login and rich embeds for Discourse","slug":"configuring-x-login-and-rich-embeds-for-discourse","posts_count":143,"reply_count":138,"highest_post_number":231,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_1023x561.png","created_at":"2014-03-04T18:03:12.320Z","last_posted_at":"2026-01-20T22:37:19.838Z","bumped":true,"bumped_at":"2026-01-20T22:37:19.838Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to set up Twitter login and rich embeds for your Discourse forum. \n:person_raising_hand: Required user level: Administrator \n\n:warning: In order for rich embeds to work properly, a Bas&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2498,"height":1369,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":561,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_1023x561.png"},{"max_width":800,"max_height":800,"width":800,"height":438,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_800x438.png"},{"max_width":600,"max_height":600,"width":600,"height":328,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_600x328.png"},{"max_width":400,"max_height":400,"width":400,"height":219,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_400x219.png"},{"max_width":300,"max_height":300,"width":300,"height":164,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_300x164.png"},{"max_width":200,"max_height":200,"width":200,"height":109,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e18dfbeb61674e5ea1abfa259888bdcfcc46ea_2_200x109.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":755,"name":"social-auth","slug":"social-auth"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":227571,"like_count":311,"has_summary":true,"last_poster_username":"DavidO","category_id":167,"op_like_count":75,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users are discussing whether the requirement for a paid X Dev plan to enable rich embeds should be more prominently highlighted, as the free plan does not support this feature.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":59827,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":81794,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":124929,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":64555,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configure sign up and log in with Auth0 using the OAuth2 Basic Plugin","fancy_title_localized":false,"locale":"en","id":64633,"title":"Configure sign up and log in with Auth0 using the OAuth2 Basic Plugin","slug":"configure-sign-up-and-log-in-with-auth0-using-the-oauth2-basic-plugin","posts_count":74,"reply_count":53,"highest_post_number":80,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_1024x965.gif","created_at":"2017-06-16T20:45:59.204Z","last_posted_at":"2025-12-16T09:31:17.213Z","bumped":true,"bumped_at":"2025-12-16T09:31:17.213Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"If you are using Auth0 as your identity provider this guide will show you how to setup authentication using the Discourse OAuth2 Basic Plugin. \n\nInitial Steps\n\nCreate an Auth0 account if you don’t already have one\nThe Di&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1793,"height":1691,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5.gif"},{"max_width":1024,"max_height":1024,"width":1024,"height":965,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_1024x965.gif"},{"max_width":800,"max_height":800,"width":800,"height":754,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_800x754.gif"},{"max_width":600,"max_height":600,"width":600,"height":565,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_600x565.gif"},{"max_width":400,"max_height":400,"width":400,"height":377,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_400x377.gif"},{"max_width":300,"max_height":300,"width":300,"height":282,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_300x282.gif"},{"max_width":200,"max_height":200,"width":200,"height":188,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/c/2c24b1b1c7fd85e167d9816b38897573d1ffd2d5_2_200x188.gif"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":233,"name":"oauth2","slug":"oauth2"},{"id":279,"name":"auth-plugins","slug":"auth-plugins"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":20039,"like_count":95,"has_summary":true,"last_poster_username":"gormus","category_id":167,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user asks if OAuth2 JSON name path can concatenate multiple fields like first and last name, extending the original Auth0-Discourse setup guide.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":43281,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1495,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":38292,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":127446,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Google Tag Manager and Discourse CSP (Content Security Policy)","fancy_title_localized":false,"locale":"en","id":188296,"title":"Google Tag Manager and Discourse CSP (Content Security Policy)","slug":"google-tag-manager-and-discourse-csp-content-security-policy","posts_count":1,"reply_count":3,"highest_post_number":1,"image_url":null,"created_at":"2021-04-27T19:03:01.794Z","last_posted_at":"2021-04-27T19:03:01.953Z","bumped":true,"bumped_at":"2025-12-11T00:35:04.654Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse uses a ‘strict-dynamic’ Content Security Policy, and attaches a nonce to the root GTM script. \nThat means that, in the vast majority of cases, no extra configuration is required. strict-dynamic will automatical&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":10494,"like_count":14,"has_summary":false,"last_poster_username":"Discourse","category_id":167,"op_like_count":14,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The discussion highlights that Google Tag Manager works with Discourse's strict CSP using 'strict-dynamic' and nonce, and a user shares that a server-side GTM setup avoids direct CSP modifications.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Create and configure an API key","fancy_title_localized":false,"locale":"en","id":230124,"title":"Create and configure an API key","slug":"create-and-configure-an-api-key","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529.png","created_at":"2022-06-15T22:09:59.271Z","last_posted_at":"2024-05-10T18:46:41.661Z","bumped":true,"bumped_at":"2025-12-08T12:47:53.298Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"API keys are generated from the Admin / API page. Go to Admin-Advanced-API Keys: \n  \n  \nAfter clicking the “Add API key” button, you will be taken to a page to configure the key: \n  \nEvery API key needs a description, a &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":314,"height":792,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529.png"},{"max_width":600,"max_height":600,"width":237,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529_2_237x600.png"},{"max_width":400,"max_height":400,"width":158,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529_2_158x400.png"},{"max_width":300,"max_height":300,"width":118,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529_2_118x300.png"},{"max_width":200,"max_height":200,"width":79,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/9/7/29783fd31cf07de9c349a2fcef3e241d67322529_2_79x200.png"}],"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":30989,"like_count":15,"has_summary":false,"last_poster_username":"Lilly","category_id":167,"op_like_count":5,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"API key generation images were missing, but can be viewed via archive, and the process now occurs under the Admin settings dropdown menu, Advanced, API keys, with a recent fix addressing a scope description tooltip issue.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":14353,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":100484,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":127856,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"How to integrate Discourse Gamification with an external system (redeem and award points)","fancy_title_localized":false,"locale":"en","id":262968,"title":"How to integrate Discourse Gamification with an external system (redeem and award points)","slug":"how-to-integrate-discourse-gamification-with-an-external-system-redeem-and-award-points","posts_count":35,"reply_count":22,"highest_post_number":42,"image_url":null,"created_at":"2023-04-26T17:07:13.973Z","last_posted_at":"2025-11-21T14:18:00.283Z","bumped":true,"bumped_at":"2025-11-21T14:18:00.283Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Since we launched Discourse Gamification a year ago, one of the most requested features from our roadmap has been the ability to make it possible to integrate Discourse Gamification with external gamification system . Ex&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":384,"name":"gamification","slug":"gamification"}],"tags_descriptions":{},"views":3982,"like_count":94,"has_summary":false,"last_poster_username":"anoedo","category_id":167,"op_like_count":29,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse Gamification released a full API enabling external integration for awarding and redeeming points, with users noting existing infrastructure like Hatched.live as an implementation example.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":130099,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":137610,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":131569,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":182574,"primary_group_id":null,"flair_group_id":null}]}]}}