feat: Rebranding von LeadFlow zu OnyvaLeads
Alle UI-Labels, Dateinamen, API-Bezeichner und package.json auf OnyvaLeads umgestellt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -31,7 +31,7 @@ export async function GET(
|
|||||||
return new NextResponse(new Uint8Array(arr), {
|
return new NextResponse(new Uint8Array(arr), {
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
"Content-Type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
"Content-Disposition": `attachment; filename="leadflow-${job.type}-${jobId.slice(0, 8)}.xlsx"`,
|
"Content-Disposition": `attachment; filename="onyva-leads-${job.type}-${jobId.slice(0, 8)}.xlsx"`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ async function runVayneScrape(
|
|||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
// 1. Create Vayne order
|
// 1. Create Vayne order
|
||||||
const order = await createOrder(salesNavUrl, maxResults, apiToken, `LeadFlow-${jobId.slice(0, 8)}`);
|
const order = await createOrder(salesNavUrl, maxResults, apiToken, `OnyvaLeads-${jobId.slice(0, 8)}`);
|
||||||
const orderId = order.id;
|
const orderId = order.id;
|
||||||
|
|
||||||
await prisma.job.update({
|
await prisma.job.update({
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ export async function GET(req: NextRequest) {
|
|||||||
"Erfasst am": new Date(l.capturedAt).toLocaleDateString("de-DE", { day: "2-digit", month: "2-digit", year: "numeric" }),
|
"Erfasst am": new Date(l.capturedAt).toLocaleDateString("de-DE", { day: "2-digit", month: "2-digit", year: "numeric" }),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const filename = `leadflow-vault-${new Date().toISOString().split("T")[0]}`;
|
const filename = `onyva-leads-vault-${new Date().toISOString().split("T")[0]}`;
|
||||||
|
|
||||||
if (format === "xlsx") {
|
if (format === "xlsx") {
|
||||||
const ws = XLSX.utils.json_to_sheet(rows);
|
const ws = XLSX.utils.json_to_sheet(rows);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { Toaster } from "@/components/ui/sonner";
|
|||||||
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
|
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "LeadFlow — Lead Generation Platform",
|
title: "OnyvaLeads — Lead Generation Platform",
|
||||||
description: "Unified lead generation and email enrichment platform",
|
description: "Unified lead generation and email enrichment platform",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -277,8 +277,8 @@ export default function LeadVaultPage() {
|
|||||||
const [serpOpen, setSerpOpen] = useState(false);
|
const [serpOpen, setSerpOpen] = useState(false);
|
||||||
const [serpQuery, setSerpQuery] = useState("");
|
const [serpQuery, setSerpQuery] = useState("");
|
||||||
const [serpCount, setSerpCount] = useState("25");
|
const [serpCount, setSerpCount] = useState("25");
|
||||||
const [serpCountry, setSerpCountry] = useState("de");
|
const serpCountry = "de";
|
||||||
const [serpLanguage, setSerpLanguage] = useState("de");
|
const serpLanguage = "de";
|
||||||
const [serpFilter, setSerpFilter] = useState(true);
|
const [serpFilter, setSerpFilter] = useState(true);
|
||||||
const [serpRunning, setSerpRunning] = useState(false);
|
const [serpRunning, setSerpRunning] = useState(false);
|
||||||
|
|
||||||
@@ -551,28 +551,6 @@ export default function LeadVaultPage() {
|
|||||||
))}
|
))}
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
<div className="flex gap-2">
|
|
||||||
<Select value={serpCountry} onValueChange={v => setSerpCountry(v ?? "de")}>
|
|
||||||
<SelectTrigger className="bg-[#0d0d18] border-[#2e2e3e] text-white flex-1">
|
|
||||||
<SelectValue />
|
|
||||||
</SelectTrigger>
|
|
||||||
<SelectContent className="bg-[#111118] border-[#2e2e3e]">
|
|
||||||
{[["de","DE"],["at","AT"],["ch","CH"],["us","US"]].map(([v,l]) => (
|
|
||||||
<SelectItem key={v} value={v} className="text-gray-300">{l}</SelectItem>
|
|
||||||
))}
|
|
||||||
</SelectContent>
|
|
||||||
</Select>
|
|
||||||
<Select value={serpLanguage} onValueChange={v => setSerpLanguage(v ?? "de")}>
|
|
||||||
<SelectTrigger className="bg-[#0d0d18] border-[#2e2e3e] text-white flex-1">
|
|
||||||
<SelectValue />
|
|
||||||
</SelectTrigger>
|
|
||||||
<SelectContent className="bg-[#111118] border-[#2e2e3e]">
|
|
||||||
{[["de","Deutsch"],["en","English"]].map(([v,l]) => (
|
|
||||||
<SelectItem key={v} value={v} className="text-gray-300">{l}</SelectItem>
|
|
||||||
))}
|
|
||||||
</SelectContent>
|
|
||||||
</Select>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<label className="flex items-center gap-2 text-sm text-gray-400 cursor-pointer">
|
<label className="flex items-center gap-2 text-sm text-gray-400 cursor-pointer">
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export function Sidebar() {
|
|||||||
<Zap className="w-4 h-4 text-white" />
|
<Zap className="w-4 h-4 text-white" />
|
||||||
</div>
|
</div>
|
||||||
{!sidebarCollapsed && (
|
{!sidebarCollapsed && (
|
||||||
<span className="font-bold text-lg tracking-tight text-white">LeadFlow</span>
|
<span className="font-bold text-lg tracking-tight text-white">OnyvaLeads</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export function TopBar() {
|
|||||||
return (
|
return (
|
||||||
<header className="h-14 border-b border-[#1e1e2e] bg-[#111118]/80 backdrop-blur flex items-center justify-between px-6 flex-shrink-0">
|
<header className="h-14 border-b border-[#1e1e2e] bg-[#111118]/80 backdrop-blur flex items-center justify-between px-6 flex-shrink-0">
|
||||||
<div className="flex items-center gap-2 text-sm">
|
<div className="flex items-center gap-2 text-sm">
|
||||||
<span className="text-gray-500">LeadFlow</span>
|
<span className="text-gray-500">OnyvaLeads</span>
|
||||||
<span className="text-gray-600">/</span>
|
<span className="text-gray-600">/</span>
|
||||||
<span className="text-white font-medium">{label}</span>
|
<span className="text-white font-medium">{label}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ export async function submitBulkDecisionMakerSearch(
|
|||||||
data,
|
data,
|
||||||
domain_field_index: 0,
|
domain_field_index: 0,
|
||||||
decision_maker_category: category,
|
decision_maker_category: category,
|
||||||
file_name: fileName || `leadflow-${Date.now()}`,
|
file_name: fileName || `onyva-leads-${Date.now()}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: { Authorization: apiKey, "Content-Type": "application/json" },
|
headers: { Authorization: apiKey, "Content-Type": "application/json" },
|
||||||
@@ -118,7 +118,7 @@ export async function submitBulkPersonSearch(
|
|||||||
domain_field_index: 0,
|
domain_field_index: 0,
|
||||||
first_name_field_index: 1,
|
first_name_field_index: 1,
|
||||||
last_name_field_index: 2,
|
last_name_field_index: 2,
|
||||||
file_name: fileName || `leadflow-${Date.now()}`,
|
file_name: fileName || `onyva-leads-${Date.now()}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: { Authorization: apiKey, "Content-Type": "application/json" },
|
headers: { Authorization: apiKey, "Content-Type": "application/json" },
|
||||||
@@ -192,7 +192,7 @@ export async function bulkSearchDomains(
|
|||||||
domains,
|
domains,
|
||||||
primaryCategory,
|
primaryCategory,
|
||||||
apiKey,
|
apiKey,
|
||||||
`leadflow-bulk-${Date.now()}`
|
`onyva-leads-bulk-${Date.now()}`
|
||||||
);
|
);
|
||||||
|
|
||||||
// 2. Poll until complete (~1,000 rows per 5 min)
|
// 2. Poll until complete (~1,000 rows per 5 min)
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export async function createOrder(
|
|||||||
{
|
{
|
||||||
url: salesNavUrl,
|
url: salesNavUrl,
|
||||||
limit: maxResults,
|
limit: maxResults,
|
||||||
name: orderName || `LeadFlow-${Date.now()}`,
|
name: orderName || `OnyvaLeads-${Date.now()}`,
|
||||||
email_enrichment: false,
|
email_enrichment: false,
|
||||||
export_format: "simple",
|
export_format: "simple",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "leadflow",
|
"name": "onyva-leads",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user