Fix: Loom “Embed Code” not rendering in Notion/Slack

When a Loom embed code or share link fails to render in Notion or Slack, the target application displays a raw URL, a broken grey placeholder, an empty text snippet, or an endless loading spinner instead of an interactive video player. This breakdown happens when you paste raw HTML <iframe> code where a direct link is required, when the video’s privacy settings block external scraping bots, or when platform-level link unfurling permissions are disabled.

Fast Fix

Do not paste the raw HTML <iframe> embed snippet. Instead, copy the clean video URL (https://www.loom.com/share/...), paste it directly into Notion or Slack, and select “Create embed” (Notion) or allow the link preview (Slack). Ensure the video’s sharing privacy is set to “Anyone with the link can view” so Notion and Slack’s metadata bots can access the player.


Diagnostic Snapshot

ParameterOperational Detail
Failure LayeroEmbed metadata exchange, Content Security Policy (CSP), or Access Control List (ACL)
Platforms AffectedNotion (Desktop & Web), Slack (Desktop, Web, & Mobile)
Common PresentationPlain blue link, empty grey embed frame, or “Cannot load preview” error
Authentication RequirementPublic or organization-wide access; password/private links block preview bots

Diagnostic Path: Pinpointing the Unfurl Failure

Follow this diagnostic path to determine whether the issue stems from your copied link format, video privacy, or application settings:

Loom video fails to render in Notion or Slack
       │
       ├──> Did you paste HTML code starting with "<iframe ..."?
       │      └── YES: Notion and Slack reject raw HTML. Paste the direct "share" URL instead.
       │
       ├──> Is the video Password-Protected or restricted to Workspace Members?
       │      └── YES: Notion and Slack metadata bots cannot authenticate past the privacy gate.
       │
       └──> Does the link unfurl in a web browser, but fail in the desktop app?
              └── YES: Local desktop app cache or workspace integration settings are disabled.
  1. Verify Link Type (Direct URL vs. HTML Embed Code): Notion and Slack use the oEmbed standard. They inspect plain URLs to dynamically generate native player containers. If you paste a raw HTML code block (<iframe src="..."></iframe>), Slack treats it as plain unformatted text, and Notion places it in a raw code block unless manually embedded into an advanced iframe widget.
  2. Check Bot Access vs. Human Access: When you paste a link, Notion and Slack servers send automated crawler bots (Slackbot or Notion/1.0) to read open-graph metadata from Loom. If the video requires a password or team login, Loom serves an authentication splash page. The crawler bot cannot bypass this gate, so the interactive player cannot render. If your password-protected links are malfunctioning generally, review Fix: Loom “Password Protected” links returning Access Denied.
  3. Inspect Workspace Embed and Link Preview Preferences: Slack and Notion both include organizational settings that allow administrators or users to disable third-party link unfurling and embedded media entirely.

Step-by-Step Resolution

Step 1: Use the Canonical Share URL

To embed a Loom video properly, always use the direct public link:

  1. Open your video on Loom.com.
  2. Click the Copy link button at the top right of the page (or click Share > Copy link).
    • Do not click “Copy embed code” unless you are placing the video into the source code of an external website (such as WordPress or Webflow).
  3. The copied link should follow this exact format:
    https://www.loom.com/share/VIDEO_ID

Step 2: Correctly Embed in Notion

Notion requires specific block selection to convert URLs into embedded players:

  1. In your Notion document, click on an empty line.
  2. Type /loom and press Enter.
  3. Paste your standard Loom share URL into the prompt and click Embed video.
  4. Alternative Method: Paste the link directly onto the page. When the Notion context pop-up appears, click Create embed (do not select Dismiss or Create bookmark).
  5. If the embed loads as a blank block, refresh Notion using Cmd + R (macOS) or Ctrl + R (Windows) to reload the embedded iframe runtime.
Pasting Raw Link in Notion:
[Paste URL] ──► Context Menu ──► Select "Create embed"   ──► Interactive Video Player
                             └──► Select "Create bookmark"──► Static Preview Card

Step 3: Enable Link Previews in Slack

If Slack shows only a clickable blue text link without an inline playable video:

  1. Check your personal Slack preferences:
    • Click your profile image in the bottom-left corner of Slack.
    • Go to Preferences > Messages & media.
    • Under the Text and media section, ensure Show text and images from linked websites and Show a preview of website content (previews) are checked.
  • Click your profile image in the bottom-left corner of Slack.
  • Go to Preferences > Messages & media.
  • Under the Text and media section, ensure Show text and images from linked websites and Show a preview of website content (previews) are checked.
  1. Check the Slack channel rules:
    • If an admin has restricted third-party integrations, embedded media will be suppressed across that workspace channel.
  • If an admin has restricted third-party integrations, embedded media will be suppressed across that workspace channel.
  1. If the preview displays an outdated thumbnail image or title, refer to How to Resolve: Loom “Thumbnail” not updating after edit to clear external preview caches.

Step 4: Adjust Loom Privacy Settings for External Bots

If the preview fails to generate because of access restrictions:

  1. Open the video on Loom and click Share.
  2. Under Who can access this video, switch the setting from Only people in your workspace to Anyone with the link can view.
  3. If corporate compliance requires workspace-only access, the native interactive embed player cannot function inside Notion or Slack. Viewers must click the direct link and authenticate in their browser.
  4. If you have customized player branding and notice that logos or custom call-to-action buttons do not transfer to the embed frame, consult How to Resolve: Loom “Custom Branding” not applying to shared links and Fix: Loom “Cta Button” not appearing on published video.