createRsvp( )
Creates an RSVP and adds the new guests to an event's guest list.
Description
The createRsvp()
function returns a Promise that resolves to an RsvpResponse
when the guests in the specified form values have been added to the event's guest list.
The list of FormValue
objects you pass to
createRsvp()
must include a form value for the rsvpStatus
. Which statuses
you can return depends on the rsvpStatusOptions
returned from the
formData
property as follows:
"YES_AND_NO"
: Send anrsvpStatus
of"YES"
or"NO"
."YES_ONLY"
: Send anrsvpStatus
of"YES"
."OPEN_RSVP_WAITLIST"
: Send anrsvpStatus
of"WAITING"
to add a guest to the waitlist.
When creating an RSVP with rsvpStatus
of "WAITING"
or "NO"
,
the list of FormValue
objects should
only contain items for "firstName"
, "lastName"
, "email"
, and "rsvpStatus"
.
No other fields should be passed.
When creating an RSVP that adds additional guests, format the guest names for submission in an array where each element is the full name of a guest.
When creating an RSVP that contains an address, the way you format the address information for submission depends on what type of input elements you use to gather that information as follows:
- If the address is input using a Wix address input element, no special formatting is needed.
- If the address is input using another type of input element, such as a text input, format the input's value in an array.
- If the address is input using a number of input elements, each for a different part of the address, format the input values as elements in an array.
Note: To work with the Wix Events API, you need to publish your site.
Syntax
function createRsvp(eventId: string, formValues: Array<FormValue>): RsvpResponse
createRsvp Parameters
NAME
TYPE
DESCRIPTION
ID of the event to create an RSVP for.
List of field names and values for an RSVP form.
Returns
Fulfilled - Information about the RSVP that was created. Rejected - Error information. One of:
CreationError
FieldValidationError
ValueValidationError
Return Type:
NAME
TYPE
DESCRIPTION
RSVP ID
Whether the guest's personal information has been removed.
Contact ID of the guest who created the RSVP.
Date when the RSVP was created.
Email address to the guest who created the RSVP.
ID of the event the RSVP is for.
First name of the guest who created the RSVP.
Last name of the guest who created the RSVP.
All of the guests included in the RSVP.
A representation of the RSVP form that was created.
Member ID of the guest who created the RSVP form if the guest is a site member.
Date when RSVP was last modified.
RSVP status.
Total number of guests included in the RSVP.
Was this helpful?
1import wixEventsFrontend from 'wix-events-frontend';23// ...45const eventId = // Get the event ID67// ...89let formValues = // get form values1011wixEventsFrontend.rsvp.createRsvp(eventId, formValues)12 .then((response) => {13 let totalGuests = response.totalGuests; // 214 let firstGuestName = response.guests[0].fullName; // Jane Doe15 })16 .catch((error) => {17 let message = error.message; // "Guest limit exceeded: only 1 person can RSVP"18 let errorType = error.errorType; // "GUEST_LIMIT_REACHED"19 });2021/*22 * Success response:23 * {24 * "anonymized": false,25 * "contactId": "f1b9e9b3-5acb-4f15-ada8-e31a34a376ec",26 * "createdDate": "2019-09-02T12:29:34.944Z",27 * "email": "john.doe@somedomain.com",28 * "eventId": "caad2acf-5c64-4eab-97f8-6710feac9151",29 * "firstName": "John",30 * "lastName": "Doe",31 * "guests": [32 * {33 * "index": 0,34 * "fullName": "John Doe",35 * "id": 136 * }37 * ],38 * "id": "c71fc4d1-661e-473c-8b8c-74d97cf91b22",39 * "memberId": "",40 * "updatedDate": "2019-09-02T12:29:34.944Z",41 * "rsvpForm": {42 * "inputValues": [43 * {44 * "inputName": "firstName",45 * "value": "John",46 * "values": [],47 * },48 *49 * ...50 *51 * {52 * inputName: "custom",53 * value: "",54 * values: ["Gluten free", "Vegetarian"],55 * }56 * ]57 * },58 * "status": "YES"59 * "totalGuests": 160 * }61 */
1import wixEventsFrontend from 'wix-events-frontend';2import wixData from 'wix-data';34$w.onReady(function () {5 let form;67 // Run a query that returns only one event. Add8 // additional filtering to the query if necessary.9 wixData.query("Events/Events")10 .eq("title", "My Event")11 .find()12 .then((results) => {13 if (results.items.length > 0) {14 form = wixEventsFrontend.createEventRsvpForm(results.items[0]._id);15 } else {16 console.log("Could not find event");17 }18 });1920 $w("#submit").onClick(() => {21 const formValues = getFormValues();2223 form.submit(formValues)24 .then((result) => {25 console.log("RSVP form submitted.")26 })27 .catch((error) => {28 console.log(`Error message: ${error.message}`);29 if (error.fields) {30 console.log(`Incorrect fields: ${error.fields}`);31 }32 });33 });34});3536function getFormValues() {37 return [38 {"name": "rsvpStatus", "value": "YES"},39 {"name": "firstName", "value": $w("#firstName").value},40 {"name": "lastName", "value": $w("#lastName").value},41 {"name": "email", "value": $w("#email").value},42 {"name": "custom", "value": $w("#foodAllergies").value},4344 // When a form contains an address, the way you format the45 // address information for submission depends on what type46 // of input elements you use to gather that information.4748 // Wix address input element.49 {"name": "address", "value": $w("#address").value},5051 // Single element which is not an address52 // input element, such as a text input.53 {"name": "address", "value": [$w("#address").value]},5455 // Multiple elements for the56 // various parts of an address.57 {58 "name": "address",59 "value": [60 $w("#street").value,61 $w("#city").value,62 $w("#state").value,63 $w("#country").value,64 $w("#postalCode").value65 ]66 },6768 // When a form contains an input for adding more guests to an69 // RSVP, format the guest names for submission in an array70 // where each element is the full name of a guest.71 {"name": "additionalGuests", "value": $w('#additionalGuests').value},72 {73 "name": "guestNames",74 "value": [75 `${$w("#guest1FirstName").value} ${$w("#guest1LastName").value}`,76 `${$w("#guest2FirstName").value} ${$w("#guest2LastName").value}`,77 ]78 }79 ];80}