ReactionSaaS
Documentation

Groove.cm

Groove product surfaces evolve; always validate on a published groovepages or custom domain URL after clearing cache.

Where to paste code

  • Page settings → custom code (header/footer) where available.
  • HTML embed elements inside the page builder.

Setup guide

  1. Single SDK load per page.
  2. Init with your API key and origins including your Groove custom domain.
  3. Place the embed; avoid stacking multiple inits inside nested iframes.

Example snippet

<script src="https://reactify-cdn.s3.us-east-2.amazonaws.com/sdk.js" defer></script>
<script>
  window.addEventListener('DOMContentLoaded', function () {
    if (!window.Reactify) return;
    Reactify.init({
      apiKey: 'YOUR_API_KEY',
      accountId: 'YOUR_ACCOUNT_ID',
      baseUrl: 'https://api.reactionsaas.com',
      mode: 'production',
      allowedOrigins: [window.location.origin]
    });
  });
</script>
<reaction-video
  src="https://cdn.example.com/hero.mp4"
  overlays="tap,poll,rating,slider,cta"
  poll-question="Ready to continue?"
  cta-text="Continue"
  interaction-type="tap"
></reaction-video>

ReactionSDK here means overlays on reaction-video (tap, poll, rating, slider, and CTA). For ReactifySDK—recorded video reactions and threads—load reactify.js and use reactify-video / reactify-thread per ReactifySDK HTML install.

Verification

  1. Publish to a live URL; open in a clean session and confirm the SDK loads without CSP errors.
  2. Trigger first render and first interaction; check ReactionSaaS analytics.
  3. Use the SDK playground with Groove.cm selected to mirror overlay settings.

Template platform_config

Marketplace templates can declare a Groove.cm block inside platform_config:

{
  "groovecm": {
    "embed_type": "funnel_custom_script",
    "host": "groovecm",
    "placements": [
      "landing_page",
      "funnel_step",
      "opt_in_page",
      "sales_page"
    ],
    "script_surface": "page_custom_code_or_footer"
  }
}

UI presets (reference)

  • Fullscreen / CTASingle primary conversion path; respects reduced motion. Events: install_completed, first_render, first_interaction, template_used, platform_used, verification_heartbeat.
  • Inline conversion blockLazy-load; threads reactions to the same campaign as the page. Events: first_render, first_interaction, install_handoff_started, install_handoff_completed.
  • Lead-gen overlayDoes not block native form submit. Events: first_render, first_interaction, template_used.

Troubleshooting

  • Script does not run — Use a raw HTML or global script area; rich-text-only fields often strip JavaScript.
  • 403 from API — Add the exact published origin (including www) to allowed domains.
  • Duplicate events — Ensure only one SDK init per page when combining global and section-level code.

FAQ

Iframe-only preview? Test the public URL—custom elements may not initialize in internal previews.

← Platform overview · Templates