This document describes the uplink commanding system for the ESA Gaia mission. The need for commanding, the main actors, data flow and systems involved are described. The system architecture is explained in detail, including the different levels of configuration control, software systems and data models. A particular subsystem, the automatic interpreter of human-readable onboard activity templates, is also carefully described. Many lessons have been learned during the commissioning and are also reported, because they could be useful for future space survey missions.