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

# Monitore a concorrência

> Crie uma Routine semanal que retorna pesquisas locais úteis e atualizações do plano de lançamento para a Conversation da sua cafeteria.

export const RoutineWatchCover = () => <div className="chat-mkt" role="img" aria-label="A frosted recurring market watch with a schedule and research updates" style={{
  margin: "28px 0 42px",
  borderTop: 0,
  paddingTop: 0
}}>
    <div className="chat-use-case-visual" style={{
  aspectRatio: "auto",
  minHeight: "clamp(220px, 34vw, 320px)",
  overflow: "hidden",
  background: "radial-gradient(circle at 50% -18%, rgba(255,255,255,.82), transparent 42%), radial-gradient(circle at 4% 96%, rgba(255,184,146,.48), transparent 38%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)"
}}>
      <div aria-hidden="true" style={{
  position: "absolute",
  inset: 0,
  background: "linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 48%, rgba(111,24,0,.2))"
}} />
      <div aria-hidden="true" style={{
  position: "relative",
  zIndex: 1,
  display: "grid",
  gridTemplateColumns: "minmax(0, .9fr) minmax(0, 1.25fr)",
  gap: "clamp(12px, 2.5vw, 24px)",
  width: "min(720px, 84%)",
  minHeight: "inherit",
  alignItems: "center",
  margin: "auto"
}}>
        <div style={{
  display: "grid",
  placeItems: "center",
  aspectRatio: "1",
  border: "1px solid rgba(255,255,255,.6)",
  borderRadius: 24,
  background: "linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.12))",
  boxShadow: "0 18px 36px rgba(55,27,18,.2)",
  backdropFilter: "blur(6px)"
}}>
          <div style={{
  position: "relative",
  width: "44%",
  aspectRatio: "1",
  border: "2px solid rgba(255,255,255,.86)",
  borderRadius: 999
}}>
            <span style={{
  position: "absolute",
  width: "2px",
  height: "34%",
  left: "50%",
  top: "18%",
  transformOrigin: "bottom",
  transform: "translateX(-50%) rotate(22deg)",
  borderRadius: 99,
  background: "rgba(255,255,255,.9)"
}} />
            <span style={{
  position: "absolute",
  width: "2px",
  height: "26%",
  left: "50%",
  top: "25%",
  transformOrigin: "bottom",
  transform: "translateX(-50%) rotate(-72deg)",
  borderRadius: 99,
  background: "rgba(255,255,255,.9)"
}} />
          </div>
        </div>
        <div style={{
  display: "grid",
  gap: "clamp(9px, 1.6vw, 14px)"
}}>
          {["82%", "64%", "74%"].map((width, index) => <div key={width} style={{
  display: "grid",
  gridTemplateColumns: "18px minmax(0, 1fr)",
  alignItems: "center",
  gap: 10,
  padding: "clamp(10px, 1.6vw, 14px)",
  border: "1px solid rgba(255,255,255,.48)",
  borderRadius: 15,
  background: index === 0 ? "rgba(255,255,255,.3)" : "rgba(255,255,255,.13)",
  backdropFilter: "blur(5px)"
}}>
              <span style={{
  width: 18,
  height: 18,
  borderRadius: 6,
  background: index === 0 ? "rgba(255,255,255,.9)" : "rgba(255,255,255,.42)"
}} />
              <span style={{
  width,
  height: 7,
  borderRadius: 99,
  background: "rgba(255,255,255,.74)"
}} />
            </div>)}
        </div>
      </div>
    </div>
  </div>;

export const CoffeeShopScreenshotFrame = ({src, alt}) => <div style={{
  margin: "28px 0",
  overflow: "hidden",
  borderRadius: "24px",
  background: "radial-gradient(circle at 50% -18%, rgba(255,255,255,.82), transparent 42%), radial-gradient(circle at 4% 96%, rgba(255,184,146,.48), transparent 38%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)",
  boxShadow: "0 16px 32px rgba(112,36,13,.18)"
}}>
    <div style={{
  padding: "clamp(10px, 2vw, 18px)",
  background: "linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 48%, rgba(111,24,0,.2))"
}}>
      <a href={src} target="_blank" rel="noreferrer" aria-label={`Open ${alt} at full size`} style={{
  display: "block",
  overflow: "hidden",
  border: "1px solid rgba(255,255,255,.62)",
  borderRadius: "16px",
  background: "rgba(255,255,255,.96)",
  boxShadow: "0 12px 28px rgba(55,27,18,.2)",
  cursor: "zoom-in"
}}>
        <img src={src} alt={alt} style={{
  display: "block",
  width: "100%",
  height: "auto"
}} />
      </a>
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

<RoutineWatchCover />

Você tem um plano de lançamento e um modelo de bairro escolhido. Mas eventos
locais, cafeterias próximas e condições de mercado podem mudar antes da
abertura.

Routines são tarefas recorrentes que rodam em um cronograma e retornam seus
resultados para a mesma conversa. Crie uma para ficar de olho na concorrência
local e revisar as mudanças que poderiam afetar seu plano.

## Crie uma Routine de mercado local

<Steps>
  <Step title="Escreva o pedido recorrente">
    Peça ao Replit para monitorar as informações que importam para o
    lançamento do café.

    <AiPrompt>
      Toda segunda-feira, revise eventos locais, cafeterias próximas e
      mudanças que possam afetar o lançamento do meu café de bairro. Resuma o
      que mudou, explique por que isso importa e recomende quaisquer
      atualizações ao meu plano de lançamento nesta Conversation.
    </AiPrompt>
  </Step>

  <Step title="Esclareça o cronograma e o foco">
    Responda às perguntas de acompanhamento do Replit sobre quando a Routine
    deve rodar e o que ela deve monitorar. Por exemplo, escolha a manhã de
    segunda-feira e peça para ela observar o bairro escolhido, cafés
    comparáveis e eventos locais.
  </Step>

  <Step title="Revise e aceite a Routine">
    Revise as instruções e o cronograma propostos e, em seguida, aceite a
    Routine. O Replit usa o fuso horário do seu dispositivo quando você a
    confirma. Você também pode ajustar o orçamento por execução antes de
    aceitar.

    <CoffeeShopScreenshotFrame src="/images/coffee-shop-launch/review-routine.png" alt="Tela de aprovação de routine do Replit mostrando um título, instruções, cronograma de segunda-feira, orçamento por execução e o botão Create routine" />
  </Step>

  <Step title="Revise o resultado e refine o plano">
    Depois de criar a Routine, o Replit confirma o título, o cronograma, o
    orçamento e o que ela vai monitorar. Cada resultado posterior retorna a
    esta Conversation.

    <CoffeeShopScreenshotFrame src="/images/coffee-shop-launch/routine-created.png" alt="Uma routine criada chamada Lausanne café launch watch, mostrando seu cronograma de segunda-feira, orçamento por execução e as mudanças locais que ela monitora" />

    Use cada atualização para decidir se a localização, o cardápio, as
    premissas de orçamento ou o plano de abertura precisam mudar. Atualize ou
    exclua a Routine sempre que suas prioridades mudarem.
  </Step>
</Steps>

Saiba mais sobre [Routines](/pt/chat/routines), incluindo o fluxo completo de
configuração e gerenciamento.

Em seguida, saiba mais sobre [conversas e projetos](/pt/home/conversations-and-projects).
