# Editing an event Whether an event is in draft state or has already been published, you can still edit the basic details such as the event name, description, payment sources, booking guidelines, and so on. You can also send invites, add or remove travelers, and modify custom field responses during any step of the [event creation workflow](/spotnana/event_creating_workflow). The following are some editing actions that can be performed on draft and published events: ## Add travelers | Name | Endpoint | Details | | --- | --- | --- | | [Add travelers to an event](/openapi/eventapi#operation/addTravelersToEvent) | `/v2/events/{eventId}/travelers/add` | Add the list of travelers (i.e., event attendees) to the event.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** An array of `userIds`. The user details such as their `userId`, `name`, and `email` can be accessed using the the [query user](/openapi/usersapi#operation/queryUser) API.**Response will contain:** `addedUserIds` | > **Note:** Adding a traveler will not trigger an email invite to them. The event coordinator must still send invites separately. Refer to [sending an invite](/spotnana/event_editing_workflow#send-an-invite) topic. ## Remove travelers | Name | Endpoint | Details | | --- | --- | --- | | [Remove travelers from an event](/openapi/eventapi#operation/removeTravelersFromEvent) | `/v2/events/{eventId}/travelers/remove` | Remove travelers from an event. The event coordinator can remove up to 10 travelers per API call.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** An array of `userIds` (maximum allowed is 10 `userIds` per API call). The `userId` can be accessed using the [get travelers list](/spotnana/event_view_workflow#get-list-of-travelers-for-the-event) workflow.**Response will contain:** `removedUserIds` | > **Note:** Removing travelers from an event will not cancel their trip or any bookings they have already made for the event. To cancel any of the bookings a removed traveler may have already made, use the [cancel PNR](/openapi/tripapi#operation/cancelPnrV3) endpoint. ## Edit basic details of an event | Name | Endpoint | Details | | --- | --- | --- | | [Edit basic details of an event](/openapi/eventapi#operation/updateEventBasicInfo) | `/v2/events/{eventId}/edit-basic-info` | Edit basic information of the event such as the event name, description, date and time, location, and contacts. You can also add or edit supporting documents for the event.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** `name`, `description`, `documents`, `startDateTime`, `endDateTime`, `location`, and/or `contacts`. | ## Update event booking guidelines | Name | Endpoint | Details | | --- | --- | --- | | [Update event booking guidelines](/openapi/eventapi#operation/updateEventBookingGuidelines) | `/v2/events/{eventId}/edit-booking-guidelines` | Update the booking guidelines for a draft or a published event. The event coordinator can update booking guidelines such as maximum number of guests allowed, arrival and departure window for the event, payment methods, and allowed travel types.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** `bookingGuidelines`, `allowedBookingTypes`, and `paymentMappings` **Response will contain:** `eventId` | ## Send an invite | Name | Endpoint | Details | | --- | --- | --- | | [Send invite](/openapi/eventapi#operation/sendInvite) | `/v2/events/{eventId}/invite/send` | Send event invites to the travelers. The invites can be sent to all travelers who have already been added to the event using a single API call, or you can send invites to specific travelers.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** `userIds` (This is optional if the invites are being sent to all travelers). | > **Note:** You can also use the [Send invite](/openapi/eventapi#operation/sendInvite) endpoint to send reminders to the travelers who haven't made any booking for the event yet. ## Send a test invite | Name | Endpoint | Details | | --- | --- | --- | | [Send a test invite](/openapi/eventapi#operation/testInvite) | `/v2/events/{eventId}/invite/test` | Send a test event invite to the API caller. As an event coordinator, this endpoint is useful to preview an invite before sending it to the travelers.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow. | ## Update payment sources Updating the payment sources for an event requires two steps as explained below: | Step | Name | Endpoint | Details | | --- | --- | --- | --- | | 1. | [Get allowed payment sources](/openapi/eventapi#operation/getAllowedPaymentSources) | `/v2/events/payment-sources` | Retrieve the payment sources that are mapped to the `userId` of the event coordinator.**Request body requires:** `userId` of the event coordinator.**Response will contain:** The list of `paymentSources` that are mapped to the requested `userId`.**Other APIs will use:** `paymentSources` > `id` | | 2. | [Update event booking guidelines](/openapi/eventapi#operation/updateEventBookingGuidelines) | `/v2/events/{eventId}/edit-booking-guidelines` | Update the booking guidelines for an event such as maximum number of guests allowed, arrival and departure window for the event, payment mapping to the type of travel, and allowed travel types.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** The `paymentMappings` > `id` from step 1, `bookingGuidelines`, and `allowedBookingTypes`. | ## Update custom field responses The event coordinator can access the custom field questions and provide responses to them using the steps below: | Step | Name | Endpoint | Details | | --- | --- | --- | --- | | 1. | [Get company questions](/openapi/policyapi#operation/getCompanyQuestions) | `/v2/companies/{companyId}/questions` | Retrieve all custom fields. A company administrator may have configured a set of questions when creating a travel policy. This API returns the list of all the questions for a `companyId`.**URL path requires:** `companyId`. The company ID can be accessed using the [get company](/openapi/companyapi#operation/readCompany) API.**Response will contain:** A list of `elements` which contains the question `id` and `name` displayed to the traveler (e.g., What is the purpose of your trip?).**Other APIs will use:** `id`. (Also referred to as `questionId` in step 2 and `customFieldId` in step 3) | | 2. | [Get a company question](/openapi/policyapi#operation/getCompanyQuestion) | `/v2/companies/{companyId}/questions/{questionId}` | Retrieve one specific question and its details.**URL path requires:** `companyId` from the [get company](/openapi/companyapi#operation/readCompany) API and `questionId` from step 1. **Response will contain:** The question `id`, its `name`, and `matchConditions`. The custom fields with `matchConditions` > `tripUsageTypes` field containing the value as `EVENT` (or of it's empty) can be added to the event in the next step. | | 3. | [Update event custom field responses](/openapi/eventapi#operation/updateCustomFieldResponses) | `/v2/events/{eventId}/custom-field-responses` | Provide a response to a custom field question. The response to a question can be updated either by the traveler or the event coordinator on behalf of the traveler. In both cases, the response text has to be provided in the request `responseItems` > `response` field.**URL path requires:** `eventId` generated from step 1 of [creating and publishing an event](/spotnana/event_creating_workflow) workflow.**Request body requires:** An array of `eventCustomFieldResponses` which contains the `customFieldId` from step 1 and `responseItems`. |