🔧 Add import contact to brevo script
This commit is contained in:
47
packages/scripts/importContactToBrevo.ts
Normal file
47
packages/scripts/importContactToBrevo.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import { PrismaClient } from '@typebot.io/prisma'
|
||||||
|
import { promptAndSetEnvironment } from './utils'
|
||||||
|
import got, { HTTPError } from 'got'
|
||||||
|
import { readFileSync } from 'fs'
|
||||||
|
|
||||||
|
const importContactToBrevo = async () => {
|
||||||
|
await promptAndSetEnvironment()
|
||||||
|
const prisma = new PrismaClient({
|
||||||
|
log: [{ emit: 'event', level: 'query' }, 'info', 'warn', 'error'],
|
||||||
|
})
|
||||||
|
|
||||||
|
prisma.$on('query', (e) => {
|
||||||
|
console.log(e.query)
|
||||||
|
console.log(e.params)
|
||||||
|
console.log(e.duration, 'ms')
|
||||||
|
})
|
||||||
|
const users = JSON.parse(readFileSync('users.json').toString()) as {
|
||||||
|
email: string
|
||||||
|
name: string
|
||||||
|
}[]
|
||||||
|
console.log('Inserting users', users.length)
|
||||||
|
try {
|
||||||
|
await got.post('https://api.brevo.com/v3/contacts/import', {
|
||||||
|
headers: {
|
||||||
|
'api-key': process.env.BREVO_API_KEY,
|
||||||
|
},
|
||||||
|
json: {
|
||||||
|
listIds: [16],
|
||||||
|
updateExistingContacts: true,
|
||||||
|
jsonBody: users.map((user) => ({
|
||||||
|
email: user.email,
|
||||||
|
attributes: {
|
||||||
|
FIRSTNAME: user.name ? user.name.split(' ')[0] : undefined,
|
||||||
|
},
|
||||||
|
})),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} catch (err) {
|
||||||
|
if (err instanceof HTTPError) {
|
||||||
|
console.log(err.response.body)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
importContactToBrevo()
|
||||||
Reference in New Issue
Block a user