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
| Parameter | Operational Detail |
|---|---|
| Failure Layer | oEmbed metadata exchange, Content Security Policy (CSP), or Access Control List (ACL) |
| Platforms Affected | Notion (Desktop & Web), Slack (Desktop, Web, & Mobile) |
| Common Presentation | Plain blue link, empty grey embed frame, or “Cannot load preview” error |
| Authentication Requirement | Public 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.
- 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. - Check Bot Access vs. Human Access: When you paste a link, Notion and Slack servers send automated crawler bots (
SlackbotorNotion/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. - 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:
- Open your video on Loom.com.
- 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).
- 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:
- In your Notion document, click on an empty line.
- Type
/loomand pressEnter. - Paste your standard Loom share URL into the prompt and click Embed video.
- 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).
- If the embed loads as a blank block, refresh Notion using
Cmd + R(macOS) orCtrl + 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:
- 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.
- 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.
- 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:
- Open the video on Loom and click Share.
- Under Who can access this video, switch the setting from Only people in your workspace to Anyone with the link can view.
- 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.
- 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.