Import and Export

As of version 1.2, WOD supports exporting your workout and personal record logs over email, and importing this data back again via a URL.

Exporting

To export your logs, you will need to add the correct settings for your email provider in the "Settings" section in the "More" tab. The values include:
  • SMTP Host: the host name of your outgoing email server. E.g., smtp.gmail.com.
  • SMTP Port: the port number you use to connect to your outgoing mail server. This will probably be 25, 465, or 587.
  • Use SSL: select this to turn on secure connections to your mail server (this is highly recommended).
  • Username: the user name you use to log in to your mail server.
  • Address: the email address you want the logs sent to.
Then tap Export Data to Email in the "More" tab. This will bring up a dialog asking for a password; enter the password you use to send email, and the app should pack up your logs and email them to the address you specified.

Importing

To import a log of workouts or personal records, you will need to upload the log JSON file to a web server somewhere, and fill in the Import URL field in the Settings screen. An example would be http://wodapp.com/log.json or http://wodapp.com/records.json. Then, tap the Import Data from URL entry in the "More" tab.

Format

The data import and export format is JSON, a simple, lightweight data format based on JavaScript. We won't go into a detailed description of JSON, or how to use it, but will describe instead the objects represented.

For both the workout log and the personal records log, the basic format is:

{ name : [ array of entries ]}

For the workouts log, name is "log", and for the personal records log, it is "records".

The workouts log will contain an array of objects that have the form:

{ "wid" : A GUID, uniquely identifying this entry, "asrx" : 0 or 1, 1 meaning it was performed as prescribed, "notes" : Free-form notes about the workout, "title" : The entry title, may be null, "score" : The score for this entry, "scoretype" : A number, marking the score type, "date" : The date and time of the entry, in seconds since 01-01-1970 }

The score type number can have the following values:

Value Meaning Scoring Notes
1 For time. Seconds.
2 For repetitions. Number of repetitions.
3 For rounds. Number of rounds.
4 No score.
5 Tabata score. Tabata repetitions.
6 Total score. Total score (e.g., CrossFit Total)

The array of records contains objects of a similar form:

{ "wid" : GUID identifying the workout, "kind" : 0 or 1, 1 means it is a movement, 0 a workout, "userorder" : unused, may be used in the future, "notes" : Free-form text about the record, "title" : The title, e.g., the name of the movement, "scoretype" : The score type, "score" : The score, "id" : An internal identifier, "date" : The date, in seconds since 01-01-1970 }

If the record kind is 0, then the score type is interpreted as one of the above workout scoring types, and the wid field will correspond to a workout with the same wid value in the workouts log.

If the record kind is 1, then it is a movement, and the score type can have the following values:

Value Meaning Scoring Notes
1 For weight. Value is in grams.
2 For repetitions.
3 For time. Value is in seconds.
4 No score.
5 For rounds.
6 Total score.
7 For distance. Value is in millimeters.
8 For height. Value is in microns (10-6 meters).