Involving people who do not have programming background in assembling and tailoring service-based applications promises to open up access to the creativity of millions of users. An increasing number of development environments aim to do this by offering drag-and-drop visual representations connecting different service components into an assembly. In contrast to the majority of these, we did not start with the technology but with the users - service producers and consumers, and studied the core issues which should be resolved before people who are not programmers can start to assemble services into meaningful applications, over and above the presentation-level integration offered by current mash-up environments. The result is an assisted approach to service composition for end users, which uses semantic technologies to shield users from the irrelevant complexity of service technology and from the need to manually resolve dependencies between services. The approach was evaluated by a focus group of non-technical users, who ranked it highly and provided valuable suggestions for further improvements and supporting features. © 2010 IEEE.