Crea y administra vistas autorizadas

Puedes realizar las siguientes operaciones administrativas en los conjuntos y las vistas autorizadas.

Roles y permisos obligatorios

Para crear y administrar conjuntos de vistas autorizadas y vistas autorizadas, necesitas los siguientes permisos de IAM.

Conjuntos de vistas autorizadas:

Permiso Descripción
contactcenterinsights.authorizedViewSet.create Crea un conjunto de vistas autorizadas.
contactcenterinsights.authorizedViewSet.get Obtén detalles sobre un conjunto de vistas autorizadas.
contactcenterinsights.authorizedViewSet.update Actualiza un conjunto de vistas autorizadas existente.
contactcenterinsights.authorizedViewSet.delete Borra un conjunto de vistas autorizadas.
contactcenterinsights.authorizedViewSet.list Enumera los conjuntos de vistas autorizadas en un proyecto.

Vistas autorizadas:

Permiso Descripción
contactcenterinsights.authorizedView.create Crea una vista autorizada.
contactcenterinsights.authorizedView.get Obtiene detalles sobre una vista autorizada.
contactcenterinsights.authorizedView.update Actualiza una vista autorizada existente.
contactcenterinsights.authorizedView.delete Borra una vista autorizada.

Para otorgar acceso a las vistas autorizadas, necesitas los siguientes permisos:

Permiso Descripción
contactcenterinsights.authorizedView.setIamPolicy Establece la política de IAM en una vista autorizada.
contactcenterinsights.authorizedView.getIamPolicy Obtiene la política de IAM en una vista autorizada.

Funciones predefinidas

Los siguientes roles predefinidos de IAM proporcionan los permisos necesarios:

Rol Descripción
roles/contactcenterinsights.editor Proporciona acceso de lectura y escritura a todos los recursos de Customer Experience Insights.
roles/contactcenterinsights.admin Proporciona acceso de lectura y escritura a todos los recursos de Customer Experience Insights.

Conjuntos de vistas autorizadas

Los conjuntos de vistas autorizadas agrupan y simplifican el otorgamiento de permisos a varias vistas autorizadas.

Crea un conjunto de vistas autorizadas

REST

Para crear un conjunto de vistas autorizadas, necesitas el permiso contactcenterinsights.authorizedViewSet.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es un identificador opcional definido por el usuario para el conjunto de vistas autorizado que se creará. Este valor debe tener entre 1 y 63 caracteres, comenzar y terminar con [a-z0-9] y puede contener guiones (-) entre los caracteres.
  • DISPLAY_NAME: Es un nombre descriptivo para el conjunto de vistas autorizado.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets?authorized_view_set_id=AUTHORIZED_VIEW_SET_ID

Cuerpo JSON de la solicitud:

{
  "displayName": "DISPLAY_NAME"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID",
  "displayName": "DISPLAY_NAME",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Lee un conjunto de vistas autorizadas

REST

Para leer un conjunto de vistas autorizadas, se requiere el permiso contactcenterinsights.authorizedViewSet.get.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.

Método HTTP y URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID",
  "displayName": "DISPLAY_NAME",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Actualiza un conjunto de vistas autorizadas

REST

La actualización de un conjunto de vistas autorizadas requiere el permiso contactcenterinsights.authorizedViewSet.update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.
  • DISPLAY_NAME: Es un nombre descriptivo para el conjunto de vistas autorizado.
  • UPDATE_MASK: Son los campos que se actualizarán. Este valor es una lista de campos separados por comas.
    • display_name

Método HTTP y URL:

PATCH https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID?update_mask=display_name

Cuerpo JSON de la solicitud:

{
  "displayName": "DISPLAY_NAME"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID",
  "displayName": "DISPLAY_NAME",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Borra un conjunto de vistas autorizadas

REST

Para borrar un conjunto de vistas autorizadas, se requiere el permiso contactcenterinsights.authorizedViewSet.delete.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.

Método HTTP y URL:

DELETE https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{}

Enumera los conjuntos de vistas autorizadas

REST

Para mostrar una lista de los conjuntos de vistas autorizadas, se requiere el permiso contactcenterinsights.authorizedViewSet.list.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • PAGE_SIZE: Es la cantidad máxima de conjuntos de vistas autorizadas que se devolverán en la respuesta. Si el valor es cero, el servicio seleccionará un tamaño predeterminado. Es posible que una llamada devuelva menos objetos de los que se solicitaron. Un valor de `next_page_token` no vacío en la respuesta indica que hay más datos disponibles.
  • PAGE_TOKEN: Es el valor que devolvió la última `ListAuthorizedViewSetsResponse`. Este valor indica que se trata de una continuación de una llamada anterior a `ListAuthorizedViewSets` y que el sistema debe devolver la siguiente página de datos.
  • FILTER: Es una expresión para filtrar los conjuntos de vistas autorizadas. Por ejemplo:
    • create_time > "2022-01-01T00:00:00Z"
    • update_time < "2022-01-02T00:00:00Z"
    • display_name = "My Authorized View Set"
    • display_name =~ "My.*"
    • create_time > "2022-01-01T00:00:00Z" AND display_name = "My Authorized View Set"
    • create_time > "2022-01-01T00:00:00Z" OR display_name = "My Authorized View Set"
  • ORDER_BY: Es una expresión para ordenar los conjuntos de vistas autorizadas que se enumeran en la respuesta. Por ejemplo:
    • create_time
    • create_time desc
    • update_time
    • update_time desc
    • display_name
    • display_name desc

Método HTTP y URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets?page_size=PAGE_SIZE&page_token=PAGE_TOKEN&filter=FILTER&order_by=ORDER_BY

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "authorizedViewSets": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID",
      "displayName": "My Authorized View Set",
      "createTime": "2022-01-01T00:00:00.000000Z",
      "updateTime": "2022-01-01T00:00:00.000000Z"
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID_2",
      "displayName": "Another Authorized View Set",
      "createTime": "2022-01-02T00:00:00.000000Z",
      "updateTime": "2022-01-02T00:00:00.000000Z"
    },
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

Vistas autorizadas

Las vistas autorizadas definen una cantidad restringida de conversaciones y el rol de un agente o administrador para ellas.

Crear una vista autorizada

REST

Para crear una vista autorizada, se requiere el permiso contactcenterinsights.authorizedView.create.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizadas al que pertenece esta vista autorizada.
  • AUTHORIZED_VIEW_ID: Es un identificador opcional definido por el usuario para la vista autorizada que se creará. Este valor debe tener entre 1 y 63 caracteres, comenzar y terminar con [a-z0-9] y puede contener guiones (-) entre los caracteres.
  • DISPLAY_NAME: Es un nombre descriptivo para el conjunto de vistas autorizado.
  • CONVERSATION_FILTER: Es el filtro que se aplicará a los datos. Puedes usar los siguientes campos: `agent_id`.
    • agent_id = "agent_123"
    • agent_id = "agent_123" OR agent_id = "agent_456"
    • quality_metadata.agent_info.agent_id: "agent_456"
    • quality_metadata.agent_info.teams: "team_123"

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews?authorized_view_id=AUTHORIZED_VIEW_ID

Cuerpo JSON de la solicitud:

{
  "displayName": "DISPLAY_NAME",
  "conversation_filter": "CONVERSATION_FILTER"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID",
  "displayName": "DISPLAY_NAME",
  "conversationFilter": "CONVERSATION_FILTER",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Cómo leer una vista autorizada

REST

Para leer una vista autorizada, se requiere el permiso contactcenterinsights.authorizedView.get.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.
  • AUTHORIZED_VIEW_ID: Es el identificador de la vista autorizada.

Método HTTP y URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID",
  "displayName": "DISPLAY_NAME",
  "conversationFilter": "CONVERSATION_FILTER",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Actualiza una vista autorizada

REST

La actualización de una vista autorizada requiere el permiso contactcenterinsights.authorizedView.update.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizadas al que pertenece esta vista autorizada.
  • AUTHORIZED_VIEW_ID: Es el identificador de la vista autorizada que se actualizará.
  • DISPLAY_NAME: Es un nombre descriptivo para el conjunto de vistas autorizado.
  • CONVERSATION_FILTER: Es el filtro que se aplicará a los datos. Puedes usar los siguientes campos: `agent_id`.
    • agent_id = "agent_123"
    • agent_id = "agent_123" OR agent_id = "agent_456"
    • quality_metadata.agent_info.agent_id: "agent_456"
    • quality_metadata.agent_info.teams: "team_123"
  • UPDATE_MASK: Son los campos que se actualizarán. Este valor es una lista de campos separados por comas.
    • display_name
    • conversation_filter

Método HTTP y URL:

PATCH https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID?update_mask=display_name,conversation_filter

Cuerpo JSON de la solicitud:

{
  "displayName": "DISPLAY_NAME",
  "conversation_filter": "CONVERSATION_FILTER"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID",
  "displayName": "DISPLAY_NAME",
  "conversationFilter": "CONVERSATION_FILTER",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Borra una vista autorizada

REST

Para borrar una vista autorizada, se requiere el permiso contactcenterinsights.authorizedView.delete.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.
  • AUTHORIZED_VIEW_ID: Es el identificador de la vista autorizada.

Método HTTP y URL:

DELETE https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{}

Enumera las vistas autorizadas

REST

Para mostrar una lista de los conjuntos de vistas autorizadas, se requiere el permiso contactcenterinsights.authorizedViews.list.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es un identificador definido por el usuario para el conjunto de vistas autorizadas.
  • PAGE_SIZE: Es la cantidad máxima de vistas que se devolverán en la respuesta. Si el valor es cero, el servicio seleccionará un tamaño predeterminado. Es posible que una llamada devuelva menos objetos de los que se solicitaron. Un valor de `next_page_token` no vacío en la respuesta indica que hay más datos disponibles.
  • PAGE_TOKEN: Es el valor que devolvió la última `ListAuthorizedViewsResponse`. Este valor indica que se trata de una continuación de una llamada anterior a `ListAuthorizedViews` y que el sistema debe devolver la siguiente página de datos.
  • FILTER: Es la expresión de filtro para filtrar las vistas autorizadas que se enumeran en la respuesta. Puedes filtrar por los siguientes campos: "authorized_view_id", "display_name", "conversation_filter", "create_time" y "update_time". Puedes usar expresiones arbitrarias o AND. También puedes usar expresiones regulares para los campos de cadena.
    • Ejemplo: display_name = "My View"
    • Ejemplo: conversation_filter =~ ".*agent-1.*"
    • Ejemplo: create_time > "2022-01-01T00:00:00Z"
    • Ejemplo: display_name =~ ".*View.*"
    • Ejemplo: create_time > "2022-01-01T00:00:00Z" AND create_time <= "2022-01-02T00:00:00Z"
  • ORDER_BY: Es la expresión de ordenamiento para ordenar las vistas autorizadas que se enumeran en la respuesta.
    • Ejemplo: create_time
    • Ejemplo: update_time desc

Método HTTP y URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews?page_size=PAGE_SIZE&page_token=PAGE_TOKEN&filter=FILTER&order_by=ORDER_BY

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "authorizedViews": [
    {
      "name": "projects/my-project/locations/us-central1/authorizedViewSets/my-view-set/authorizedViews/my-view-1",
      "displayName": "My First View",
      "conversationFilter": "agent_id = \"agent-1\"",
      "createTime": "2022-01-01T00:00:00.000000Z",
      "updateTime": "2022-01-01T00:00:00.000000Z"
    },
    {
      "name": "projects/my-project/locations/us-central1/authorizedViewSets/my-view-set/authorizedViews/my-view-2",
      "displayName": "My Second View",
      "conversationFilter": "agent_id = \"agent-2\"",
      "createTime": "2022-01-01T00:00:00.000000Z",
      "updateTime": "2022-01-01T00:00:00.000000Z"
    }
  ],
  "nextPageToken": "next-page-token"
}

Configura la política de IAM en una vista autorizada

REST

Para establecer la política de IAM en una vista autorizada, se requiere el permiso contactcenterinsights.authorizedView.setIamPolicy.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.
  • AUTHORIZED_VIEW_ID: Es el identificador de la vista autorizada.
  • PRINCIPAL: Es la principal (usuario) a la que deseas otorgar acceso.
  • ROLE: Es el rol que se le otorgará al usuario.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/ROLE",
        "members": [
          "PRINCIPAL"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "version": 1,
  "etag": "BwW...",
  "bindings": [
    {
      "role": "roles/ROLE",
      "members": [
        "PRINCIPAL"
      ]
    }
  ]
}

Leer la política de IAM en una vista autorizada

REST

Para leer la política de IAM en una vista autorizada, se requiere el permiso contactcenterinsights.authorizedView.getIamPolicy.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación de tus datos de Customer Experience Insights.
  • AUTHORIZED_VIEW_SET_ID: Es el identificador del conjunto de vistas autorizado.
  • AUTHORIZED_VIEW_ID: Es el identificador de la vista autorizada.

Método HTTP y URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/AUTHORIZED_VIEW_SET_ID/authorizedViews/AUTHORIZED_VIEW_ID:getIamPolicy

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "version": 1,
  "etag": "BwW...",
  "bindings": [
    {
      "role": "roles/ROLE",
      "members": [
        "PRINCIPAL"
      ]
    }
  ]
}

Ejemplo de configuración de la organización

En este ejemplo, se muestra cómo configurar vistas autorizadas para una organización simplificada. En este ejemplo, se usa la API de REST para crear y administrar recursos en un proyecto ficticio llamado acme-corp.

Acme tiene la siguiente estructura:

  • Alice: Alice es la administradora del proyecto.
    • Roberto: Roberto es el administrador.
    • Carol: Carol es un agente.
    • Dave: Dave es un agente.

Cada usuario tiene un identificador principal asociado a su dirección de correo electrónico.

  • La de Alice es user:admin.alice@acme.com.
  • La de Bob es user:manager.bob@acme.com.
  • La de Carol es user:agent.carol@acme.com.
  • La de Dave es user:agent.dave@acme.com.

Cada agente tiene un agent_id que corresponde al campo Conversation.agent_id de sus conversaciones.

  • La de Carol es agent-carol.
  • La de Dave es agent-dave.

Requisitos

Cada usuario requiere los siguientes niveles de acceso:

  • Acceso de administrador: Como administrador, Alice tiene acceso completo a todos los datos y recursos.
  • Acceso de administrador: Como administrador, Bob puede crear, editar y ver conversaciones y análisis para sus respectivos equipos.
  • Acceso de agente: Como agentes, Carol y Dave solo pueden ver las conversaciones y los análisis en los que participaron.

Paso 1: Otorga acceso al proyecto

Agrega todos los usuarios al proyecto y otórgales roles/browser. Este rol le permite ver el proyecto y sus recursos.

Otorga acceso de navegador del proyecto a los usuarios

En el siguiente código, se ilustra cómo podrías otorgar el rol de navegador a cada miembro de Acme.

gcloud projects add-iam-policy-binding acme-corp \
    --member="user:admin.alice@acme.com" \
    --role="roles/browser"

gcloud projects add-iam-policy-binding acme-corp \
    --member="user:manager.bob@acme.com" \
    --role="roles/browser"

gcloud projects add-iam-policy-binding acme-corp \
    --member="user:agent.carol@acme.com" \
    --role="roles/browser"

gcloud projects add-iam-policy-binding acme-corp \
    --member="user:agent.dave@acme.com" \
    --role="roles/browser"

Para obtener más información, consulta Otorga un solo rol.

También puedes usar Grupos de Google para administrar el acceso a tu proyecto. En lugar de otorgar permisos a usuarios individuales, puedes otorgar roles/browser a un grupo. Por ejemplo, puedes crear un grupo llamado project-browsers@acme.com y agregar a Bob a este grupo. Luego, podrías otorgar el rol roles/browser a este grupo. Para obtener más información, consulta Grupos de Google.

Paso 2: Otorga permisos a nivel del proyecto a un administrador

Otorga tu administrador roles/contactcenterinsights.admin a nivel del proyecto. Por ejemplo, Alice es la administradora de Acme, por lo que obtendría acceso completo a todos los recursos con este rol.

Otorga el rol de administrador

En el siguiente código, se ilustra cómo podrías otorgarle a Alicia el rol de administrador:

gcloud projects add-iam-policy-binding acme-corp \
    --member="user:admin.alice@acme.com" \
    --role="roles/contactcenterinsights.admin"

Paso 3: Crea conjuntos de vistas autorizadas

Crea dos conjuntos de vistas autorizadas para agrupar las vistas autorizadas de los administradores y los agentes.

Crea un conjunto de vistas autorizadas del editor

REST

En este ejemplo, se crea un conjunto de vistas autorizadas llamado editor-view-set para agrupar las vistas que tienen permisos de administrador.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets?authorized_view_set_id=editor-view-set

Cuerpo JSON de la solicitud:

{
  "displayName": "Editor View Set"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/editor-view-set",
  "displayName": "Editor View Set",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Crea un conjunto de vistas autorizadas para el usuario

REST

En este ejemplo, se crea un conjunto de vistas autorizadas llamado viewer-view-set para agrupar las vistas que tienen permisos de agente.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets?authorized_view_set_id=viewer-view-set

Cuerpo JSON de la solicitud:

{
  "displayName": "Viewer View Set"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/viewer-view-set",
  "displayName": "Viewer View Set",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z"
}

Paso 4: Otorga permisos a nivel del proyecto a los conjuntos de vistas autorizados

Las vistas autorizadas son recursos con identidades integradas y requieren permisos para acceder a los datos de {product_name}. Para otorgar a las vistas autorizadas la capacidad de acceder a conversaciones y operaciones, otórgales los siguientes roles:

  • roles/contactcenterinsights.editor para todas las vistas autorizadas en editor-view-set
  • roles/contactcenterinsights.viewer para todas las vistas autorizadas en viewer-view-set

Para obtener más información, consulta cómo otorgar o revocar un rol.

Otorga el rol de editor a editor-view-set

En este ejemplo, se otorga roles/contactcenterinsights.editor a editor-view-set.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="principalSet://contactcenterinsights.googleapis.com/projects/PROJECT_NUMBER/type/AuthorizedView/ancestor.name/authorizedViewSets/editor-view-set" \
    --role="roles/contactcenterinsights.editor"

Otorga el rol de visualizador a viewer-view-set

En este ejemplo, se otorga el rol roles/contactcenterinsights.viewer al conjunto de vistas autorizadas viewer-view-set.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="principalSet://contactcenterinsights.googleapis.com/projects/PROJECT_NUMBER/type/AuthorizedView/ancestor.name/authorizedViewSets/viewer-view-set" \
    --role="roles/contactcenterinsights.viewer"

Paso 5: Crea vistas autorizadas

Crea una vista autorizada para cada administrador y agente, y aplica los filtros adecuados.

Crea una vista autorizada del administrador

REST

En este ejemplo, se crea una vista autorizada con el ID bobs-editor-view que filtra las conversaciones en agent_id = carol OR agent_id = dave.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViews?authorized_view_id=bobsEditorView

Cuerpo JSON de la solicitud:

{
  "displayName": "Bob's Editor View",
  "value": {
    "filter": "agent_id = \"agent-carol\" OR agent_id = \"agent-dave\""
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViews/bobs-editor-view",
  "displayName": "Bob's Editor View",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z",
  "conversationFilter":"agent_id = \"agent-carol\" OR agent_id = \"agent-dave\""
}

Cómo otorgar el rol de editor autorizado a un administrador

REST

En este ejemplo, se otorga roles/contactcenterinsights.authorizedEditor al administrador de Acme, Bob, en bobs-editor-view.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/editor-view-set/authorizedViews/bobs-editor-view:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/contactcenterinsights.editor",
        "members": [
          "user:manager.bob@acme.com"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "version": 1,
  "etag": "BwW...",
  "bindings": [
    {
      "role": "roles/contactcenterinsights.editor",
      "members": [
        "user:manager.bob@acme.com"
      ]
    }
  ]
}

Crea una vista autorizada del agente

REST

En este ejemplo, se crea una vista autorizada para el agente de Acme llamado Carlos. Esta vista autorizada tiene el ID carols-viewer-view, que filtra las conversaciones para agent_id = agent-carol.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViews?authorized_view_id=carols-viewer-view

Cuerpo JSON de la solicitud:

{
  "displayName": "Carol's Viewer View",
  "value": {
    "filter": "agent_id = \"agent-carol\""
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViews/carols-viewer-view",
  "displayName": "Carol's Viewer View",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z",
  "conversationFilter": "agent_id = \"agent-carol\""
}

Otorga el rol de visualizador autorizado a un agente

REST

En este ejemplo, se otorga roles/contactcenterinsights.authorizedViewer a Carol en carols-viewer-view.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/viewer-view-set/authorizedViews/carols-viewer-view:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/contactcenterinsights.viewer",
        "members": [
          "user:agent.carol@acme.com"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "version": 1,
  "etag": "BwW...",
  "bindings": [
    {
      "role": "roles/contactcenterinsights.viewer",
      "members": [
        "user:agent.carol@acme.com"
      ]
    }
  ]
}

Crea otra vista autorizada del agente

REST

En este ejemplo, se crea una vista autorizada para el agente de Acme llamado Dave. Esta vista autorizada tiene el ID daves-viewer-view, que filtra las conversaciones para agent_id = agent-dave.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViews?authorized_view_id=daves-viewer-view

Cuerpo JSON de la solicitud:

{
  "displayName": "Dave's Viewer View",
  "value": {
    "filter": "agent_id = \"agent-dave\""
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/authorizedViews/daves-viewer-view",
  "displayName": "Dave's Viewer View",
  "createTime": "2022-01-01T00:00:00.000000Z",
  "updateTime": "2022-01-01T00:00:00.000000Z",
  "conversationFilter": "agent_id = \"agent-dave\""
}

Cómo otorgar el rol de visualizador autorizado a otro agente

REST

En este ejemplo, se otorga roles/contactcenterinsights.authorizedViewer a Dave en daves-viewer-view.

Método HTTP y URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authorizedViewSets/viewer-view-set/authorizedViews/daves-viewer-view:setIamPolicy

Cuerpo JSON de la solicitud:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/contactcenterinsights.viewer",
        "members": [
          "user:agent.dave@acme.com"
        ]
      }
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "version": 1,
  "etag": "BwW...",
  "bindings": [
    {
      "role": "roles/contactcenterinsights.viewer",
      "members": [
        "user:agent.dave@acme.com"
      ]
    }
  ]
}

Próximos pasos