Could you not have a single fact table with common activity information named the same e.g. email_type_id, action date etc.. and a type field where you id your activity type as either Sign Up or User with keys to link off to the user dimension and sign up dimension table where you store details unique to that dimension then these types of issues wont arise.
Why not have one table to store all your activities in with common attributes like %SiteId, %UserId, Date, Type of Action i.e. Signup, user visit etc.... With keys off to user details, site details etc... in a classic star schema that way you will avoid getting stuck on joins, circular references as your fact data is all in the one table.
At the moment I think you storing values separately when they could be in the same field which you can get away with in SQL Relational DBs but Qlik Data model expects it in a certain way.
referrer_email_type_id, email_type_id its just an email type so why not just store them in one table as email type and add a field to give it context email=referrer
Use of set analysis in your measures will extract the relevant data for you in your charts.
I renamed the column to the same name the issue is when i load the useractivity table with fields user_id and "status" as email_type_id, i am getting the sync error or circular reference error.
This is because email_type_id and user_id both is using for association. This is when i loaded without join.
When i loaded with joining the two tables, i am only loading the "status" as email_type_id from useractivity table, at that time email_type_id is loading but all other fields are empty. this is affecting me when i was filtering through filter pane.