← All use cases
Sports clubs & associations

Club managers keep asking for member polls. Give them a survey tool inside your platform.

Club managers build, share, and read member surveys from your platform. Members answer on your domain, on desktop or phone.

Live in production

Compeetee runs this pattern for its club managers and members. Read the Compeetee case study. Compeetee shares ResponseDock’s founder. The screens below use Courtside, a fictional example with sample data.

Start 14-day Pro trial with the Club Season Member Pulse templateTalk to sales

Needs Pro. No card required for the trial.

9:41●●● ▮
Ccourtside.example
3 quick questions

How easy was it to sign up for the league?

Secured by Courtside

The phone is live: tap through the Courtside survey.

Why platforms add it

What club managers ask you for

Sports club, league, association, and membership platforms whose managers want to ask members questions.

“A quick poll for the members”

End-of-season reviews, training feedback, and volunteer rotas, without copying the member list into another tool.

“A link and a QR code for the clubhouse”

Something to post in the group chat and print for the noticeboard, pointing to the club’s page on your platform.

“Results only our committee can see”

Each club sees its own answers and exports them to Excel for the next committee meeting.

  • Managers stay in your platform
  • Members answer without another account
  • Each club sees only its own surveys and results
How it works

Three steps from sign-up to live

Your server signs the club as the subject, the person, and their capabilities. Managers get the survey list, builder, and results; members get respondent access only. Share links and QR codes point to a route on your platform that resolves the survey, so members never see another domain. This is the pattern Compeetee runs in production.

  1. Step 1

    Your server signs a session

    When someone opens the surveys page, your backend asks ResponseDock for a five-minute embed URL with the club, the person, and what they may do. The secret key never reaches the browser.

    server/surveys.ts
    const res = await fetch('https://api.responsedock.com/api/v1/auth/embed-token', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.RESPONSEDOCK_SECRET_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        workspaceId: process.env.RESPONSEDOCK_WORKSPACE_ID,
        role: 'admin',
        mode: 'workspace',
        allowedOrigin: 'https://app.yourplatform.com',
        tenant: { id: club.id, name: club.name },
        user: { id: user.id, name: user.name },
        capabilities: ['questionnaire:create', 'questionnaire:edit',
          'questionnaire:publish', 'results:view'],
        subject: { type: 'club', id: club.id, label: club.name },
        theme, // parsed from your version-controlled theme file
      }),
    });
    const { embedUrl } = await res.json(); // { token, expiresIn: 300, embedUrl }
  2. Step 2

    Your page renders the iframe

    Load the returned URL in an iframe. It sizes itself to its content through a resize message, so your page keeps control of scrolling.

    surveys.html
    <iframe id="surveys" src="EMBED_URL_FROM_YOUR_SERVER"
      title="Surveys" style="width:100%;border:0" allow="clipboard-write"></iframe>
    <script>
      const frame = document.getElementById('surveys');
      window.addEventListener('message', (event) => {
        if (event.origin !== 'https://app.responsedock.com'
          || event.source !== frame.contentWindow) return;
        if (event.data?.type === 'responsedock.lifecycle.resize') {
          frame.style.height = event.data.payload.height + 'px';
        }
      });
    </script>
  3. Step 3

    You keep track of what they create

    Store the IDs of new questionnaires against the club. When people should answer, request a respondent embed with their user ID and the surveys they may see.

    surveys.html
    if (event.data?.type === 'responsedock.questionnaire.created') {
      saveSurvey(clubId, event.data.questionnaire.id);
    }
    
    // Later, for someone who should answer (server side):
    // { role: 'respondent', allowedSurveyIds: [surveyId],
    //   externalUserId: member.id, allowedOrigin, workspaceId }
Product walkthrough

What your users see

ResponseDock supplies the survey engine. Your application keeps the relationship, context, and visual identity.

Your app signs the user, their club, and what they may do, and the survey list opens inside Courtside. No second login and no separate dashboard.

Example screens: Courtside is fictional and the data is sample data.

Start from a template

The Club Season Member Pulse template, ready to use

These are the template’s real questions. Tap through the phone, then change anything in the builder. The colors come from your theme, not from the template.

9:41●●● ▮
Ccourtside.example
Club Season Member Pulse · about 2 min

How would you rate this season at the club overall?

PoorExcellent
Secured by Courtside
  1. Rating · requiredHow would you rate this season at the club overall?
  2. NPS (0–10) · requiredHow likely are you to recommend the club to a friend?
  3. Single choiceHow often did you take part this season?Every week · A few times a month · Now and then · Hardly at all
  4. Multiple choiceWhat should the committee improve next season? (select all that apply)Facilities and equipment · Training and coaching · Competition schedule · Communication from the club · Social events · Membership fees
  5. Long textAnything else you would like the committee to know?
Plans

What’s included on Pro

Surveys inside your product, under your brand. $39 per month. Needs Pro. No card required for the trial.

Pro · $39 per month

Surveys inside your product, under your brand

  • 10,000 responses / month
  • 50 surveys · 3 workspaces · 10 team members
  • 100 AI survey generations / month
  • 2,000 survey invitation emails / month
  • Embedded builder and results with signed sessions
  • Respondent embeds: inline, modal, or hosted
  • Browser SDK and React SDK (preview), API keys, and webhooks
  • Registration forms
  • Basic white-label: remove ResponseDock branding from surveys
Start 14-day Pro trial with the Club Season Member Pulse template

When you need Business or Platform

Business · $149 per month

Your domain, 10 client workspaces, full white-label

50,000 responses / month · 200 surveys · 10 workspaces · 25 team members · 500 AI survey generations / month · 10,000 survey invitation emails / month · Full white-label, including a custom domain (set up with our team) · Option to send invitation emails without “via ResponseDock”

Platform · Custom

For platforms offering surveys to their own customers

Survey limits across all tenants, full white-label and custom domain, DPA, and priority support. Price on request.

Compare all plans →

Honest limits

What it does not do (yet)

  • Membership fees and payments are not handled: keep them in your platform.
  • The ResponseDock mobile app is not in the App Store or Google Play yet. Members answer in the browser on any phone.
  • Feedback analysis runs in your ResponseDock dashboard, not inside the embedded club workspace.
FAQ

Questions platforms ask

Is anyone running this in production?

Yes. Compeetee, a club and competition platform, embeds ResponseDock for its club managers and members. Compeetee shares ResponseDock’s founder, so treat it as a first-party integration rather than an independent customer review.

Can each club only see its own surveys?

Yes. Sign the club as the subject of the embed token. Questionnaires created in that session are filed under the club, and list, results, and export requests for other clubs are refused on the API.

Can members answer on our domain?

Yes. Share links and printable QR codes can point to a page on your platform that embeds the survey, so members only ever see your address. A custom domain for ResponseDock-hosted pages is part of Business.

Can members see the results?

You decide per survey. Results can stay private to managers or be shown as a read-only public results page after someone submits.