diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/client_attribute/grpc/OzgCloudClientAttributeGrpcService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/client_attribute/grpc/OzgCloudClientAttributeGrpcService.java
index cebaf6360285e9b87d9a95452fc0ef85ea010fb0..28e56c4f66513fc487ca27e557155a508b497b12 100644
--- a/api-lib-core/src/main/java/de/ozgcloud/apilib/client_attribute/grpc/OzgCloudClientAttributeGrpcService.java
+++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/client_attribute/grpc/OzgCloudClientAttributeGrpcService.java
@@ -23,8 +23,8 @@
  */
 package de.ozgcloud.apilib.client_attribute.grpc;
 
-import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
 import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
+import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
 import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
 import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
 import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
diff --git a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
index 2e135f9e90dfd4c175fade6a65c9108f7811da4c..2ff634b6d643afc894c9c99f1e86682e10d3dee4 100644
--- a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
+++ b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
@@ -14,6 +14,9 @@ import org.springframework.context.annotation.ComponentScan;
 import de.ozgcloud.apilib.alfa.AlfaService;
 import de.ozgcloud.apilib.alfa.CommandAlfaService;
 import de.ozgcloud.apilib.alfa.dummy.DummyAlfaService;
+import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
+import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeGrpcService;
+import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeMapper;
 import de.ozgcloud.apilib.common.callcontext.DefaultOzgCloudCallContextProvider;
 import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
 import de.ozgcloud.apilib.common.command.OzgCloudCommandService;
@@ -34,6 +37,7 @@ import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangQueryMapper;
 import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper;
 import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc;
 import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc;
+import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc;
 import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc;
 import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc;
 import io.grpc.ManagedChannelBuilder;
@@ -148,6 +152,16 @@ public class OzgCloudClientAutoConfiguration {
 		return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, queryMapper, contextProvider);
 	}
 
+	@Bean
+	@ConditionalOnProperty("ozgcloud.vorgang-manager.address")
+	@ConditionalOnMissingBean
+	OzgCloudClientAttributeService grpcOzgCloudClientAttributeService(OzgCloudClientAttributeMapper clientAttributeMapper,
+		OzgCloudCallContextProvider contextProvider) {
+		var channel = ManagedChannelBuilder.forTarget(vorgangManagerProperties.getAddress()).usePlaintext().build();
+		var blockingStub = ClientAttributeServiceGrpc.newBlockingStub(channel);
+		return new OzgCloudClientAttributeGrpcService(blockingStub, clientAttributeMapper, contextProvider);
+	}
+
 	@Bean
 	OzgCloudVorgangMapper ozgCloudVorgangMapper() {
 		return Mappers.getMapper(OzgCloudVorgangMapper.class);
@@ -163,6 +177,11 @@ public class OzgCloudClientAutoConfiguration {
 		return Mappers.getMapper(OzgCloudVorgangQueryMapper.class);
 	}
 
+	@Bean
+	OzgCloudClientAttributeMapper ozgCloudClientAttributeMapper() {
+		return Mappers.getMapper(OzgCloudClientAttributeMapper.class);
+	}
+
 	@Bean("ozgCloudVorgangService")
 	@ConditionalOnMissingBean(OzgCloudVorgangService.class)
 	OzgCloudVorgangService dummyOzgCloudVorgangService() {
diff --git a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAttributeServiceStarterITCase.java b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAttributeServiceStarterITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e746eb848ff8576d2cc7df90346f593dcdd8ffa
--- /dev/null
+++ b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAttributeServiceStarterITCase.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.client.autoconfigure;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.util.Optional;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Import;
+import org.springframework.test.annotation.DirtiesContext;
+
+import de.ozgcloud.apilib.autoconfig.ApiLibTestApplication;
+import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
+import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
+import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
+import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
+import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
+import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeGrpcService;
+import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
+
+class OzgCloudClientAttributeServiceStarterITCase {
+
+	@Nested
+	@SpringBootTest(classes = ApiLibTestApplication.class)
+	@DirtiesContext
+	class TestWithoutOzgCloudClientAttributeService {
+
+		@Autowired
+		private Optional<OzgCloudClientAttributeService> attributeService;
+
+		@Test
+		void shouldStart() {
+			assertThat(attributeService).isEmpty();
+		}
+	}
+
+	@Nested
+	@SpringBootTest(classes = ApiLibTestApplication.class, properties = {
+		"ozgcloud.vorgang-manager.address=address"
+	})
+	class TestWithOzgCloudClientAttributeService {
+
+		@Autowired
+		private OzgCloudClientAttributeService attributeService;
+
+		@Test
+		void shouldStart() {
+			assertThat(attributeService).isInstanceOf(OzgCloudClientAttributeGrpcService.class);
+		}
+	}
+
+	@Nested
+	@SpringBootTest(classes = ApiLibTestApplication.class)
+	@Import(TestWithExistingOzgCloudClientAttributeService.Config.class)
+	class TestWithExistingOzgCloudClientAttributeService {
+
+		@Autowired
+		private OzgCloudClientAttributeService attributeService;
+
+		@Test
+		void shouldStart() {
+			assertThat(attributeService).isInstanceOf(TestClientAttributeService.class);
+		}
+
+		static class Config {
+
+			@Bean
+			OzgCloudClientAttributeService ozgCloudFileService() {
+				return new TestClientAttributeService();
+			}
+		}
+
+		static class TestClientAttributeService implements OzgCloudClientAttributeService {
+
+			@Override
+			public void setClientAttribute(final OzgCloudBooleanClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
+				// empty
+			}
+
+			@Override
+			public void setClientAttribute(final OzgCloudStringClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
+				// empty
+			}
+
+			@Override
+			public void setClientAttribute(final OzgCloudLongClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
+				// empty
+			}
+
+			@Override
+			public void setClientAttribute(final OzgCloudDoubleClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
+				// empty
+			}
+		}
+	}
+}
diff --git a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudFileServiceStarterITCase.java b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudFileServiceStarterITCase.java
index 0581131a576eb0164e25074b68084a423d2808b7..0f408d67b5b5e8273830ad93df6964e7a294921f 100644
--- a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudFileServiceStarterITCase.java
+++ b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudFileServiceStarterITCase.java
@@ -44,7 +44,7 @@ public class OzgCloudFileServiceStarterITCase {
 
 	@Nested
 	@SpringBootTest(classes = ApiLibTestApplication.class)
-	@DirtiesContext()
+	@DirtiesContext
 	class TestWithoutOzgCloudFileService {
 
 		@Autowired