🧐 Update add users to brevo list script
This commit is contained in:
70
packages/scripts/insertUsersInBrevoList.ts
Normal file
70
packages/scripts/insertUsersInBrevoList.ts
Normal file
@ -0,0 +1,70 @@
|
||||
import { PrismaClient } from '@typebot.io/prisma'
|
||||
import { promptAndSetEnvironment } from './utils'
|
||||
import got, { HTTPError } from 'got'
|
||||
import { confirm, text, isCancel } from '@clack/prompts'
|
||||
import { writeFileSync } from 'fs'
|
||||
|
||||
const insertUsersInBrevoList = async () => {
|
||||
await promptAndSetEnvironment('production')
|
||||
|
||||
const listId = await text({
|
||||
message: 'List ID?',
|
||||
})
|
||||
if (!listId || isCancel(listId) || isNaN(listId as unknown as number))
|
||||
process.exit()
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
|
||||
const threeMonthsAgo = new Date()
|
||||
threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3)
|
||||
|
||||
const oneMonthAgo = new Date()
|
||||
oneMonthAgo.setMonth(oneMonthAgo.getMonth() - 1)
|
||||
|
||||
const users = await prisma.user.findMany({
|
||||
where: {
|
||||
lastActivityAt: {
|
||||
gte: threeMonthsAgo,
|
||||
},
|
||||
createdAt: {
|
||||
lt: oneMonthAgo,
|
||||
},
|
||||
},
|
||||
select: {
|
||||
email: true,
|
||||
},
|
||||
})
|
||||
|
||||
console.log('Inserting users', users.length)
|
||||
|
||||
writeFileSync('logs/users.json', JSON.stringify(users, null, 2))
|
||||
|
||||
const proceed = await confirm({ message: 'Proceed?' })
|
||||
if (!proceed || typeof proceed !== 'boolean') {
|
||||
console.log('Aborting')
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
await got.post('https://api.brevo.com/v3/contacts/import', {
|
||||
headers: {
|
||||
'api-key': process.env.BREVO_API_KEY,
|
||||
},
|
||||
json: {
|
||||
listIds: [Number(listId)],
|
||||
updateExistingContacts: true,
|
||||
jsonBody: users.map((email) => ({
|
||||
email,
|
||||
})),
|
||||
},
|
||||
})
|
||||
} catch (err) {
|
||||
if (err instanceof HTTPError) {
|
||||
console.log(err.response.body)
|
||||
return
|
||||
}
|
||||
console.log(err)
|
||||
}
|
||||
}
|
||||
|
||||
insertUsersInBrevoList()
|
Reference in New Issue
Block a user