diff --git a/src/app/components/toast/toast.component.html b/src/app/components/toast/toast.component.html
index f1e62739b7c1043962fb7d45575820dc55d5776c..f1e23f42d2938ae93910987465c2b9bc91248aa0 100644
--- a/src/app/components/toast/toast.component.html
+++ b/src/app/components/toast/toast.component.html
@@ -1,6 +1,6 @@
 <div class="toast-holder">
   <div *ngFor="let toast of toasts | keyvalue">
-    <div class="toast {{ getDrugstoneClass(toast.value.type) }}">
+    <div class="toast {{ getDrugstoneClass(toast.value.type) }}" (click)="click(toast.key)">
       <a (click)="close(toast.key)" aria-label="close" class="close">
         <app-fa-solid-icon
           title="Close analysis"
diff --git a/src/app/components/toast/toast.component.ts b/src/app/components/toast/toast.component.ts
index 0f0f5731e26b77153c29f7b9e31126a854fa1507..45b35d17afe089637e64298a38a83da868a455e8 100644
--- a/src/app/components/toast/toast.component.ts
+++ b/src/app/components/toast/toast.component.ts
@@ -30,5 +30,9 @@ export class ToastComponent implements OnInit {
   public close(id: number) {
     this.toast.deleteToast(id);
   }
-  
+
+  public click(id: number) {
+    this.toast.toastClicked(id);
+  }
+
 }
diff --git a/src/app/interfaces.ts b/src/app/interfaces.ts
index 64f1b369e4773129bde62c82a8443af24989320b..becf421885efb8a6bbd2b58839da8ee76ee1633c 100644
--- a/src/app/interfaces.ts
+++ b/src/app/interfaces.ts
@@ -266,7 +266,8 @@ export interface Algorithm {
 
 export interface Toast {
   message: string;
-  type: 'success' | 'info' | 'warning' | 'danger'
+  type: 'success' | 'info' | 'warning' | 'danger';
+  callback?: () => void;
 }
 
 export interface LiveToasts {
diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts
index 32e73db3b898cf5d7ddb4bd4bdba979009e046c8..c616916e1b1fab985a6dee64a0576b14cae7bd38 100644
--- a/src/app/pages/explorer-page/explorer-page.component.ts
+++ b/src/app/pages/explorer-page/explorer-page.component.ts
@@ -172,6 +172,20 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
     return this.selectedToken;
   }
 
+  public setViewToken(token: string | null) {
+    this.selectedViewToken = token;
+  }
+
+  public setTaskToken(token: string | null) {
+    this.selectedAnalysisToken = token;
+  }
+
+
+
+  public bind(f: (token: (string | null)) => void) {
+    return f.bind(this);
+  }
+
   @Input() set taskId(token: string | null) {
     if (token == null || token.length === 0) {
       this.selectedAnalysisToken = null;
@@ -232,6 +246,8 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
 
   ngOnInit() {
     this.setWindowWidth(document.getElementById('appWindow').getBoundingClientRect().width);
+    this.analysis.setViewTokenCallback(this.setViewToken.bind(this));
+    this.analysis.setTaskTokenCallback(this.setTaskToken.bind(this));
   }
 
   async ngAfterViewInit() {
diff --git a/src/app/services/analysis/analysis.service.ts b/src/app/services/analysis/analysis.service.ts
index 963fbbdb74d8b8f0d26676d73a8818c42390ace1..3afeaa51ae377d88ce8ac24170259fadd0cd720a 100644
--- a/src/app/services/analysis/analysis.service.ts
+++ b/src/app/services/analysis/analysis.service.ts
@@ -76,6 +76,10 @@ export class AnalysisService {
 
   private tissues: Tissue[] = [];
 
+  private viewTokenCallback: (task: (string | null)) => void;
+
+  private taskTokenCallback: (task: (string | null)) => void;
+
   constructor(
     public toast: ToastService,
     private http: HttpClient,
@@ -104,6 +108,14 @@ export class AnalysisService {
     });
   }
 
+  setViewTokenCallback(f): void {
+    this.viewTokenCallback = f;
+  }
+
+  setTaskTokenCallback(f): void {
+    this.taskTokenCallback = f;
+  }
+
   setViewInfos(): void {
     this.netex.getViewInfos(this.viewTokens).then(res => {
       // @ts-ignore
@@ -364,9 +376,11 @@ export class AnalysisService {
     localStorage.setItem(this.selectionsCookieKey, JSON.stringify(this.viewTokens));
 
     this.toast.setNewToast({
-      message: 'Analysis task started. This may take a while. ' +
-        `Once the computation finished you can view the results in the task list to the ${this.drugstoneConfig.config.showSidebar}.`,
-      type: 'success'
+      message: 'New network view based of the selection has been created. Load the new view by clicking here or on the entry in the \'Views\' list to the ' + this.drugstoneConfig.config.showSidebar,
+      type: 'success',
+      callback: () => {
+        this.viewTokenCallback(resp.token);
+      }
     });
     // @ts-ignore
     return resp.token;
@@ -494,9 +508,14 @@ export class AnalysisService {
   showToast(task: Task, status: 'DONE' | 'FAILED') {
     let toastMessage;
     let toastType;
+    let onClick = () => {
+    };
     if (status === 'DONE') {
-      toastMessage = 'Computation finished successfully. Click the task in the task list to view the results.';
+      toastMessage = 'Computation finished successfully. Click here or the task in the task list to view the results.';
       toastType = 'success';
+      onClick = () => {
+        this.taskTokenCallback(task.token);
+      };
     } else if (status === 'FAILED') {
       toastMessage = 'Computation failed.';
       toastType = 'danger';
@@ -505,6 +524,7 @@ export class AnalysisService {
     this.toast.setNewToast({
       message: toastMessage,
       type: toastType,
+      callback: onClick
     });
   }
 
diff --git a/src/app/services/toast/toast.service.ts b/src/app/services/toast/toast.service.ts
index 83748b8955acd6caec05c25d317fb6540dc9840e..9916f7ed3775c3c9752eb76912fd4432b1474eed 100644
--- a/src/app/services/toast/toast.service.ts
+++ b/src/app/services/toast/toast.service.ts
@@ -36,6 +36,12 @@ export class ToastService {
     }
   }
 
+  public toastClicked(id: number) {
+    if (this.liveToasts.hasOwnProperty(id)) {
+      this.liveToasts[id].callback();
+    }
+  }
+
   get getToasts$ () {
     return this.getToasts.asObservable();
   }