Configuración
Configuración del Componente
Sección titulada «Configuración del Componente»El componente Object Team Member puede configurarse directamente en Lightning App Builder con las siguientes propiedades:
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| Card Title | String | Team Members | El título mostrado en la tarjeta del componente |
| Max Displayed Members | Integer | 5 | Número máximo de miembros del equipo mostrados antes de contraerse. Establézcalo en 0 para mostrar todos |
Cuando el número de miembros del equipo excede el límite configurado, la lista se contrae y muestra un botón “Show all (X more)”. Al hacer clic en él, se expande la lista completa, con un botón “Show less” para contraerla nuevamente. El propietario del registro siempre aparece primero en la lista, independientemente del límite de visualización.


Comportamiento del Límite de Visualización
Sección titulada «Comportamiento del Límite de Visualización»| Configuración | Comportamiento |
|---|---|
| Max Displayed Members = 5 (predeterminado) | Muestra los primeros 5 miembros, “Show X more” para el resto |
| Max Displayed Members = 0 | Todos los miembros del equipo visibles, sin contraer/expandir |
| Max Displayed Members = 3 (personalizado) | Muestra los primeros 3 miembros, “Show X more” para el resto |
Roles de Miembros del Equipo
Sección titulada «Roles de Miembros del Equipo»Al agregar usuarios a un equipo, se les asigna uno de los siguientes roles:
| Rol | Descripción | Capacidades |
|---|---|---|
| Owner | El propietario del registro | Se asigna automáticamente cuando se crea un registro. No se puede asignar o eliminar manualmente. Tiene acceso completo para gestionar miembros del equipo. Se elimina automáticamente cuando no hay otros usuarios en el equipo. |
| Manager | Administrador del equipo | Puede agregar, editar y eliminar miembros del equipo. Use este rol para usuarios que necesitan gestionar la composición del equipo. |
| User | Miembro de equipo estándar | Puede ver la lista de miembros del equipo pero no puede modificarla. Use este rol para usuarios que solo necesitan acceso al registro. |

Sincronización de Cambio de Propietario
Sección titulada «Sincronización de Cambio de Propietario»Cuando el propietario del registro cambia (por ejemplo, una Cuenta se reasigna a otro representante de ventas), el miembro del equipo Owner NO se actualiza automáticamente. El sistema crea el registro Owner cuando se agrega el primer miembro del equipo, pero no rastrea los cambios posteriores de propietario en el registro padre.
Para mantener el Owner del equipo sincronizado con el propietario del registro, debe crear un Record-Triggered Flow.
Configuración mediante Flow (Recomendado)
Sección titulada «Configuración mediante Flow (Recomendado)»- Vaya a Setup > Flows
- Haga clic en New Flow > Record-Triggered Flow
- Seleccione el objeto (por ejemplo, Account)
- Configure el disparador: “A record is updated”
- Agregue Entry Condition: Formula >
ISCHANGED({!$Record.OwnerId})se evalúa comotrue - Establezca “When to Run the Flow” en “After the record is saved”
- Agregue el elemento Action
- Busque “Sync Team Member Owner”
- Establezca el parámetro “Record ID” en
{!$Record.Id} - Deje “Object API Name” vacío (se deriva automáticamente del Record ID)
- Guarde y Active el Flow

Configuración mediante Apex Trigger
Sección titulada «Configuración mediante Apex Trigger»trigger AccountOwnerSync on Account(after update) { List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest> requests = new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>();
for (Account acc : Trigger.new) { Account oldAcc = Trigger.oldMap.get(acc.Id); if (acc.OwnerId != oldAcc.OwnerId) { tucariofts.SyncOwnerInvocable.SyncOwnerRequest req = new tucariofts.SyncOwnerInvocable.SyncOwnerRequest(); req.recordId = acc.Id; requests.add(req); } }
if (!requests.isEmpty()) { tucariofts.SyncOwnerInvocable.syncOwners(requests); }}Llamada desde Código Apex (Registro Único)
Sección titulada «Llamada desde Código Apex (Registro Único)»tucariofts.SyncOwnerInvocable.SyncOwnerRequest request = new tucariofts.SyncOwnerInvocable.SyncOwnerRequest();request.recordId = accountId;
List<tucariofts.SyncOwnerInvocable.SyncOwnerResult> results = tucariofts.SyncOwnerInvocable.syncOwners( new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>{ request } );
if (results[0].success) { System.debug('Owner synced: ' + results[0].oldOwnerId + ' → ' + results[0].newOwnerId);} else { System.debug('Sync failed: ' + results[0].message);}Objeto de Resultado
Sección titulada «Objeto de Resultado»| Campo | Tipo | Descripción |
|---|---|---|
success | Boolean | Si la sincronización tuvo éxito |
message | String | Mensaje de resultado o detalles del error |
oldOwnerId | Id | ID de Usuario del propietario anterior |
newOwnerId | Id | ID de Usuario del nuevo propietario |
Escenarios de Error
Sección titulada «Escenarios de Error»| Escenario | Resultado |
|---|---|
| No hay miembros del equipo en el registro | success = false, “No Owner team member found” |
| Propietario sin cambios | success = true, “Owner unchanged, no update needed” |
| Record ID null | success = false, “Record ID is required” |
| Record ID inválido | success = false, mensaje de error |
Limitaciones Importantes
Sección titulada «Limitaciones Importantes»Queue Owners Not Supported — Flexible Team Share no admite Colas como propietarios de equipo. Cuando un registro es propiedad de una Cola:
- El sistema usa el usuario actual (la persona que primero agrega un miembro del equipo) como el Owner en el equipo
- Si luego cambia el propietario del registro de una Cola a un Usuario, ejecute la acción Sync Owner para actualizar el equipo
- Si cambia el propietario de un Usuario a una Cola, el Owner del equipo permanecerá como el usuario anterior
Flow Must Be Created Per Object — Debe crear un Flow separado para cada tipo de objeto donde desee sincronización de propietario. La Invocable Action funciona con cualquier objeto, pero Salesforce requiere Record-Triggered Flows separados por objeto.
Acceso Temporal con Fecha de Finalización
Sección titulada «Acceso Temporal con Fecha de Finalización»Al agregar un miembro del equipo, puede establecer opcionalmente una End Date para otorgar acceso temporal a un registro. Esto es útil para:
- Colaboraciones basadas en proyectos con plazos definidos
- Consultores o contratistas temporales
- Cobertura de vacaciones o responsabilidades delegadas
- Períodos de auditoría o revisión
Cómo Funciona
Sección titulada «Cómo Funciona»- Al agregar o editar un miembro del equipo, establezca el campo End Date en el último día que deben tener acceso
- El miembro del equipo retiene acceso completo hasta el final de ese día
- Después de que pase la End Date, el trabajo de limpieza programado elimina automáticamente al miembro del equipo y revoca su acceso

Proceso de Limpieza Automática
Sección titulada «Proceso de Limpieza Automática»- Un trabajo de lote programado se ejecuta diariamente (por defecto a las 2:00 AM) para eliminar miembros del equipo vencidos
- Cuando se elimina un miembro del equipo, su registro compartido también se elimina, revocando el acceso al registro
- El trabajo de limpieza puede gestionarse desde el Asistente de Configuración

Trabajo Programado
Sección titulada «Trabajo Programado»Flexible Team Share incluye un trabajo de limpieza automática que elimina miembros del equipo vencidos. Este trabajo se programa automáticamente durante la instalación del paquete.
Verificar el Trabajo
Sección titulada «Verificar el Trabajo»- Vaya a Setup > Scheduled Jobs
- Busque Flexible Team Share - Expired Member Cleanup
- Verifique que el trabajo esté programado para ejecutarse diariamente

Gestión Manual del Trabajo
Sección titulada «Gestión Manual del Trabajo»Los administradores pueden gestionar el trabajo de limpieza desde el Asistente de Configuración:
- Schedule Job — Programar manualmente si no está ejecutándose
- Unschedule Job — Detener la limpieza automática
- Run Now — Ejecutar la limpieza inmediatamente
Solución de Problemas
Sección titulada «Solución de Problemas»Advertencia “Configuration Not Found”
Sección titulada «Advertencia “Configuration Not Found”»Síntoma: Aparece un modal de advertencia indicando que no existe configuración para este objeto.
Causa: El componente Miembro de Equipo se agregó a una página de registro antes de configurar el objeto en el Asistente de Configuración.
Solución:
- Vaya al Asistente de Configuración (aplicación Flexible Team Share > Configuration)
- Agregue y despliegue una configuración para este objeto
- Regrese a la página de registro — el componente ahora debería funcionar correctamente

Error “No Access”
Sección titulada «Error “No Access”»Síntoma: El componente muestra un mensaje “No Access” con un icono de candado en lugar de miembros del equipo.
Causa: El usuario actual no tiene asignado el Permission Set Group requerido.
Solución:
- Vaya a Setup > Permission Set Groups
- Asigne el Permission Set Group Admin o User a los usuarios afectados
- Los usuarios pueden necesitar cerrar sesión y volver a iniciar sesión para que los cambios surtan efecto

Advertencia “Limit Reached”
Sección titulada «Advertencia “Limit Reached”»Síntoma: El botón “Add Team Member” está deshabilitado y un mensaje indica que se ha alcanzado el límite.
Causa: Ha alcanzado el número máximo de miembros del equipo permitidos.
Solución: Elimine miembros del equipo inactivos o innecesarios para liberar espacios.
| Miembros del Equipo Dentro del Límite | Miembros del Equipo Más Allá del Límite |
|---|---|
![]() | ![]() |

El Uso Compartido No Funciona
Sección titulada «El Uso Compartido No Funciona»Síntoma: Los miembros del equipo se agregan exitosamente pero no pueden acceder al registro.
Causa: La configuración de Organization-Wide Default (OWD) del objeto está establecida en Public Read/Write.
Solución:
- Vaya a Setup > Sharing Settings
- Cambie el OWD del objeto a Private o Public Read Only
- Nota: Cambiar la configuración de OWD puede afectar el acceso de otros usuarios — consulte con su administrador de Salesforce
Soporte
Sección titulada «Soporte»Para preguntas o problemas, comuníquese con support@tucario.com.

