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

# Synthèse hebdomadaire des statuts dans Notion

export const UseCaseHero = ({title, description, prompt, category, features, devinUrl, agent, intent, playbookId, type}) => {
  const encodedPrompt = encodeURIComponent(prompt || '');
  const tag = 'docs-use-case-gallery';
  const utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=hero-cta';
  const agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  const devinHref = type === 'schedule' ? 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + (prompt ? '&prompt=' + encodedPrompt : '') : type === 'review' ? 'https://app.devin.ai/review?' + utm : agent === 'ada' ? 'https://app.devin.ai/search?' + utm + '&noSubmit=true' + (prompt ? '&prompt=' + encodedPrompt : '') : devinUrl ? devinUrl.includes('?') ? devinUrl + '&' + utm + agentParams : devinUrl + '?' + utm + agentParams : prompt ? 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encodedPrompt : 'https://app.devin.ai/?' + utm + agentParams;
  const buttonLabel = type === 'schedule' ? 'Schedule in Devin ↗' : type === 'review' ? 'Set Up Devin Review ↗' : agent === 'advanced' ? 'Try in Devin ↗' : agent === 'dana' ? 'Try in Dana ↗' : agent === 'ada' ? 'Try in Ask Devin ↗' : 'Try in Devin ↗';
  const featureList = features ? features.split(',').map(f => f.trim()) : [];
  return <div className="uc-hero">
      <div className="uc-hero-inner">
        <div className="uc-hero-left">
          <h1 className="uc-hero-title">{title}</h1>
          <p className="uc-hero-desc">{description}</p>
          <div>
            <a href={devinHref} target="_blank" rel="noopener noreferrer" className="try-in-devin-btn">
              {buttonLabel}
            </a>
          </div>
        </div>
        <div className="uc-hero-meta">
          <div className="uc-meta-item">
            <span className="uc-meta-label">Author</span>
            <span className="uc-meta-value">Cognition</span>
          </div>
          <div className="uc-meta-item">
            <span className="uc-meta-label">Category</span>
            <span className="uc-meta-value">{category}</span>
          </div>
          {featureList.length > 0 && <div className="uc-meta-item">
              <span className="uc-meta-label">Features</span>
              <span className="uc-meta-value">{featureList.join(', ')}</span>
            </div>}
        </div>
      </div>
    </div>;
};

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<UseCaseHero title="Récapitulatif hebdomadaire de l’avancement dans Notion" description="Une session Devin planifiée résume les dernières pull requests (PR) et les commits, puis publie chaque semaine une mise à jour de statut formatée sur votre page Notion." prompt="Passe en revue les 7 derniers jours de pull requests (PR) fusionnées et de commits sur l’ensemble de nos dépôts. Résume ce qui a été livré, ce qui est en cours et les éventuels blocages. Mets à jour la page Engineering Status dans Notion avec une nouvelle section datée." category="Automatisations" features="Schedules, MCP" type="schedule" />

<div className="uc-detail-wrapper">
  <Tip>Vous ne voulez pas configurer cela manuellement ? Collez un lien vers cette page dans une session Devin et demandez-lui de tout configurer pour vous.</Tip>

  <Steps>
    <Step title="Connecter le MCP Notion">
      Devin a besoin d’un accès en écriture à votre espace de travail Notion pour mettre à jour les pages de statut. Accédez à **Settings > Connections > MCP servers**, trouvez **Notion**, puis cliquez sur **Enable**. Un flux d’authentification OAuth vous sera présenté. Si la connexion utilise un accès au niveau de l’organisation, utilisez un compte de service plutôt que votre compte Notion personnel, car la connexion est partagée au sein de votre organisation ; avec un accès personnel, chaque Member s’authentifie avec son propre compte.

      Une fois la connexion établie, vérifiez que tout fonctionne en démarrant une session Devin rapide :

      <PromptBlock>
        ```txt Test Notion connection theme={null}
        Find the Notion page titled "Engineering Status" and list its contents.
        ```
      </PromptBlock>

      Si Devin trouve votre page de statut, vous êtes prêt. Sinon, vérifiez que l’intégration Notion a accès aux bonnes pages : dans Notion, ouvrez la page, cliquez sur **...** > **Connections**, et ajoutez l’intégration.
    </Step>

    <Step title="Rédiger le prompt de mise à jour du statut">
      Votre prompt indique à Devin quels dépôts vérifier, ce qu’il doit résumer et où écrire le résultat. Soyez précis quant à la page Notion et au format souhaité.

      <PromptBlock type="schedule">
        ```txt Weekly status update theme={null}
        Review the last 7 days of merged PRs and commits across our repositories
        (acme/web-app, acme/api-server, acme/infra).

        Summarize the high-level project areas that saw activity and list the
        contributors for each. Update the Notion page "Engineering Status" by
        adding a new dated section at the top.
        ```
      </PromptBlock>
    </Step>

    <Step title="Planifier une exécution hebdomadaire">
      Allez dans [**Settings > Schedules**](/fr/product-guides/scheduled-sessions) et cliquez sur **Create schedule**.

      * **Name** : `Weekly Engineering Status Update`
      * **Schedule type** : Recurring
      * **Frequency** : Weekly — Monday at 8:00 AM (before standup)
      * **Prompt** : Collez le prompt de l’étape précédente
      * **Email notifications** : Réglez sur **On failure only** pour être averti en cas de problème
      * **Slack channel** (facultatif) : Sélectionnez un canal pour envoyer les notifications de session — utile pour alerter votre équipe lorsque la page de statut est mise à jour

      Cliquez sur **Save**. Devin exécutera désormais cette session automatiquement chaque lundi matin. Chaque exécution apparaît sous **Past Sessions** sur la page de détail de la planification, afin que vous puissiez revoir ce que Devin a publié.

      Avant de vous reposer sur cette planification, exécutez-la une fois manuellement comme une session normale pour vérifier que le rendu dans Notion est correct. Ajustez le prompt en fonction des résultats — par exemple, si Devin inclut trop de détails par PR, ajoutez « keep descriptions under 15 words. »
    </Step>
  </Steps>
</div>
