Offline data collection


Run the project in the Sandbox first. This helps you avoid making mistakes and spending money on a task that isn't working right.

  1. Create a project
  2. Add a task pool
  3. Upload tasks
  4. Start the pool and get the results

Walking (field) surveys are completed in the Toloka mobile apps for Android and iOS. A performer chooses a point on the map where they need to go to check something and take photos.

You may need additional projects for your task, such as dataset pre-check or checking performers' responses. Learn more about this in Designing the solution architecture.

Suppose you want to check the condition of squirrel feeders.

To have this done, you should create a task as follows: a performer has to upload two or more photos, check if there is any food and assess the feeder condition.

Note. This tutorial shows how to create a task interface in the HTML/JS/CSS editor. You can also try creating a task interface in the Template Builder.
Example of a prepared task

To run tasks and get responses:

Create a project

The project defines what the task will look like for a performer.

  1. Choose a template:

    1. Click + Create project.

    2. Select the Field task template.
  2. Provide general information:

    1. Enter a clear name and a short description for the project. Performers will see this in the task list.

    2. Optionally add a Private comment.
    3. Click Save.
  3. Edit the task interface:

    1. The task interface describes how the task elements should be arranged in the task. The template already contains CSS styles and JavaScript functions. You don't need to change them.

      You can use standard HTML tags and special expressions in double curly brackets in input and output data fields in the HTML block.

      <div class="task__plate">
        <div class="plate__field">
          <div class="field__title">Place</div>
          <div class="field__content">{{name}}</div>
          <div class="field__content">{{description}}</div>
        <div class="plate__field plate__field_photo">
          <div class="field__title">Photo</div>
          <div class="field__content">
            {{field type="file-img" name="photo" camera=true preview=true validation-show="top-center"}}
        <div class="plate__field">
          {{field type="checkbox" name="food" label="Is there food in the feeder?"}}
        <div class="plate__field">
          {{field type="radio" name="condition" value="good" label="The feeder is OK"}}
          {{field type="radio" name="condition" value="repair" label="The feeder needs minor repairs"}}
          {{field type="radio" name="condition" value="replace" label="The feeder needs to be replaced"}}
        <div class="plate__field">
          <div class="field__title">Comment</div>
          <div class="field__content">{{field type="textarea" name="comment" width="100%"}}</div>
      This notation describes the following task design:
      • Name name and location description.
      • Button for uploading photos that will be recorded in the photo file array.
      • A checkbox with the value (true or false) output to the food field.
      • Three radio buttons with the chosen value output to the condition field.
    2. Define which objects you are going to pass to the performers and receive from them in response. To do this, add input and output fields in the Data specification section.
      What are input and output data?

      Input data is types of objects that are passed to the performer for completing the task. For example, this could be a text, an image, or geographic coordinates.

      Output data is types of objects that you receive after the task is completed. For example, this could be one of several response options, typed text, or an uploaded file.

      Learn more about input and output data fields.

      The template includes the fields:
      • Input data field — The name string for the point name.
      • Output data fields:
        • photo array of files — The photos that the performer will upload.
        • comment string — A comment by the performer.
      Add several new fields:
      • Input data field — The description field for sending the location details.
      • Output data fields:
        • food — A boolean to save the value of the “Is there food in the feeder?” checkbox.;
        • condition — An optional string to save the radio button value that indicates the feeder condition.
        • worker-coordinates — A required field with coordinates. To record the performer's coordinates to it automatically, turn on the Current position option.
    3. To show the name and description of the point in the task, edit Settings for displaying field tasks:
      • Header format: {{inputParams["name"]}}
      • Short description format: Location: {{inputParams["description"]}}
    4. Click to see the performer's view of the task.

      Note. The project preview shows one task with standard data. You can define the number of tasks to show on the page later.
    5. Click Save.
  4. Write instructions for performers:

    1. Write short and clear guidelines (see the recommendations). Describe what needs to be done and give examples in them.

      You can prepare instructions in HTML format, then copy and paste into the editor. Click <> to switch to HTML mode.

      Field task instructions should be easy to read even on a mobile phone screen.

    2. Click Finish.

Add a task pool

A pool is a set of paid tasks sent out for completion at the same time.

  1. Open the project and click Add pool.
  2. Give the pool any convenient name and description. The pool info is only available to you. Performers can view only the project name and description.
  3. Set the price per task, for example $0.2. For field surveys, always add one task per page.
    What is a task suite?

    A page can contain one or several tasks. If the tasks are simple, you can add 10-20 tasks per page. Don't make pages too long because it slows down loading speed for performers.

    Performers get paid for completing the whole page.

    The number of tasks on the page is set when uploading tasks.

    What is the fair price for a task suite?

    The general rule of pricing is the more time the performer spends to complete the task, the higher the price is.

    You can register in Toloka as a performer and find out how much other requesters pay for tasks, or see examples of cost for different types of tasks.

  4. Set the Time allowed for completing a task suite. It should be enough to get to the place, find the specified point and upload photos. For field surveys, we recommend allocating a day — 86,400 seconds.
  5. Set Overlap, which is the number of performers to complete the same task. For field surveys, it is usually 1.
  6. Turn on the Non-automatic acceptance option and enter the number of days for checking the task in the Deadline field (for example, 7).
    What is non-automatic acceptance (assignment review)?

    The non-automatic acceptance option allows you to review completed task suites before accepting them and paying for them. If the performer didn't follow instructions, you can reject the task. The maximum allowed period for the review is set in the Deadline field.

  7. Add Filters to select performers. To make your tasks available in the Toloka mobile app to English-speaking performers located in Moscow, set the language and region.
  8. Save the pool.

Upload tasks

Prepare your own task file. Check out the example in a demo TSV file. You can find it on the pool page. At the top-left of the page, there are links to TSV files with regular, control, and training tasks.
  1. Click Upload. In the window that opens, you can also download a sample TSV file by clicking Sample file for uploading tasks.
    What is TSV?
    A TSV file presents a table as a text file in which columns are separated by tabs.

    You can work with it both in a table editor and a text editor, and then save it to the desired format. More about working with a TSV file. There is a CSV format that is similar to TSV, but you should use a TSV file for uploading.

  2. Add input data in it. The header of the input data column contains the word INPUT. For field surveys, you also need to specify the latitude AI:latitude and longitude AI:longitude of the point. You can use a service like Yandex.Maps to get the coordinates.
  3. Upload the tasks by choosing Set manually and set 1 task per page.

Start the pool and get the results

  1. Start the pool by clicking .
  2. Track the completion of tasks in the Pool statistics section.
  3. When the first results come in, you can start reviewing.

    To review assignments, go to the pool and click Download results. To download attachments, click the button next to and choose Download attachments.

    Note. After the specified time period, all responses are automatically accepted, regardless of their quality.


Can I limit the source of the photo to camera-only in a field task so that the performer can't upload a photo from anywhere else?

To open the camera instead of the gallery when the user taps the image upload button, in the Image upload button component specify camera=true.

In the mobile apps, performers can add photos from the default gallery (iOS) or Google photo (Android). To limit the capacity of adding online images, specify in the component requiredCoordinates=true. In this case, the system won't let the user add images without geotags.

Learn more about setting up the image upload component .

How do I check the task display in the mobile Toloka app?

To check the task's look-and-feel on the mobile phone screen, enable the emulation mode in Chrome or Safari and edit the CSS block.

You can also use the mobile version of the sandbox. Write to support to get access to it.

Why is my project not available in the mobile version of Toloka?

To make your task available in the mobile app, set up the filter: client = mobile Toloka in your pool.

How do I make the task available not only from desktops, but also from mobile devices?
To make your task also available in the mobile app, set up the following filter in your pool:
Client = web version
       = mobile Toloka