diff --git a/opentech/apply/views.py b/opentech/apply/views.py
index 9e4e9a3189efbfcc4323329d12df0c78269e0e5e..49fa8d1b708e88cf8359ec41e664e59fa5e6fd1b 100644
--- a/opentech/apply/views.py
+++ b/opentech/apply/views.py
@@ -6,16 +6,15 @@ from .workflow import SingleStage, DoubleStage
 
 workflows = [SingleStage, DoubleStage]
 
-logs = []
-
-submission: dict = {}
-
 
 class BasicSubmissionForm(forms.Form):
     who_are_you = forms.CharField()
 
 
 def demo_workflow(request, wf_id):
+    logs = request.session.get('logs', list())
+    submission = request.session.get('submission', dict())
+
     wf = int(wf_id)
     workflow_class = workflows[wf - 1]
     workflow = workflow_class([BasicSubmissionForm] * wf)
@@ -27,7 +26,7 @@ def demo_workflow(request, wf_id):
         if current.stage.name not in submission:
             submitted_form = current.stage.form(request.POST)
             if submitted_form.is_valid():
-                submission[current.stage.name] = submitted_form
+                submission[current.stage.name] = submitted_form.cleaned_data
                 phase = current
                 logs.append(
                     f'{phase.stage}: Form was submitted'
@@ -50,6 +49,9 @@ def demo_workflow(request, wf_id):
     else:
         form = None
 
+    request.session['logs'] = logs
+    request.session['submission'] = submission
+
     context = {
         'workflow': workflow,
         'phase': phase,