> ## 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.

# Requêtes de données ad hoc dans Slack

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="Requêtes de données ponctuelles dans Slack" description="Tapez /dana dans n'importe quel canal Slack pour interroger votre base de données en anglais simple." prompt="/dana Quelle a été notre croissance des inscriptions d'une semaine sur l'autre, ventilée par canal d'acquisition ?" category="Données & analyses" features="Intégrations, MCP" agent="dana" />

<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 une base de données dans le MCP Marketplace">
      Dana a besoin d'accéder à au moins une base de données pour répondre aux questions. Allez dans **Settings > [MCP Marketplace](/fr/work-with-devin/mcp)** et activez un MCP de base de données :

      | Source de données | Nom du MCP | Ce dont vous aurez besoin                                    |
      | ----------------- | ---------- | ------------------------------------------------------------ |
      | Amazon Redshift   | Redshift   | Hôte, port, base de données, nom d'utilisateur, mot de passe |
      | Google BigQuery   | BigQuery   | OAuth (en un clic) ou compte de service au format JSON       |
      | PostgreSQL        | PostgreSQL | Chaîne de connexion                                          |
      | MySQL             | MySQL      | Chaîne de connexion                                          |
      | Snowflake         | Snowflake  | Compte, nom d'utilisateur, mot de passe                      |

      Cliquez sur **Enable** sur la carte MCP, renseignez vos identifiants, puis cliquez sur **Test listing tools** pour confirmer que la connexion fonctionne. Vous pouvez connecter plusieurs bases de données — Dana interrogera celle qui est pertinente pour votre question.
    </Step>

    <Step title="Poser votre première question avec /dana">
      [Dana](/fr/work-with-devin/data-analyst) est le mode analyste de données de Devin — un agent spécialisé avec des outils et des prompts optimisés pour interroger des bases de données, créer des graphiques et répondre à des questions métier en anglais clair.

      Ouvrez n'importe quel canal Slack où [Devin est installé](/fr/integrations/slack) et tapez `/dana` suivi d'une question en anglais clair. Si la commande slash `/dana` n'est pas disponible dans votre espace de travail, vous pouvez aussi utiliser `@Devin !dana ...` — les deux fonctionnent de la même manière. Dana crée une session, rédige le SQL, l'exécute et répond dans le fil.

      <PromptBlock agent="dana">
        ```txt Poser une question à Dana theme={null}
        /dana Who were our top 10 customers by revenue last quarter?
        ```
      </PromptBlock>

      Vous pouvez également invoquer Dana en mentionnant Devin avec la macro `!dana` :

      <PromptBlock agent="dana">
        ```txt Utiliser la macro !dana theme={null}
        @Devin !dana How many active users do we have per plan tier this month?
        ```
      </PromptBlock>

      Dana répond directement dans le fil Slack avec des tableaux formatés, des décomptes et — lorsque c'est utile — une courte interprétation des résultats. Aucun besoin de basculer vers un outil de BI.

      Dana ne se limite pas aux recherches rapides — elle est également très efficace pour des rapports complets et des analyses approfondies. Demandez-lui d'étudier des tendances, de segmenter les données et de synthétiser les résultats à partir de plusieurs requêtes :

      <PromptBlock agent="dana">
        ```txt Analyse approfondie theme={null}
        /dana Conduct a deep investigation on our user growth over the past
        month. Which user segments and use cases can the growth be attributed
        to? Is it more growth in existing accounts (expansion) or top of
        funnel (new signups)? Break it down by acquisition channel and plan
        tier, and highlight any notable changes compared to the prior month.
        ```
      </PromptBlock>
    </Step>

    <Step title="Apprendre à Dana votre schéma et vos conventions">
      Dana fonctionne immédiatement, mais elle devient nettement meilleure lorsqu'elle connaît votre schéma et vos définitions métier. Au lieu d'ajouter manuellement des entrées dans Knowledge, donnez simplement du feedback directement à Dana — dans Slack ou l'application web — et demandez-lui de se souvenir des informations pour la prochaine fois :

      * *« Souviens-toi que “active user” signifie au moins un événement dans `analytics.events` au cours des 30 derniers jours. »*
      * *« Tous nos horodatages sont stockés en UTC. Convertis-les toujours en America/New\_York pour l'affichage. »*
      * *« `billing.subscriptions.mrr` est en cents, pas en dollars. Divise par 100 lors de l'affichage du revenu. »*
      * *« Mets à jour ta Knowledge : les valeurs de la colonne `plan` sont free, pro et enterprise — pas basic/premium. »*

      Dana peut lister et mettre à jour sa propre Knowledge, donc les corrections s'accumulent avec le temps. Plus vous donnez de feedback — significations de colonnes, valeurs d'énumération (enum), règles de fuseau horaire, définitions métier — moins Dana aura besoin de poser de questions de suivi lors de futures requêtes.
    </Step>

    <Step title="Poser des questions de suivi dans le même fil">
      Dana conserve le contexte au sein d'un fil Slack, de sorte que les questions de suivi peuvent faire référence aux résultats précédents sans que vous ayez à vous répéter.

      <PromptBlock agent="dana">
        ```txt Faire un suivi des résultats theme={null}
        Break that down by plan tier and show the month-over-month trend.
        ```
      </PromptBlock>

      <PromptBlock agent="dana">
        ```txt Demander une visualisation theme={null}
        Can you chart daily signups for the past 90 days with a 7-day moving average?
        ```
      </PromptBlock>

      Pour les questions que vous posez régulièrement, envisagez de créer un [playbook](/fr/product-guides/creating-playbooks) avec les requêtes exactes et le formatage souhaités, puis de le déclencher avec un `!macro` personnalisé depuis Slack.
    </Step>
  </Steps>
</div>
