diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index b792f72..e0f7375 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -3,6 +3,7 @@ package service_internal
 import (
 	"context"
 	"errors"
+	"fmt"
 
 	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
 	internal "git.itzana.me/strafesnet/maps-service/pkg/internal"
@@ -125,6 +126,16 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCr
 	if err != nil {
 		return nil, err
 	}
+
+	// mark the operation as completed and provide the path
+	pmap := datastore.Optional()
+	pmap.Add("status_id", model.OperationStatusCompleted)
+	pmap.Add("path", fmt.Sprintf("/mapfixes/%d", mapfix.ID))
+	err = svc.DB.Operations().Update(ctx, request.OperationID, pmap)
+	if err != nil {
+		return nil, err
+	}
+
 	return &internal.MapfixID{
 		MapfixID: mapfix.ID,
 	}, nil
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 3322230..b445c64 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -3,6 +3,7 @@ package service_internal
 import (
 	"context"
 	"errors"
+	"fmt"
 
 	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
 	internal "git.itzana.me/strafesnet/maps-service/pkg/internal"
@@ -124,6 +125,16 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *internal.Subm
 	if err != nil {
 		return nil, err
 	}
+
+	// mark the operation as completed and provide the path
+	pmap := datastore.Optional()
+	pmap.Add("status_id", model.OperationStatusCompleted)
+	pmap.Add("path", fmt.Sprintf("/submissions/%d", submission.ID))
+	err = svc.DB.Operations().Update(ctx, request.OperationID, pmap)
+	if err != nil {
+		return nil, err
+	}
+
 	return &internal.SubmissionID{
 		SubmissionID: submission.ID,
 	}, nil