Skip to content
Octo × Field PT Request an assessment

Octo for field work and operations in ArcGIS

From the request spreadsheet to the PDF report. The team decides.

Survey123, Field Maps, Workforce, QuickCapture and Notebooks already handle field data collection. With the ArcGIS Python API, Octo can turn a spreadsheet of requests into Field Maps tasks, prepare the offline map, publish the form from a versioned XLSForm, generate draft inspection reports in batch and check the quality of the collected data every day. Everything starts in staging and ends in a human decision: signed reports, publishing to production and approval of the inspection stay with authorized people.

Map of the work area with the parcel polygon and work order points, a phone with the inspection form; from the center, Octo takes the collected data to a stack of numbered reports and to a list of outstanding items per supervisor WORK AREA · PARCEL 07 OUTSIDE THE AREA INSPECTION · 2 PHOTOS REPORT 2026-000101 DRAFT PDF 500 × 0.5 CREDIT = 250 OPEN · SOUTH PHOTO MISSING NO GEOMETRY OUTSIDE THE AREA REST: OK FOR REVIEW $ python3 qualidade_coletas.py OCTO × FIELD STAGING A-07
Python API, PyPI2.4.4arcgis, published October 20, 2026
Reports in Online0.5credit per printed record
Scheduled notebook15 minminimum interval; up to 10 active tasks per account
Sources14listed at the end of the page
01

What Octo does in field operations.

Six possible deliverables, drawn from the survey. All of them use the ArcGIS Python API or Survey123 exports, start in a staging organization and go to review by whoever is responsible for the operation.

Work orders in batch

Can read the request spreadsheet, reject what is outside the area or has no coordinates and create the tasks in the Field Maps task layer (esritask_* fields), with assignee, due date and priority.

Deliverable: verified batch + list of rejections

Offline map and app link

Can create the map's offline area by script (offline_areas.create) and generate the fieldmaps.arcgis.app link that opens the right map on the team's device.

Deliverable: offline area + link for the team

Form versioned as code

Can keep the XLSForm as CSV in git, check the structure, build the .xlsx and publish to staging with Survey.publish(..., schema_changes=False), which stops and describes any schema change.

Deliverable: readable diff + publication to staging

Draft reports in batch

Can number the approved inspections, estimate the cost with Survey.estimate and generate the PDFs in batches with generate_report, from the approved .docx template.

Deliverable: numbered PDFs for review and signature

Collection quality, every day

Can write and schedule a notebook that checks the day's inspections (missing photos, point outside the area, duplicates) and sorts the outstanding items by supervisor.

Deliverable: the day's outstanding items, per supervisor

Webhook integrations

Can configure Survey123 or feature service webhooks (FeaturesCreated, with HMAC signature) to notify another system on each submission, and prepare the receiver that checks the signature.

Deliverable: webhook in staging + tested receiver
02

Eight arms, one work order.

The same Octo cycle, applied to field operations. Each arm has a narrow role; approving the inspection, signing the report and publishing to production are done by people.

  1. Discovery

    Maps the operation

    ArcGIS Online or Enterprise, which apps the team uses (Survey123, Field Maps, Workforce, QuickCapture), which forms, layers and dashboards exist, and where requests originate today.

  2. Data

    Pins down fields and domains

    Task layer fields, type and priority codes, form fields, report numbering, coordinate system and time zone of the dates.

  3. Security

    Protects people and access

    Saved profiles, no passwords in files; least privilege on the service account; citizens' photos and addresses treated as personal data (LGPD), with only what is necessary.

  4. Architecture

    Picks the path

    Field Maps tasks instead of Workforce (deprecated in the API since 2.4.4), scheduled notebook or webhook, single batch or in parts, Online with credits or Enterprise.

  5. Development

    Writes the script

    Python scripts with the ArcGIS API and XLSForm as CSV, each with the source of the syntax noted in the file itself and a simulation mode that runs without touching ArcGIS.

  6. Review

    Checks in staging

    Runs with sample data, then in the staging organization, and checks by the result: the task on the device, the PDF opened, the outstanding item in the supervisor's text.

  7. Release

    Takes it to production on order

    Only with your explicit OK, it publishes the form, creates the tasks or schedules the notebook in production, with the credit estimate approved first.

  8. Documentation

    Records what applies to your project

    Version of the form, report template and API used in each batch, git tag of each publication and quality rules in force. The next job starts from this record.

Octo does not sign reports, approve inspections or publish to production on its own. That belongs to the professional of record, the supervisor and whoever is responsible for the operation.

03

Each task, its path.

The criteria Octo uses to choose. Esri's apps remain the reference; the scripts prepare, check and consolidate.

TaskPathNote
Creating work orders in batchField Maps task layer + edit_features(adds=...)Workforce only for legacy projects: module deprecated since 2.4.4, removal planned for 2027
Sending the team to the right mapfieldmaps.arcgis.app link or build_field_maps_urlTest the link on the device before sending
Offline map of a regionMap(item=...).offline_areas.create(...)Check with check_compatibility(); storage is billed in Online
Changing the form safelyXLSForm as CSV in git + Survey.publish(..., schema_changes=False)Staging first, explicit approval for production
Reports in batchSurvey.estimate + generate_report(..., output_format="pdf")0.5 credit per record in Online; a draft, not a signed report
Checking collection qualitySurvey.download("CSV") + script; scheduling with tasks.createRules defined by the supervisor
Reacting to each submissionSurvey123 or feature service webhookReceiver checks the HMAC signature
Copying a dashboard or form to another organizationgis.content.clone_items(...)Map and image services are not copied
04

From checking to routine.

Three steps. Each one only makes sense after the previous one has shown results in your operation.

A proposal, not a promise

1 Today

On-demand checks

With the Survey123 exports and the request spreadsheet, you ask in operational terms and Octo proposes the script and the list.

  • “Check yesterday's collections” becomes outstanding items per supervisor
  • Request spreadsheet checked before it becomes tasks
  • Form checked before publishing
Benefit: field errors found the same day
2 Next

Batches in staging

Tasks, offline areas and draft reports now come out in batch, first in the staging organization.

  • Work orders created from the spreadsheet
  • Versioned form, with a tag for each publication
  • Numbered reports with an approved credit estimate
Benefit: the team reviews batches instead of typing records
3 Later

Scheduled routine

The daily check runs on its own in a scheduled notebook, and neighboring systems receive each submission by webhook.

  • Scheduled notebook with rules approved by the supervisor
  • Webhook with a verified signature to the work order system
  • Record of form, template and API version per batch
Benefit: the operation is documented and auditable
05

Confirmed by source.

Each point below has a source published by the vendor, the project or the responsible agency. The sources are in the next section.

4

points with a published source, each with its reference alongside.

ConfirmedWorkforce deprecated in the API
The arcgis.apps.workforce module reference says it has been deprecated since 2.4.4 and will be removed in fall 2027 (the notice on each class and method says "Removed in: 2.4.6"), and directs users to migrate to Field Maps tasks.Source: Python API reference, arcgis.apps.workforce
ConfirmedForm published from the XLSForm
Survey.publish(xlsform=..., schema_changes=False) publishes the form from the XLSForm; with schema_changes=False, any schema difference becomes an error that describes the differences.Source: Python API reference, arcgis.apps.survey123
ConfirmedCost of reports
In ArcGIS Online, printing reports costs 0.5 credit per record, with a minimum of 0.5; the preview generates a watermarked PDF for up to 20 records at no cost; in Enterprise it does not consume credits.Source: Survey123, Print survey results
ConfirmedScheduled notebooks
In ArcGIS Online, a notebook task runs at most every 15 minutes; each account has up to 10 active tasks and the organization up to 50; the Standard runtime costs 1.5 credits per hour, billed per minute.Source: ArcGIS Online, Schedule a notebook task; Understand credits
06

What Octo does and what stays with you.

Octo prepares everything, but does not sign. The document of record stays with whoever is accountable for it.

Octo prepares

Gathers, calculates, organizes and produces the documents: spreadsheets, reports, maps and drafts.

Deliverable: material ready for review

Your team reviews

The licensed professional reviews what Octo delivered before signing. If something doesn't add up, it goes back to Octo with the correction.

Step: review by whoever signs

Who signs

Octo does not sign. Designs, technical reports, ART/RRT, accountability reports and any official document are still signed by the licensed professional at the company or agency: here, the professional of record for the map or survey.

Signature: professional of record for the map or survey
07

Sources.

Esri and PyPI documentation used in the survey, accessed October 29, 2026.

Your field operation, checked before it turns into rework.

The assessment starts with a request spreadsheet or a Survey123 export you already have, without touching your production organization. You get a proposal for what can be prepared and checked in your operation and decide with it in hand.