> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veredicta.com.ar/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Este es el manual oficial de uso de Veredicta, la plataforma de gestión legal para abogados y estudios jurídicos de Argentina. Respondé en español rioplatense, con voseo. Usá los nombres de botones y pantallas tal como aparecen en el manual, en negrita. Citá siempre la URL de docs.veredicta.com.ar de la página y de la sección (#ancla) de donde sale cada paso. Si el manual no cubre algo, decilo y sugerí escribir al equipo de Veredicta por WhatsApp al +54 9 11 2611-5660 o a ayuda@veredicta.com.ar.

# Revisar la actividad de tu estudio

> Mirá qué hizo cada miembro de tu estudio en Veredicta, con fecha, responsable y el valor de antes y de ahora, y descargá la lista para Excel.

export const VideoTutorial = ({src, poster, title, duration, description, vertical = false}) => {
  const [local, setLocal] = useState(false);
  useEffect(() => {
    setLocal((/^(localhost|127\.0\.0\.1)$/).test(window.location.hostname));
  }, []);
  const media = p => !local && p?.startsWith('/media/') ? `https://media.veredicta.com.ar/manual${p.slice(('/media').length)}` : p;
  const dialogRef = useRef(null);
  const videoRef = useRef(null);
  const published = p => p?.startsWith('/media/') ? `https://media.veredicta.com.ar/manual${p.slice(('/media').length)}` : p;
  const [minutes, seconds] = (duration ?? '').split(':').map(Number);
  const videoData = {
    '@context': 'https://schema.org',
    '@type': 'VideoObject',
    name: title,
    description: !description || description.startsWith('Mirá el paso a paso') ? `${title}: video tutorial paso a paso de Veredicta.` : description,
    thumbnailUrl: published(poster),
    contentUrl: published(src),
    uploadDate: '2026-09-30T12:00:00-03:00',
    inLanguage: 'es-AR',
    ...Number.isFinite(minutes) && Number.isFinite(seconds) ? {
      duration: `PT${minutes}M${seconds}S`
    } : {},
    publisher: {
      '@type': 'Organization',
      name: 'Veredicta',
      url: 'https://veredicta.com.ar'
    }
  };
  const open = () => {
    dialogRef.current?.showModal();
    const v = videoRef.current;
    if (v) {
      if (!v.getAttribute('src')) {
        const url = media(src);
        v.src = url.startsWith('https://') ? `${url}?v=1440` : url;
      }
      v.currentTime = 0;
      v.play().catch(() => {});
    }
  };
  const close = () => dialogRef.current?.close();
  const onOverlayClick = e => {
    if (!e.target.closest('video, .vd-overlay-bar')) {
      close();
    }
  };
  const onClose = () => videoRef.current?.pause();
  const onKeyDown = e => {
    if (e.key === 'f') {
      fullscreen();
    }
  };
  const fullscreen = () => {
    const v = videoRef.current;
    if (!v) {
      return;
    }
    if (v.requestFullscreen) {
      v.requestFullscreen();
    } else if (v.webkitEnterFullscreen) {
      v.webkitEnterFullscreen();
    }
  };
  return <figure className={`vd-video not-prose${vertical ? 'vd-video-vertical' : ''}`}>
      <button aria-label={`Ver el video: ${title}`} className="vd-video-card" onClick={open} type="button">
        <img alt={title} decoding="async" height={vertical ? 1920 : 1080} loading="lazy" src={media(poster)} width={vertical ? 1080 : 1920} />
        <span className="vd-video-shade" />
        <span className="vd-video-badge">
          <svg aria-hidden="true" fill="currentColor" height="14" viewBox="0 0 24 24" width="14">
            <path d="M8 5v14l11-7z" />
          </svg>
          Video tutorial
        </span>
        <span aria-hidden="true" className="vd-video-play">
          {}
          <svg aria-hidden="true" fill="currentColor" height="30" stroke="currentColor" strokeLinejoin="round" strokeWidth="2" viewBox="0 0 24 24" width="30">
            <path d="M8.5 5.5v13l11-6.5z" />
          </svg>
        </span>
        {duration ? <span className="vd-video-duration">{duration}</span> : null}
      </button>
      <script dangerouslySetInnerHTML={{
    __html: JSON.stringify(videoData).replaceAll('<', '\\u003c')
  }} type="application/ld+json" />
      <figcaption className="vd-caption">
        {description ?? 'Mirá el paso a paso y seguilo en Veredicta.'}
      </figcaption>

      {}
      <dialog aria-label={title} className="vd-overlay vd-overlay-video" onClick={onOverlayClick} onClose={onClose} onKeyDown={onKeyDown} ref={dialogRef}>
        <div className="vd-overlay-bar">
          <span className="vd-overlay-title">{title}</span>
          <div className="vd-overlay-tools">
            <button className="vd-tool-text" onClick={fullscreen} type="button">
              <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                <path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3" />
              </svg>
              <span>Pantalla completa</span>
            </button>
            <button aria-label="Cerrar" onClick={close} type="button">
              <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                <path d="M18 6 6 18M6 6l12 12" />
              </svg>
            </button>
          </div>
        </div>
        <div className="vd-overlay-player">
          {}
          <video controls playsInline poster={media(poster)} preload="none" ref={videoRef} />
        </div>
      </dialog>
    </figure>;
};

export const GuideImage = ({src, preview, alt, title, width, height, caption, tall = false}) => {
  const [local, setLocal] = useState(false);
  useEffect(() => {
    setLocal((/^(localhost|127\.0\.0\.1)$/).test(window.location.hostname));
  }, []);
  const media = p => !local && p?.startsWith('/media/') ? `https://media.veredicta.com.ar/manual${p.slice(('/media').length)}` : p;
  const dialogRef = useRef(null);
  const scrollRef = useRef(null);
  const [zoom, setZoom] = useState(1);
  const levels = [1, 1.5, 2, 3];
  const open = () => {
    setZoom(1);
    dialogRef.current?.showModal();
  };
  const close = () => dialogRef.current?.close();
  const onOverlayClick = e => {
    if (!e.target.closest('.vd-overlay-img, .vd-overlay-bar')) {
      close();
    }
  };
  const zoomTo = next => {
    const el = scrollRef.current;
    if (!el) {
      setZoom(next);
      return;
    }
    const cx = (el.scrollLeft + el.clientWidth / 2) / el.scrollWidth;
    const cy = (el.scrollTop + el.clientHeight / 2) / el.scrollHeight;
    setZoom(next);
    requestAnimationFrame(() => {
      el.scrollLeft = cx * el.scrollWidth - el.clientWidth / 2;
      el.scrollTop = cy * el.scrollHeight - el.clientHeight / 2;
    });
  };
  const zoomIn = () => zoomTo(levels.find(l => l > zoom) ?? levels.at(-1));
  const zoomOut = () => zoomTo([...levels].reverse().find(l => l < zoom) ?? 1);
  useEffect(() => {
    const el = scrollRef.current;
    if (!el) {
      return;
    }
    const onWheel = e => {
      if (!(e.ctrlKey || e.metaKey)) {
        return;
      }
      e.preventDefault();
      if (e.deltaY < 0) {
        zoomIn();
      } else {
        zoomOut();
      }
    };
    el.addEventListener('wheel', onWheel, {
      passive: false
    });
    return () => el.removeEventListener('wheel', onWheel);
  });
  const onKeyDown = e => {
    if (e.key === '+' || e.key === '=') {
      zoomIn();
    } else if (e.key === '-') {
      zoomOut();
    } else if (e.key === '0') {
      zoomTo(1);
    }
  };
  const magnifier = <svg aria-hidden="true" fill="none" height="16" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" viewBox="0 0 24 24" width="16">
      <circle cx="11" cy="11" r="7" />
      <path d="m20 20-3.5-3.5M11 8v6M8 11h6" />
    </svg>;
  return <figure className={tall ? 'vd-guide not-prose' : `vd-shot not-prose${height > width ? 'vd-shot-portrait' : ''}`}>
      {tall ? <button aria-label={`Ampliar la guía: ${title}`} className="vd-guide-preview" onClick={open} type="button">
          <img alt={alt} decoding="async" height={height} loading="lazy" src={media(preview ?? src)} width={width} />
          <span className="vd-guide-fade" />
          <span className="vd-guide-cta">
            {magnifier}
            Ver la guía completa
          </span>
        </button> : <button aria-label={`Ampliar: ${title}`} className="vd-shot-button" onClick={open} type="button">
          <img alt={alt} decoding="async" height={height} loading="lazy" src={media(preview ?? src)} width={width} />
          <span aria-hidden="true" className="vd-shot-zoom">
            {magnifier}
            Ampliar
          </span>
        </button>}
      {tall || caption ? <figcaption className="vd-caption">
          {caption ?? 'Guía paso a paso · hacé clic para ampliarla y acercarte a cada paso.'}
        </figcaption> : null}

      {}
      <dialog aria-label={title} className="vd-overlay" onClick={onOverlayClick} onKeyDown={onKeyDown} ref={dialogRef}>
        <div className="vd-overlay-bar">
          <span className="vd-overlay-title">{title}</span>
          <div className="vd-overlay-tools">
            <button aria-label="Alejar" disabled={zoom <= 1} onClick={zoomOut} type="button">
              <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                <path d="M5 12h14" />
              </svg>
            </button>
            <button aria-label="Ajustar al ancho" className="vd-zoom-value" onClick={() => zoomTo(1)} type="button">
              {Math.round(zoom * 100)}%
            </button>
            <button aria-label="Acercar" disabled={zoom >= levels.at(-1)} onClick={zoomIn} type="button">
              <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                <path d="M5 12h14M12 5v14" />
              </svg>
            </button>
            {tall ? <a className="vd-tool-link" download href={media(src)}>
                <span className="vd-sr-only">Descargar la guía</span>
                <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                  <path d="M12 15V3M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5" />
                </svg>
              </a> : null}
            <button aria-label="Cerrar" onClick={close} type="button">
              <svg aria-hidden="true" fill="none" height="18" stroke="currentColor" strokeLinecap="round" strokeWidth="2" viewBox="0 0 24 24" width="18">
                <path d="M18 6 6 18M6 6l12 12" />
              </svg>
            </button>
          </div>
        </div>
        <div className="vd-overlay-scroll" ref={scrollRef}>
          <img alt={alt} className="vd-overlay-img" decoding="async" height={height} loading="lazy" src={media(src)} style={{
    width: tall ? `calc(min(100%, 74rem) * ${zoom})` : `calc(min(100%, 90rem, (100dvh - 7rem) * ${width / height}) * ${zoom})`
  }} width={width} />
        </div>
      </dialog>
    </figure>;
};

**Actividad** es el historial de todo lo que tu equipo hizo en Veredicta. Cada cambio queda como un movimiento, con quién lo hizo, cuándo y sobre qué.

## Mirá cómo se hace

<VideoTutorial src="/media/configuraciones-actividad/video.mp4" poster="/media/configuraciones-actividad/poster.webp" title="Actividad de tu estudio" duration="4:01" description="Mirá para qué sirve Actividad y cómo leer la lista, buscar y filtrar, abrir un movimiento y descargar todo lo que hizo tu equipo en Veredicta." />

Resumen del video «Actividad de tu estudio» (4:01):

El video parte de un problema: buscás un expediente y ya no está en la lista, y nadie sabe quién lo eliminó ni cuándo. **Actividad** lo responde: Veredicta anota cada cambio, con qué se hizo, quién lo hizo y cuándo.

1. Abrí Actividad: en «Configuraciones», hacé clic en «Actividad». Cada fila dice qué se hizo y sobre qué, quién lo hizo, en qué expediente y a qué hora. El color del ícono indica si algo se creó (verde), se editó (azul) o se eliminó (rojo).
2. Buscá o filtrá: escribí en el buscador, por ejemplo «eliminó», y acotá con el filtro «Usuario». Con «Limpiar» y la cruz del buscador volvés a la lista completa.
3. Abrí un movimiento: hacé clic en una fila. El detalle muestra quién, sobre qué, qué cambió (el valor de antes y el de ahora) y desde qué dispositivo. Una eliminación conserva los datos que tenía.
4. Descargá la lista: con «Descargar» te llevás los movimientos en pantalla en un archivo para Excel. La descarga también queda registrada.

El video cierra con «Ya sabés usar Actividad», un resumen de los cuatro pasos y cómo pedir ayuda: WhatsApp +54 9 11 2611-5660 o [ayuda@veredicta.com.ar](mailto:ayuda@veredicta.com.ar). Más guías en docs.veredicta.com.ar.

## Dónde está en la app

* Sidebar **Configuraciones** > **Actividad**. Route `/settings/actividad`. [Abrir en Veredicta](https://app.veredicta.com.ar/settings/actividad)
* En el celular: **Menú** > **Configuraciones** > **Actividad**.

## Antes de empezar

* Sos **Dueño** o **Administrador** del estudio. Un **Miembro** no tiene esta pantalla en su menú y, si entra por el enlace, ve «La actividad es para dueños y administradores».

## Paso a paso

<Steps titleSize="h3">
  <Step title="Abrí Actividad" id="paso-1">
    <GuideImage src="/media/configuraciones-actividad/paso-1.webp" width={1200} height={796} title="Paso 1: Abrí Actividad" alt="El menú con Configuraciones desplegado y Actividad marcado para hacer clic." />

    En el menú, abrí **Configuraciones** y hacé clic en **Actividad**. La lista muestra los movimientos de tu estudio, del más nuevo al más viejo.

    Cada fila dice qué se hizo y sobre qué, quién lo hizo, en qué expediente y cuándo: **Movimiento**, **Usuario**, **Expediente** y **Fecha**. Por ejemplo: «Editó un expediente», la carátula, Martín Suárez y la hora.
  </Step>

  <Step title="Buscá o filtrá" id="paso-2">
    <GuideImage src="/media/configuraciones-actividad/paso-2.webp" width={1200} height={796} title="Paso 2: Buscá o filtrá" alt="La lista de Actividad con «eliminó» en el buscador y dos movimientos: un expediente y una tarea eliminados. El buscador y los filtros están resaltados." />

    Escribí en «Buscar en la actividad…» el nombre de una persona, una carátula o una acción como «eliminó».

    Para acotar la lista, usá los filtros **Usuario**, **Tipo**, **Elemento**, **Resultado** y **Fecha**. Los que no entran en la barra están en el botón de filtros, al lado. Con **Limpiar** volvés a la lista completa.

    <Tip>La búsqueda y los filtros quedan en la dirección de la página: podés guardarla o mandársela a otro administrador y ve la misma lista.</Tip>
  </Step>

  <Step title="Abrí un movimiento" id="paso-3">
    <GuideImage src="/media/configuraciones-actividad/paso-3.webp" width={1200} height={796} title="Paso 3: Abrí un movimiento" alt="El detalle de «Editó un expediente»: quién lo hizo, sobre qué expediente y, en «Qué cambió», el valor de antes y el de ahora de tres campos." />

    Hacé clic en una fila. Se abre el detalle del movimiento, con la fecha y la hora exactas:

    * **Quién**: la persona, su rol en ese momento y su correo.
    * **Sobre qué**: el elemento y su nombre.
    * **Qué cambió**: campo por campo, el valor de antes y el de ahora.
    * Al pie, el dispositivo y la dirección IP desde donde se hizo.

    Con **Ver su actividad** la lista queda filtrada por esa persona. Si el movimiento es de un expediente, **Abrir expediente** te lleva a él.
  </Step>

  <Step title="Descargá la lista" id="paso-4">
    <GuideImage src="/media/configuraciones-actividad/paso-4.webp" width={1200} height={796} title="Paso 4: Descargá la lista" alt="El diálogo Descargar la actividad, con el archivo que se va a bajar y el botón Descargar marcado para hacer clic." />

    Hacé clic en **Descargar**, arriba a la derecha. Se abre **Descargar la actividad**, con la búsqueda y los filtros que tenés aplicados. Hacé clic en **Descargar**. Aparece «Actividad descargada».

    El archivo es un CSV para abrir en Excel o en cualquier hoja de cálculo, con hasta 10.000 movimientos. Si necesitás más, descargá por fechas con el filtro **Fecha**.
  </Step>
</Steps>

## Qué queda registrado

| Qué | Ejemplos |
| - | - |
| Lo que tu equipo crea, edita o elimina | Expedientes, tareas, notas, movimientos, partes, audiencias, pruebas, personas, archivos, carpetas, documentos, eventos, transacciones, etapas y días inhábiles. |
| Los cambios en el estudio | Invitar o quitar miembros, cambiar un rol, editar los datos del estudio, conectar o desconectar un sistema judicial o una aplicación de IA y cambiar el plan. |
| El acceso a la cuenta | Inicios y cierres de sesión, intentos fallidos, cambios de contraseña, verificación en dos pasos y llaves de acceso. |
| Lo que hacen por vos el Asistente y las aplicaciones de IA que conectaste | Todo lo que crean, editan o eliminan a tu pedido: tareas, audiencias, pruebas, documentos y el resto. El movimiento queda a tu nombre, con la etiqueta **Asistente** o **Aplicación de IA**. |
| Las descargas de la actividad | Quién descargó la lista, cuándo y con qué filtros. |

## Qué significa cada resultado

* **Exitoso**: la acción se hizo.
* **Denegado**: Veredicta la rechazó porque el rol de esa persona no la permite. Por ejemplo, un **Miembro** que intenta quitar a otro miembro.
* **Fallido**: la acción no se completó. Por ejemplo, un intento de inicio de sesión con una contraseña incorrecta.

## Qué pasa después

* Cada descarga queda como un movimiento más: «Descargó la actividad», con quién la hizo y cuándo.
* La lista se actualiza sola cada vez que abrís la pantalla. Un cambio aparece unos instantes después de hacerse.

## Verificá que quedó bien

* Hacé un cambio de prueba, por ejemplo editá una tarea, y volvé a **Actividad**: la primera fila es ese cambio, con tu nombre.

## Qué tener en cuenta

* **Consultar no deja un movimiento.** Abrir una pantalla, buscar o leer un expediente no se registra. Solo los cambios.
* **Veredicta no copia el texto de tus notas, comentarios ni documentos.** El movimiento dice que cambiaron, no lo que dicen. Lo mismo pasa con el DNI, el CUIT, el teléfono, el correo y la dirección de una persona.
* **Los movimientos no se editan ni se borran.** Quedan tal como se registraron, y siguen en la lista aunque la persona ya no esté en tu estudio.
* **Los nombres se guardan como eran.** Si eliminás un expediente o le cambiás la carátula, el movimiento conserva el nombre que tenía en ese momento.
* **Las conversaciones con el Asistente son privadas** y no aparecen en la actividad.
* **Lo que trae la sincronización no es de un miembro.** Las actuaciones que Veredicta trae de los sistemas judiciales no figuran en la actividad: se ven en cada expediente.
* **La actividad se elimina con el estudio.** Si eliminás tu estudio, su actividad se elimina con el resto de la información.

## Guía en una imagen

Todos los pasos en una sola imagen, para tenerla a mano o compartirla con tu equipo.

<GuideImage tall src="/media/configuraciones-actividad/guia.webp" preview="/media/configuraciones-actividad/guia-preview.webp" width={1760} height={2204} title="Cómo ver la actividad de tu estudio" alt="Guía en cuatro pasos. 1. Abrí Actividad: en «Configuraciones», hacé clic en «Actividad». 2. Buscá o filtrá: escribí en el buscador, por ejemplo «eliminó», o acotá con los filtros. 3. Abrí un movimiento: hacé clic en una fila y ves quién lo hizo, sobre qué y qué cambió. 4. Descargá la lista: con «Descargar» te llevás los movimientos en un archivo para Excel." caption="Todos los pasos en una sola imagen. Ampliala para acercarte a cada paso o descargala." />

## Guías relacionadas

<Columns cols={2}>
  <Card title="Roles y permisos" icon="shield-check" href="/estudio/roles-y-permisos">
    Qué puede hacer un dueño, un administrador y un miembro.
  </Card>

  <Card title="Invitar a tu equipo" icon="user-plus" href="/estudio/invitar-a-tu-equipo">
    Sumá miembros a tu estudio y elegí su rol.
  </Card>

  <Card title="Seguridad de la cuenta" icon="lock" href="/cuenta/seguridad">
    Contraseña, verificación en dos pasos y llaves de acceso.
  </Card>
</Columns>

## ¿Necesitás ayuda?

El equipo de Veredicta te responde por WhatsApp o por correo.

<Columns cols={2}>
  <Card title="WhatsApp" icon="https://mintcdn.com/zest-labs/6i6sx-v6hNAjw3Vp/images/icons/whatsapp.svg?fit=max&auto=format&n=6i6sx-v6hNAjw3Vp&q=85&s=d2cbae11d2915e173949e4c75d2bb625" href="https://wa.me/5491126115660" width="24" height="24" data-path="images/icons/whatsapp.svg">
    +54 9 11 2611-5660
  </Card>

  <Card title="Correo" icon="mail" href="mailto:ayuda@veredicta.com.ar">
    [ayuda@veredicta.com.ar](mailto:ayuda@veredicta.com.ar)
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.