Если в общих чертах то так, причем не только для питона.
Бот отправляет ссылку site.com но при этом добавляет get параметр, например ref и ссылка приобретает вид site.com/?ref=xxx1 где xxx1 некое случайное значение уникальное для пользователя
Сайт проверяет посетителей на наличие этого значения. Тут имеем первый профит. Фиксируем что пользователь откыл сайт, если есть ref со значением. Сайт же вешает посетителю это значение в куку.
Когда посетитель с этой кукой зарегается/залогинется сайт знает по уникальному значению кому бот отправлял ссылку. А бот об успешной авторизации.
Базы данных, организацию этого взаимодействия оставим за скобками, тут тоже много вариантов имеется.