Summary
This proposal outlines a new feature that allows event organizers to intercept “Going” RSVP requests and redirect users to external ticketing or reservation systems, while maintaining seamless integration with Smoke Signal’s existing RSVP functionality.
Problem Statement
Currently, when users RSVP to events on Smoke Signal, the process is entirely contained within the platform. However, many events require external ticketing systems, payment processing, or additional registration steps that cannot be handled directly within Smoke Signal. Event organizers need a way to redirect users to these external systems while still maintaining the social aspects and attendance tracking in the ATmosphere.
Proposed Solution
Core Functionality
Introduce an optional RSVP Hook feature that allows event organizers to configure a redirect URL for “Going” RSVPs. When enabled:
- “Interested” RSVPs continue to work exactly as they do today
- “Going” RSVPs trigger a redirect to the configured external URL instead of immediately creating the RSVP record
- The external system handles ticketing/registration and can redirect back to Smoke Signal
- Upon return, the RSVP can be completed normally or pre-populated by the external system with query string parameters
User Experience Flow
For “Interested” RSVPs (No Change)
- User clicks “Interested” on event page
- RSVP is created immediately
- User sees confirmation
For “Going” RSVPs (New Behavior)
- User clicks “Going” on event page
- If no hook configured: Normal RSVP creation (existing behavior)
- If hook configured: User is redirected to external URL with context parameters
- External system handles ticket purchase/registration
- External system redirects back to Smoke Signal (optionally with completion data)
- User completes RSVP process on Smoke Signal
Technical Implementation
Event Configuration
Add new optional fields to event configuration:
rsvp_hook_url
: The external URL to redirect torsvp_hook_enabled
: Boolean to enable/disable the featurersvp_hook_auto_create
: Boolean indicating if external system will create the RSVP
URL Parameters
When redirecting to the external system, include context:
https://external-system.com/tickets?aturi={event_aturi}&cid={event_cid}&identity={did}&return_url={encoded_return_url}
Return URL Handling
The return URL should support:
- Automatic RSVP creation if the external system provides completion confirmation
- Pre-filled RSVP form for manual completion
- Error handling for failed external processes
Direct RSVP Form Bypass
The hook should only apply to the main event page RSVP buttons. Direct access to RSVP forms (via direct URLs) should bypass the hook, allowing:
- External systems to complete RSVPs programmatically
- Admin/organizer override capabilities
- Fallback functionality if external systems fail
Benefits
For Event Organizers
- Seamless integration with existing ticketing platforms
- Maintained social features and attendance tracking
- Flexibility to handle complex registration requirements
- Revenue generation through external ticket sales
For Attendees
- Single-click access to ticket purchasing
- Familiar Smoke Signal interface for event discovery
- Social proof and community features remain intact
- Clear indication of attendance status
For Platform
- Increased event organizer adoption
- Integration opportunities with ticketing partners
- Maintained user engagement within Smoke Signal ecosystem
Implementation Considerations
Backwards Compatibility
- Feature is entirely opt-in for event organizers
- Existing events continue to work unchanged
- No breaking changes to current RSVP functionality
Security
- Validate return URLs to prevent redirect attacks
- Implement CSRF protection for hook configuration
- Sanitize external system responses
Error Handling
- Graceful fallback if external system is unavailable
- Clear error messages for users
- Logging for debugging integration issues
Mobile Experience
- Ensure redirect flow works smoothly on mobile devices
- Consider deep-linking capabilities for mobile apps
Next Steps
- Community Feedback: Gather input from event organizers and users
- Technical Specification: Detailed API and implementation docs
- Prototype Development: Build minimal viable version for testing
- Partner Integration: Work with popular ticketing platforms for seamless experience
- Documentation: User guides and developer documentation
Questions for Discussion
- Should there be any limitations on external URLs for security?
- How should we handle situations where users don’t return from external systems?
- What additional context should be passed to external systems?
- Should we support webhook notifications from external systems?
- How should this feature be presented in the event creation interface?
This proposal is open for community discussion and feedback. Please share your thoughts, concerns, and suggestions.