custom user integration