Skip to main content

Import Competitors via AI

Overview

You can import your event's competitor list from any spreadsheet or CSV file by giving an AI assistant a ready-made prompt. The AI maps your column headers to the RRS.org API fields, corrects phone numbers to international format, validates MNA codes, and then sends the data directly to your event — all in one conversation.

This approach works with any AI assistant that can read file attachments and make HTTP requests, such as Claude, ChatGPT, or similar tools.

Important: Each import via AI replaces all competitors that were previously imported through the API for that event. Competitors who were entered manually inside RRS.org are never affected.

Prerequisites

  • You are logged in to RRS.org and are listed as an official on the event.
  • You have the competitor list in a spreadsheet (Excel, Numbers, LibreOffice) or CSV format.
  • You have the Event UUID for your event. Find it on the Event Panel — it is labelled UUID in the event details section at the top of the panel.
  • Your AI assistant supports file uploads and can make outbound HTTP POST requests (network/tool access enabled).

How to Use the Prompt

  1. Copy the prompt below and paste it into a new conversation with your AI assistant.
  2. When the AI asks, upload your competitor spreadsheet or CSV file.
  3. The AI will review the column headers and map them to the API fields. If it cannot match a column it will ask you to identify it.
  4. The AI will check phone numbers and MNA codes and ask you to correct any it cannot resolve automatically.
  5. When prompted, paste in the Event UUID from the Event Panel.
  6. Confirm the import when the AI summarises the data, and it will send the request to RRS.org.
  7. The AI will report success or display any error returned by the API.
The AI Prompt
Copy the entire block below and paste it as your first message to the AI assistant.
You are helping to import competitors into an RRS.org sailing event via the API. Work through the following steps in order, pausing for user input when required.

---

## Step 1 — Upload the competitor file

Ask the user to upload their competitor spreadsheet or CSV file. Once you receive the file, read all rows and identify the column headers.

---

## Step 2 — Map columns to API fields

Attempt to map each column to one of the following API fields:

| API field       | Description                                                                  
|-----------------|------------------------------------------------------------------------------
| competitor_id   | A unique identifier for each entry (required; use row number if none exists) 
| sail_number     | Sail number, optionally with nationality prefix (e.g. "GBR 1234", "USA 5")  
| country_code    | 3-letter IOC/World Sailing nationality code (e.g. GBR, USA, AUS, FRA)       
| first_name      | Skipper / helm first name                                                    
| last_name       | Skipper / helm last name (or full name if first name is not available)       
| boat_name       | Name of the boat                                                             
| boat_class      | Class of the boat                                                            
| division        | Division or fleet name                                                       
| club_name       | Club affiliation                                                             
| email           | Contact email address                                                        
| phone           | Contact phone number (must be in international format, e.g. +441234567890)  
| mna_code        | World Sailing MNA code (Standard three-letter IOC country abbreviations used during international events) 
| mna_number      | Competitor's MNA membership number                                           

If any column cannot be confidently matched to a field, show the user a table listing the unmatched columns and sample values, and ask them to identify each one before continuing.

---

## Step 3 — Validate phone numbers

For each competitor that has a phone number:

1. If the number already starts with + or 00 followed by a country dialing code, it is valid — keep it as-is.
2. If not, attempt to convert it to international format using the competitor's country_code value (e.g. if country_code is GBR, add +44 and remove any leading 0).
3. If you cannot determine the correct international format, list those competitors and ask the user to supply the corrected phone numbers before you proceed.
4. Leave the phone field empty for any entry whose number you cannot resolve.

---

## Step 4 — Validate MNA codes

MNA codes should be recognised World Sailing Member National Authority abbreviations. Flag any value that looks like a full country name, a two-letter country code, or otherwise non-standard (e.g. "Great Britain", "GB", "United States"), and ask the user to confirm or correct those values before proceeding.

---

## Step 5 — Get the Event UUID

Ask the user:

"Please provide the Event UUID for this event. You will find it on the Event Panel page on RRS.org — look for the UUID field in the event details section at the top of the panel."

---

## Step 6 — Confirm before importing

Show a summary:
- Number of competitors to be imported
- Any rows with unresolved warnings (phone format, MNA codes, etc.)
- The event UUID you will use

Then ask: "Shall I proceed with importing these [N] competitors to event [UUID]?"

---

## Step 7 — Make the API call

Send a single HTTP POST request to:

  POST https://www.racingrulesofsailing.org/api/competitors
  Content-Type: application/json

Request body structure:

  {
    "uuid": "[event UUID from user]",
    "source": "rrs-ai-import",
    "competitors": [
      {
        "competitor_id": "[unique id — required]",
        "sail_number": "",
        "country_code": "",
        "first_name": "",
        "last_name": "",
        "boat_name": "",
        "boat_class": "",
        "division": "",
        "club_name": "",
        "email": "",
        "phone": "",
        "mna_code": "",
        "mna_number": ""
      }
    ]
  }

Rules:
- Use an empty string "" (not null) for any field with no value.
- competitor_id must be unique for each row. If the file has no registration ID, use the row number as a string ("1", "2", "3", ...).
- This import replaces all competitors previously imported via API for this event. Competitors entered manually in RRS.org are not affected.

---

## Step 8 — Report the result

- HTTP 200: Report success — "Successfully imported [N] competitors."
- Any other status: Show the full error response to the user and ask how they would like to proceed.

Note: Individual competitor errors (e.g. unresolvable phone numbers) are recorded by RRS.org and can be reviewed on the Event Panel. A 200 response means the overall import was accepted even if some individual records had warnings.

Notes and Tips

Phone number format
The API requires phone numbers in international format — a leading + followed by the country dialing code and subscriber number (e.g. +14155552671 for the United States, +447911123456 for the United Kingdom). If a phone number cannot be resolved to international format, the import will still succeed but that competitor's phone number will be left blank. You can correct phone numbers individually from the Competitors panel after the import.
MNA codes
MNA codes are the short abbreviations used by World Sailing to identify each Member National Authority (e.g. RYA for Great Britain, US Sailing for the United States, YNZ for New Zealand). If your spreadsheet uses full country names or ISO country codes in this column, the AI will ask you to confirm the correct MNA code before importing.
Replacing vs. updating competitors
Each API import marks all previously API-imported competitors as deleted and then recreates them from the submitted data. This means running the import twice with the same file has no negative effect — but if you have made manual edits to API-imported competitors inside RRS.org since the last import, those edits will be overwritten. Manual competitors (not imported via API) are never affected.
After the import
Once the AI reports a successful import, go to the Competitors page on the Event Panel to review the imported entries and make any corrections.
Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more