Uploading Events

Individual events can be uploaded to an Event Campaign in your instance via Event Create pages. This can save you time if you're creating multiple staff-run events where you know the event date, time and location. The requirements for creating an event are the same, whether you upload them in bulk or enter them individually through the admin interface.

The UI for uploading events is similar to that used with import pages, but the resulting actions are processed differently. Events are uploaded to Event Creation pages, and processed, validated, and recorded in the database as Event Creation actions. In contrast, uploading to an Import page results actions on a page with the type Import.

Internally, uploading an action to an Event Create page is handled almost identically to a user taking action on the page. The same fields are required, campaign settings are pulled in from the page's campaign, page configuration still affects how the action is processed, etc. Also, when events have been created they still have to be confirmed and, if your settings require it, approved. You can use bulk edit to quickly confirm or approve events you've uploaded.

User Tags, Custom Fields (including custom event fields), Phones, and User data fields are handled the same in both Event Create Actions and import actions.

File Requirements

All imports have some common requirements. Your file must:

  • Be formatted as a TSV or CSV;
  • Include a header row with the correct field name(s). If your file contains an unrecognized field name value in the header, you'll see a message and have a chance to correct it.
  • Include a column that identifies the user. The user in this case becomes the event host. The choices are email, user_id or akid. ActionKit will match data to existing users' based on this column. You cannot import co-hosts, but you can add them manually after you've created your event.
  • Be saved in the UTF-8 encoding, if it includes accented characters or international names.

Other Required Fields

As with all pages, the fields required for action are determined by the page type and the configuration of the page. Events always require enough information to geocode them so we can display a map. If the event address can't be geocoded with the provided address, then the event creation action will fail and the event won't be created.

The four required address fields, event_title, event_venue, event_address1, and event_city are not always sufficient for geocoding. Additional address fields such as event_zip and event_country are often necessary.

The following fields are always required to upload an event:

column value
event_title name of the event
event_address1 venue address
event_venue venue name
event_city venue city
event_public_description Description of event
event_starts_at_date mm/dd/yyyy or yyyy-mm-dd
event_starts_at_time hh:mm
event_starts_at_ampm "am" or "pm"
email (or akid, user_id) host identifier

The starts_at fields are required when uploading events and are always used. Even if a campaign has been configured with a default start date, that date will be ignored in favor of the date included in the row.

Other Fields

  • source: As with other actions, each Event Create Action will have a source. Include a source column in your file to override the default. Action pages, unlike import pages, do not have a configurable default source.
  • event_mode: Used to create online events. Events default to onsite but you can designate events as virtual by providing a event_ column containing values of local or global.
  • Custom event fields: You can also upload custom event fields, just include them as custom action fields. Custom action fields are automatically copied into custom event fields when the event is created. For example, to create a custom event field named serves_pizza, include the column action_serves_pizza.

Differences From Imports

When uploading events, subscriptions are not changed. Users will not be subscribed to the page's list.


Subscribe any new users before uploading them as event hosts. New users will not be subscribed when included as part of an event upload and will have a subscription status of never.

The created_at column used in imports is not supported for event uploads. Uploaded Event Create Actions can't be backdated.

The language from the Event Create page is used to set the user's language. The lang column used with import pages is not supported.

Confirmations and Notifications

When uploading events, action confirmations and notifications are triggered as if the user had taken action on the page. If notifications or confirmations are enabled, then then they'll be triggered for each uploaded event.

To prevent sending of confirmation emails, either disable the page's Confirmation Email, or include a skip_confirmation column with a 1 for each row to skip.

Uploading Events: How-to

After your Event Create page has been created and configured, the upload process will look like this:

Create Your File

1 Create a file that satisfies the requirements for the upload. Remember the fields required for action are determined by the page used for the upload.

2 Navigate to your campaign's dashboard, and click "Upload Events" for the page you wish to use.

Upload Your File

1 Select the checkbox to confirm that these users have not been purchased or borrowed. You cannot email purchased or borrowed emails through ActionKit. This is important for maintaining a good reputation with ISPs and therefore good deliverability.

2 Before uploading, check the upload summary to verify that the actions will be processed as intended. If an Edit link is present then the value can be changed by configuring the page. The summary also lists the minimum required fields for your file; you might confirm that your file has a value for all required fields.

3 Uncheck the Auto-create user fields if you don't want ActionKit to create new custom user fields for any column with a header beginning user_. If you want to add values to an existing user field, uncheck this box to see a warning and have a chance to correct any misnamed user fields.

4 Click Browse to locate your import file then Start Upload. ActionKit displays your progress during the import.


Uploads can take a while! Before doing a large import, try importing a few rows to make sure the format is correct. You can also compress your file using gzip or zip to reduce upload time.

5 Check for errors or warnings.

  • First, ActionKit will check your file format (csv or tsv only, no excel files) and your column headers. You'll be able to correct your headers on the screen directly instead of having to open and edit your file.

  • While your upload is running, you'll see a link next to upload status to stop your import.

  • When your import is done, you'll see a summary of your upload including the number of rows successfully imported, the number of rows that failed and the number that generated a warning.

  • Below the summary, are the details about problem rows. Click on details to see the problem value and the original data from your file.

    Warnings: Warnings tell you that we imported your row but something may be wrong with it. For example, a new US user with zip of "xyzzy" in the file will be created with a blank zip.

    If a row can't be parsed as UTF-8 it's interpreted as Latin-1, which often results in incorrect interpretation of special characters. You can re-import with corrected values or correct the values manually from the individual user record.

    Errors: Rows with errors are not imported. If some rows fail, you can download a csv of the failed rows, making it easier to correct and re-upload only the failed rows.

Confirm and Approve

1 Typically, a host will confirm their event by clicking a confirmation email and confirming in their Host Tools. If your Event Create page is configured to send confirmation messages, these emails will have already been sent.

Alternatively, events can be confirmed from the campaign's event list individually or with a bulk edit.

2 If the event campaign requires staff to approve each event, then, events must also be approved. From the event list, approve events individually or use bulk edit to approve en masse.