Usted está aquí:
Ejemplo de cómo aislar datos entre socios
Este ejemplo muestra cómo configurar los socios para que no puedan acceder a los datos de los demás.
Ediciones necesarias
| Disponible en: Lightning Experience. |
| Disponible en: Enterprise Edition y Unlimited Edition |
Compañía de la industria del motor con sus partes interesadas
Dream Horse es una compañía de la industria del motor que utiliza Salesforce Scheduler para reservar citas de clientes, como, por ejemplo, la reserva de pruebas de conducción. Dream Horse ahora desea configurar Salesforce Scheduler para sus concesionarios (cuentas de socios): Chantilly Stables y Versailles Stables. Chantilly Stables tiene sucursales en Sacramento y San Francisco. Versailles Stables tiene sucursales en San Francisco y Boston. Echemos un vistazo a las partes interesadas relacionadas y sus requisitos.
| Función | Responsabilidades | Licencias necesarias |
|---|---|---|
| Administrador de Salesforce |
|
— |
| Agente del servicio de atención al cliente |
|
Salesforce Platform, Salesforce CRM o anteriores |
| Función | Responsabilidades | Licencias necesarias |
|---|---|---|
| Agente del servicio de atención al socio |
|
Customer Community Plus, Partner Community o superior |
| Gerente de territorios de socios | Administrar una sucursal de socios (territorio de servicio):
|
Customer Community Plus, Partner Community o superior |
| Contratistas o usuarios socios |
|
|
| Función | Responsabilidades | Licencias necesarias |
|---|---|---|
| Prospecto (usuario invitado) |
|
Invitado |
| Cliente (autenticado) |
|
Customer Community Plus, Partner Community o superior |
En este ejemplo, las partes interesadas de los socios tienen la licencia Partner Community.
Sitios de Experience Cloud
El administrador de Salesforce en Dream Horse crea estos sitios de Experience Cloud para las diferentes partes interesadas.
- Sitio de Experience Cloud para socios
- Sitio para contratistas y agentes de atención al cliente de socios que utilizan el flujo Nueva cita entrante para reservar citas. En el flujo Nueva cita entrante, la variable de flujo isOutboundCommunity se establece como true y la variable de flujo IsInbound se establece como false. Todos los socios utilizan el sitio y los datos disponibles para los socios dependen de su acceso a los datos.
- Sitio de Experience Cloud para clientes
- Sitio para clientes autenticados que utilizan el flujo Nueva cita entrante para reservar citas. Los clientes pueden utilizar los servicios de todos los concesionarios y todas sus ubicaciones.
- Sitio de Experience Cloud para usuarios invitados
- Sitio para usuarios invitados que utilizan el flujo Nueva cita entrante para reservar citas. Los clientes pueden utilizar los servicios de todos los concesionarios y todas sus ubicaciones.
Permisos y jerarquías
El administrador de Salesforce de Dream Horse utiliza estos permisos y jerarquías para garantizar que todos los usuarios solo tengan el acceso necesario.
- Jerarquía de función de portal: para crear una jerarquía para las partes interesadas de socios con la que los usuarios obtengan acceso a los datos propiedad de usuarios que estén por debajo de ellos en la jerarquía de funciones o que se compartan con ellos.
- Jerarquía de cuenta externa: para asegurarse de que una cuenta de socio tenga acceso a datos desde todas sus cuentas de territorio de servicio.
- Colaboración manual: para compartir registros que creó el administrador de Dream Horse con funciones de portal.
- Colaboración de Apex: para proporcionar acceso a registros de turnos al recurso de servicio correspondiente.
- Opción Uso compartido de citas de recursos: para compartir registros de citas con los recursos de servicio correspondientes.
- Reglas de colaboración: para compartir registros con los agentes de atención al cliente de Dream Horse (agentes del servicio de atención al cliente), usuarios invitados y usuarios autenticados.
Utilice la jerarquía de funciones de portal para asegurarse de que los usuarios que se encuentran por encima de la jerarquía tengan acceso a datos propiedad de usuarios que se encuentran por debajo de ellos en la jerarquía o que se compartan con ellos. Asegúrese de que en la configuración de Experiencias digitales, el número de funciones de socio esté definido en 3. Si utiliza licencias Customer Community Plus, asegúrese de que el número de funciones de cliente es 3.
De forma predeterminada, Salesforce crea estas funciones:
- Ejecutivo
- Gestor
- Usuario
Para asegurarse de que los usuarios socios, contratistas y asistentes solo puedan acceder a sus propios datos y a los datos que se comparten con ellos, agréguelos en el nivel más bajo de la jerarquía del portal. Para asegurarse de que los gestores de territorios pueden acceder solo a sus propios datos y a los datos de su equipo, agregue los gestores de territorios por encima de sus equipos en la jerarquía. Para asegurarse de que los agentes de atención a clientes socios puedan acceder a los datos de todos los empleados en el territorio de servicio, agréguelos por encima de los gestores de territorios en la jerarquía.

Utilice la jerarquía de cuentas externas para asegurarse de que una cuenta de socio tenga acceso a los datos desde todas sus cuentas de territorio de servicio.
Antes de configurar una jerarquía de cuentas externas, cree una cuenta para la compañía principal, Dream Horse.

A continuación, cree cuentas de socio para Chantilly Stables y Versailles Stables con Dream Horse como cuenta principal.

Cree también cuentas para cada sucursal (territorio de servicio) con su concesionario como su registro principal.

Para cada concesionario, cree una jerarquía de cuentas externas con el concesionario como registro principal y sus sucursales como registros secundarios. Por ejemplo, cree una jerarquía de cuentas externas con Chantilly Stables como registro principal y Chantilly Stables San Francisco y Chantilly Stables Sacramento como registros secundarios. Asegúrese también de que la jerarquía esté activa.

Después de configurar la jerarquía de funciones de portal y la jerarquía de cuentas externas, se comparten los registros automáticamente en las jerarquías. Para partes interesadas que están por debajo en las jerarquías, comparta los registros manualmente, como, por ejemplo, las sucursales (territorios de servicio) y los temas de citas (tipos de trabajo).
A continuación se ofrece una tabla que muestra las entidades y el acceso requerido para las diferentes funciones. El acceso a objetos se proporciona a través de perfiles de usuario y el acceso a registros se proporciona a través de la colaboración. El acceso general depende del acceso a objetos y registros. Salesforce aplica el más restrictivo de estos dos accesos para determinar el acceso general.
| Entidad | Admin | Agente del servicio de atención al cliente | Agente del servicio de atención al socio | Gerente de territorios de socios | Usuarios, contratistas y asistentes socios |
|---|---|---|---|---|---|
| Territorio de servicio (acceso a objetos) | Todos | Leer/Modificar | Leer | Leer/Modificar | Leer |
| Territorio de servicio (acceso a registros) | Propietario | Lectura/Escritura | Lectura/Escritura | Lectura/Escritura | Lectura/Escritura |
| Territorio de servicio (acceso general) | Propietario | Lectura/Escritura | Leer | Lectura/Escritura | Leer |
| Recurso de servicio (acceso a objetos) | Todos | Leer/Modificar | Leer/Modificar | Leer | Leer/Modificar |
| Recurso de servicio (acceso a registros) | Propietario | Lectura/Escritura | Lectura/Escritura | Lectura/Escritura | Propietario de su registro Recurso de servicio. Acceso de solo lectura a otros contratistas de su territorio. |
| Recurso de servicio (acceso general) | Propietario | Lectura/Escritura | Lectura/Escritura | Leer | Propietario de su registro Recurso de servicio. Acceso de solo lectura a otros contratistas de su territorio. |
| Grupo de tipos de trabajo y Tipo de trabajo (acceso a objetos) | Todos | Leer | Leer | Leer | Leer |
| Grupo de tipos de trabajo y Tipo de trabajo (acceso a registros) | Propietario | Leer | Leer | Leer | Leer |
| Grupo de tipos de trabajo y Tipo de trabajo (acceso general) | Propietario | Leer | Leer | Leer | Leer |
| Horarios laborales (acceso a objetos) | Todos | Leer | Leer | Leer/Modificar | Leer |
| Horarios laborales (acceso general) | Propietario | Leer | Leer | Lectura/Escritura | Leer |
| Cuenta/Prospecto/Oportunidad (acceso a objetos) | Todos | Leer/Crear/Modificar | Leer/Crear/Modificar | Sin acceso | Leer |
| Cuenta/Prospecto/Oportunidad (acceso a registros) | Propietario | Propietario | Propietario Lectura/Escritura |
Leer | Leer |
| Cuenta/Prospecto/Oportunidad (acceso general) | Propietario | Propietario | Lectura/Escritura | Sin acceso | Leer |
| Cita de servicio (acceso a objetos) | Todos | Leer/Crear/Modificar/Eliminar | Leer/Crear/Modificar/Eliminar | Leer | Leer/Crear/Modificar |
| Cita de servicio (acceso a registros) | Lectura/Escritura | Lectura o Lectura/Escritura | Lectura o Lectura/Escritura | Lectura o Lectura/Escritura | Lectura o Lectura/Escritura |
| Cita de servicio (acceso general) | Lectura/Escritura | Lectura o Lectura/Escritura | Lectura o Lectura/Escritura | Leer | Lectura o Lectura/Escritura |
| Turno (acceso a objetos) | Todos | Leer/Crear/Modificar/Eliminar | Leer | Leer/Crear/Modificar/Eliminar | Leer/Crear/Modificar/Eliminar |
| Turno (acceso a registros) | Lectura/Escritura | Lectura/Escritura | Lectura/Escritura | Lectura/Escritura | Propietario de su registro de turno. |
| Turno (acceso general) | Lectura/Escritura | Lectura/Escritura | Leer | Lectura/Escritura | Propietario de su registro de turno. |
A continuación se muestra cómo puede proporcionar el acceso de entidad requerido a las diferentes partes interesadas de clientes y socios:
- Configurar la colaboración manual: comparta manualmente cada registro con funciones del portal (Ejecutivo de socios, Gestor de socios y Usuario de socios) y proporcione el acceso necesario.
- Configurar la colaboración gestionada por Apex: utilice la colaboración gestionada por Apex para compartir registros de turnos con las partes interesadas de socios.
- Configurar reglas de colaboración: configure reglas de colaboración para cada objeto para proporcionar acceso a los agentes de atención al cliente del cliente.
- Activar la opción Uso compartido de citas de recursos: active esta opción para proporcionar automáticamente acceso a citas de servicio a los recursos de servicio para los que se creó la cita.
Utilice la colaboración manual para compartir estos registros con funciones de portal:
- Territorios de servicio
- Recursos de servicio (usuarios y activos)
- Grupos de tipos de trabajo
- Tipos de trabajo
- Cuentas, prospectos y oportunidades
En vez de compartir manualmente registros individuales, puede compartir manualmente registros de forma masiva mediante el Cargador de datos. Para obtener más información, consulte Crear reglas de colaboración manuales con Knowledge del Cargador de datos.
Veamos algunos ejemplos.
Para compartir el territorio de San Francisco (CS), agregue una colaboración manual para Ejecutivos de socios de Chantilly Stables San Francisco con el tipo Subordinadas de función, portal e internas y acceso de lectura/escritura.

Para compartir un recurso de servicio que pertenece a San Francisco (CS), agregue una colaboración manual para Gestores de socios de Chantilly Stables con el tipo Subordinadas de función, portal e internas y acceso de solo lectura.

Si utiliza turnos, cuando los gestores de territorios crean turnos para recursos de servicio, debe proporcionar a los recursos de servicio correspondientes acceso a registros de turnos. Para proporcionar acceso, utilice la colaboración gestionada por Apex para definir reglas de colaboración de forma programática.
A continuación se proporciona código de Apex de muestra que permite compartir automáticamente registros de turnos con el recurso de servicio correspondiente.
trigger Shift_share_with_Contractor on Shift (after insert, after update) {
if (trigger.isinsert) {
for (Shift shift: trigger.new) {
String srId = shift.ServiceResourceId;
// if shift has no ServiceResource, then no need to share shift
if (srId == null) {
continue;
}
ServiceResource sr = [Select Id, RelatedRecordId from ServiceResource Where Id=:srId];
String userId = sr.RelatedRecordId;
// if the user is owner, no need to create share row
if (userId == shift.OwnerId) {
continue;
}
// create a ShiftShare row
ShiftShare shiftShare = new ShiftShare (
ParentId=shift.Id, // Shift Id
AccessLevel='Edit', // AccessLevel - Read/Edit/All
RowCause='Manual', // RowCause - Manual
UserOrGroupId=userId // Id of the user/group
);
insert shiftShare;
}
}
else if (trigger.isupdate) {
for(Shift shift: trigger.new) {
Shift oldShift = trigger.oldMap.get(shift.Id);
String prevSrId = oldShift.ServiceResourceId;
String newSrId = shift.ServiceResourceId;
// if service resource is changed
if (prevSrId != newSrId) {
// if previous Service Resource was present, remove the share row for that
if (prevSrId != null) {
ServiceResource prevSr = [Select Id, RelatedRecordId from ServiceResource Where Id=:prevSrId];
String prevUserId = prevSr.RelatedRecordId;
// delete ShiftShare
List<ShiftShare> shiftShare = [Select Id from ShiftShare Where ParentId=:shift.Id and UserOrGroupId=:prevUserId];
if (shiftShare.size() > 0)
delete shiftShare;
}
// if Service Resource is updated, then create a share row
if(newSrId != null) {
ServiceResource newSr = [Select Id, RelatedRecordId from ServiceResource Where Id=:newSrId];
String userId = newSr.RelatedRecordId;
// if the user is owner, no need to create share row
if (userId == shift.OwnerId) {
continue;
}
// create a ShiftShare row
ShiftShare shiftShare = new ShiftShare (
ParentId=shift.Id, // Shift Id
AccessLevel='Edit', // AccessLevel - Read/Edit/All
RowCause='Manual', // RowCause - Manual
UserOrGroupId=userId // Id of the user/group
);
insert shiftShare;
}
}
}
}
}
Activar la opción Uso compartido de citas de recursos
Para asegurarse de que los recursos de servicio pueden acceder a sus citas, active Uso compartido de citas de recursos en la configuración de Salesforce Scheduler.

Si se crean citas antes de activar el parámetro, comparta esas citas manualmente con los recursos de servicio correspondientes.
Para compartir registros con agentes de atención al cliente, cree una función en Salesforce para agentes de atención al cliente. A continuación, cree una colaboración basada en criterios para cada objeto con el fin de compartir todos los registros con la función interna.
Veamos ejemplos de cómo compartir turnos y grupos de tipos de trabajo con todos los agentes de atención al cliente. Antes de crear reglas de colaboración, cree una función denominada Dream Horse CCA y asigne esta función a todos los agentes de atención al cliente del cliente.
Cree reglas de colaboración para compartir todos los grupos de tipos de trabajo activos con la función Dream Horse CCA.

Del mismo modo, cree reglas de colaboración para compartir todos los registros de turnos con la función Dream Horse CCA.

Para reservar citas, proporcione a los usuarios invitados y autenticados acceso a todos los registros de territorios de servicio, tipos de trabajo, grupos de tipos de trabajo, recursos de servicio y turnos.
Para proporcionar acceso a usuarios invitados, cree reglas de colaboración del tipo Acceso de usuario invitado basadas en criterios para compartir registros con el usuario invitado del sitio de Experience Cloud. Para proporcionar acceso a usuarios autenticados, cree un grupo público que incluya a todos los clientes autenticados. A continuación, cree reglas de colaboración del tipo basadas en criterios para compartir registros con el grupo público que contiene todos los clientes.
Echemos un vistazo a algunos ejemplos.
Cree reglas de colaboración para compartir todos los grupos de tipos de trabajo activos con los usuarios invitados.

Del mismo modo, cree reglas de colaboración para compartir todos los registros de turnos con los usuarios invitados.

Cree reglas de colaboración para compartir todos los grupos de tipos de trabajo activos con el grupo público que contiene todos los clientes.

Del mismo modo, cree reglas de colaboración para compartir todos los registros de turnos con el grupo público que contiene todos los clientes.

Tras completar la configuración, Dream Horse y sus partes interesadas tienen el acceso necesario. Por su parte, los concesionarios de Dream Horse no pueden acceder a los datos de los demás.
