Capture an artist's application to join the Artalytics platform. The entry starts in "pending" status and can be reviewed, invited, or converted to a full user account through the waitlist workflow. Use this function when processing artist signups from landing pages, Shiny forms, or API endpoints. If the email already exists, returns the existing entry ID with a warning.
Usage
create_waitlist_entry(
email,
full_name,
phone = NULL,
specialties = NULL,
url_instagram = NULL,
url_portfolio = NULL,
url_nft = NULL,
message = NULL,
source = "main_site",
cn = NULL
)Arguments
Character string. The artist's email address (must be unique in the waiting list). Validated using
is_valid_email()before insertion. This becomes the primary identifier for the application.- full_name
Character string. The artist's full name as they want it displayed on their profile. Required for personalized communications.
- phone
Character string or NULL. Phone number for contact (optional). No format validation - store as provided by artist.
- specialties
Character string or NULL. Artistic specialties, mediums, or techniques (optional). Free-text field - examples: "Digital Photography, NFT Art" or "Oil Painting, Sculpture".
- url_instagram
Character string or NULL. Instagram profile URL (optional). Used to verify artist authenticity during review.
- url_portfolio
Character string or NULL. Portfolio website URL (optional). Primary source for reviewing artist work during application review.
- url_nft
Character string or NULL. NFT marketplace profile URL (optional). Examples: OpenSea, Foundation, SuperRare links.
- message
Character string or NULL. Personal message from the artist (optional). Free-text field for artists to explain why they want to join.
- source
Character string. Tracks signup origin for analytics (default: "main_site"). Use values like "landing_page", "shiny_app", "api_direct" to segment signup sources.
- cn
DBI connection object or NULL. Database connection from
artcore::dbc("artsite"). If NULL (default), creates and closes connection automatically. Pass existing connection for batch operations to avoid connection overhead.
Value
Character string. UUID of the created waitlist entry (format:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). If email already exists, returns
the existing entry's UUID with a warning. Use this UUID for subsequent
status updates via update_waitlist_status().
Examples
if (FALSE) { # \dontrun{
# Add a new artist to the waiting list
waitlist_id <- create_waitlist_entry(
email = "artist@example.com",
full_name = "Jane Artist",
specialties = "Digital Photography, NFT Art",
url_portfolio = "https://janeartist.com",
source = "landing_page"
)
# Check the entry was created
entry <- get_waitlist_entry(waitlist_id)
print(entry$status) # "pending"
} # }
