A method of authenticating a user and connecting the authenticated user to a service agent, the method comprising, at at least one server (122, 124, 126): establishing a first communication session with the user; determining a unique identifier associated with the first communication session; generating a session identifier to identify said first communication session and storing said session identifier in a data cache coupled to said at least one server in association with the unique identifier; outputting a first address and the session identifier, for delivery to the user; receiving an authentication request transmitted to said first address from a first computing device associated with said user, and in response, outputting at least one message to the first computing device, the at least one message comprising the session identifier and a second address at which a request for authentication by an authentication service can be directed; receiving an authentication success message comprising the session identifier, the authentication success message indicating successful authentication of the user with the authentication service, said authentication success message output by the authentication service; establishing a second communication session with the service agent; and in response to receiving the authentication success message indicating successful authentication of the user, querying the data cache with the session identifier to determine the unique identifier associated with the first communication session, and connecting the first communication session and the second communication sessions together using the unique identifier associated with the first communication session. establishing a first communication session with the user; determining a unique identifier associated with the first communication session; generating a session identifier to identify said first communication session and storing said session identifier in a data cache coupled to said at least one server in association with the unique identifier; outputting a first address and the session identifier, for delivery to the user; receiving an authentication request transmitted to said first address from a first computing device associated with said user, and in response, outputting at least one message to the first computing device, the at least one message comprising the session identifier and a second address at which a request for authentication by an authentication service can be directed; receiving an authentication success message comprising the session identifier, the authentication success message indicating successful authentication of the user with the authentication service, said authentication success message output by the authentication service; establishing a second communication session with the service agent; and in response to receiving the authentication success message indicating successful authentication of the user, querying the data cache with the session identifier to determine the unique identifier associated with the first communication session, and connecting the first communication session and the second communication sessions together using the unique identifier associated with the first communication session.