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

# Ad-hoc-Datenabfragen in 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="Ad-hoc-Datenabfragen in Slack" description="Gib /dana in einem beliebigen Slack-Channel ein, um deine Datenbank in einfachem Englisch abzufragen." prompt="/dana Wie hoch war unser wöchentliches Wachstum bei den Anmeldungen, aufgeschlüsselt nach Akquisekanal?" category="Daten & Analysen" features="Integrationen, MCP" agent="dana" />

<div className="uc-detail-wrapper">
  <Tip>Du möchtest das nicht manuell einrichten? Füge einen Link zu dieser Seite in eine Devin-Sitzung ein und bitte Devin, alles für dich einzurichten.</Tip>

  <Steps>
    <Step title="Eine Datenbank im MCP Marketplace verbinden">
      Dana benötigt Zugriff auf mindestens eine Datenbank, um Fragen zu beantworten. Wechsle zu **Settings > [MCP Marketplace](/de/work-with-devin/mcp)** und aktiviere einen Datenbank-MCP:

      | Data source     | MCP name   | What you'll need                            |
      | --------------- | ---------- | ------------------------------------------- |
      | Amazon Redshift | Redshift   | Host, port, database, username, password    |
      | Google BigQuery | BigQuery   | OAuth (one-click) oder Service-Account-JSON |
      | PostgreSQL      | PostgreSQL | Connection string                           |
      | MySQL           | MySQL      | Connection string                           |
      | Snowflake       | Snowflake  | Account, username, password                 |

      Klicke auf **Enable** auf der MCP-Karte, gib deine Zugangsdaten ein und klicke dann auf **Test listing tools**, um zu bestätigen, dass die Verbindung funktioniert. Du kannst mehrere Datenbanken verbinden – Dana fragt jeweils die Datenbank ab, die für deine Frage relevant ist.
    </Step>

    <Step title="Stelle deine erste Frage mit /dana">
      [Dana](/de/work-with-devin/data-analyst) ist Devins Data-Analyst-Modus – ein spezialisierter Agent mit Tools und Prompts, die für Datenbankabfragen, das Erstellen von Diagrammen und das Beantworten von Business-Fragen in einfachem Englisch optimiert sind.

      Öffne einen beliebigen Slack-Channel, in dem [Devin installiert ist](/de/integrations/slack), und tippe `/dana` gefolgt von einer Frage in einfachem Englisch. Wenn der `/dana`-Slash-Befehl in deinem Workspace nicht verfügbar ist, kannst du auch `@Devin !dana ...` verwenden – beides funktioniert auf die gleiche Weise. Dana erstellt eine Sitzung, schreibt das SQL, führt es aus und antwortet im Thread.

      <PromptBlock agent="dana">
        ```txt Ask Dana a question theme={null}
        /dana What were our top 10 customers by revenue last quarter?
        ```
      </PromptBlock>

      Du kannst Dana auch aufrufen, indem du Devin mit dem `!dana`-Makro erwähnst:

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

      Dana antwortet direkt im Slack-Thread mit formatierten Tabellen, Kennzahlen und – wenn hilfreich – einer kurzen Interpretation der Ergebnisse. Kein Kontextwechsel zu einem BI-Tool erforderlich.

      Dana ist nicht auf schnelle Nachschlageabfragen beschränkt – es eignet sich auch hervorragend für umfassende Berichte und tiefgehende Analysen. Bitte Dana, Trends zu untersuchen, Daten zu segmentieren und Erkenntnisse über mehrere Abfragen hinweg zu synthetisieren:

      <PromptBlock agent="dana">
        ```txt Deep analysis 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="Bringe Dana dein Schema und deine Konventionen bei">
      Dana funktioniert direkt ohne Konfiguration, wird aber deutlich besser, wenn es dein Schema und deine geschäftlichen Definitionen kennt. Anstatt Knowledge-Einträge manuell hinzuzufügen, gib Dana einfach direkt Feedback – in Slack oder in der Web-App – und bitte es, sich Dinge für das nächste Mal zu merken:

      * *„Merke dir, dass ‚active user‘ mindestens ein Event in `analytics.events` in den letzten 30 Tagen bedeutet.“*
      * *„All unsere Timestamps werden in UTC gespeichert. Wandle sie für die Anzeige immer in America/New\_York um.“*
      * *„`billing.subscriptions.mrr` ist in Cents, nicht in Dollar. Teile durch 100, wenn du Umsatz anzeigst.“*
      * *„Aktualisiere dein Knowledge: Die Werte der `plan`-Spalte sind free, pro und enterprise – nicht basic/premium.“*

      Dana kann sein eigenes Knowledge auflisten und aktualisieren, sodass sich Korrekturen im Laufe der Zeit kumulieren. Je mehr Feedback du gibst – Spaltenbedeutungen, Enum-Werte, Zeitzonenregeln, geschäftliche Definitionen – desto weniger Rückfragen muss Dana bei zukünftigen Abfragen stellen.
    </Step>

    <Step title="Stelle Rückfragen im selben Thread">
      Dana behält den Kontext innerhalb eines Slack-Threads, sodass Rückfragen auf frühere Ergebnisse verweisen können, ohne dass du dich wiederholen musst.

      <PromptBlock agent="dana">
        ```txt Follow up on results theme={null}
        Break that down by plan tier and show the month-over-month trend.
        ```
      </PromptBlock>

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

      Für Fragen, die du regelmäßig stellst, kannst du ein [Playbook](/de/product-guides/creating-playbooks) mit den genauen Abfragen und dem gewünschten Format erstellen und es dann mit einem benutzerdefinierten `!macro` aus Slack auslösen.
    </Step>
  </Steps>
</div>
