updated message sending workflow