Bots is an Open Source, production-grade software for translation and routing of EDI files. It is used by companies exchanging large numbers of electronic business documents.


Why you may need Bots?

▸ because you won’t be able to exchange electronic documents reliability with more than a few partners without losing track of what’s going on,

▸ because some bigger partners impose the use of documents in standards such as EDIFACT, X12, UBL, and you need to convert the data from your ERP system,

▸ because even standard EDI documents are never in the same format from one partner to another,

▸ because with time you and your partners introduce changes in the format of existing documents.


Main features

FeatureDescription
Any to any data formatInput and output files might be in any format and standard, as: EDIFACT, X12, XML, json, SAP idoc, flat-files (CSV, fixed-width records, …).
Ready EDI definitionsAvailable definitions of over 120 EDIFACT D96A documents and of the most popular X12 documents. Many examples available for other formats.
Simple data mappingSimple and powerful translation mapping with simple Python scripts.
Web consoleWeb user interface for configuration and supervision of documents translation and routing.
Easy scalingSimplified management of many similar mappings. Easily runs hundreds of thousands of EDI messages per month.
Change managementConfiguration change management (test -> production).
Functional receipt confirmationBuilt-in EDIFACT/X12 functional acknowledgments/confirmations (CONTRL, 997).
Many transport standardsBuilt-in communication using popular protocols: (S)FTP, FTPS, POP3(S), IMAP(S), SMTP(S), HTTP(S), files, XML-RPC, direct database access and integration with external AS2 servers and VANs.
Cross-platformRuns on Windows, Linux, OSX and other Unix variants.

Full list of features and strong points of Bots (frozen branch).


How does it work?

  • input and output files structure should be defined in “grammars” - there are ready grammars for many EDIFACT and X12 standard documents, and examples for other formats,
  • data translation mappings are simple Python scripts,
  • data connections are defined using web management console (partners, routes, transports, grammars, translations)
  • documents sent and received are processed automatically, with supervision using a management console.

The name

Bots in Dutch means “crash”: implementation of EDI connections is often a clash of different cultures and IT system limitations. See the FAQ in documentation for a more complete explanation.


The software

The original version of Bots was created and first shared on an open license in 2007 by Henk-Jan Ebbers, who after many years of development and very active support, at the end of 2024 has decided to pass the continuation of the project to the Bots community.

Bots is written in Python using Django framework, the default web server Cherrypy and default database SQLite might be replaced by Apache, Nginx, MySQL/MariaDB or PostreSQL.


Available versions

Bots Frozen branch

Version 3.2.0 (Frozen) is the last stable version created by Henk-Jan, with last changes done in 2014. This branch requires Python 2.7 and some other old versions of components, but on the other hand is very stable, well documented and has many users who share their knowledge. There are many available examples of translations for EDIFACT, X12, XML, CSV, fixed-width flat-files, EDI2HTML. The answers to many questions are to be found in the mailing list archive.

Links for Frozen branch:

Bots Development branch (NG)

Version 3.8.5 is a fork created by Ludovic Watteaux, who also maintains the code.

Main new features of this version, compared to the Frozen branch:

  • Runs with Python 3 and Django 5.1.1.

  • Many GUI improvements (filtering, queries, save queries, translations…).

  • Better import and export plugins (ccodes, translations, grammars, routes, …).

  • Improved engine logs (by run or daily with log rotating).

  • Run as unprivileged user in ~/.bots/env/xxx/ (config, usersys and botssys directories).

  • Several bug fixes.

Links for development branch:

Other forks

There are several forks of Bots available on GitHub and elsewhere. Please be sure you are using Bots from the sources mentioned above before reaching us. If you’ve created your fork, please join us. Together we can do more.


How to contribute:

  • install development branch
  • adapt your mappings
  • test and report issues
  • propose fixes for issues
  • propose improvements in the code (see the roadmap)
  • respond to questions of other users on the discussion list
  • write or adapt existing documentation