Integrate with Django

The sym.django module provides a simple request decorator which wraps your view that would otherwise establish a new user impersonation session (e.g. by setting a cookie).

When a user visits the Sym-wrapped page, they will be presented with a screen with a form to fill out (based on the fields specified in your sym_flow definition. Upon submitting this form, an event will be sent to the Sym API, which will trigger your flow.


We start with some boilerplate imports.

from django.views.decorators.http import require_http_methods
from sym.django import sym_init, require_approval
from .models import Account

Next, we initialize Sym with the API token provided in your dashboard.


Request Data

We create a function, build_sym_request_data, which collects the information to be passed on to Sym when a user makes a request.

def build_sym_request_data(request):
  account_id = request.query_params["account_id"]
  account = Account.objects.get(id=account_id)
  user_is_assigned = in account.managers
  return {
    "customer_id": account_id,
    "customer_plan": account.plan, 
    "is_assigned": user_is_assigned,

Wrap the Route

Finally, we wrap our impersonation route with the Sym decorator.

  message="You must obtain approval to impersonate this user.",
@require_http_methods(["GET", "POST"])
def impersonation(request):
  # User impersonation logic here

What’s Next

Do you want to use Sym for user impersonation? Reach out today!

Did this page help you?