diff --git a/functions/src/email-templates/creating-market.html b/functions/src/email-templates/creating-market.html index 674a30ed..a61e8d65 100644 --- a/functions/src/email-templates/creating-market.html +++ b/functions/src/email-templates/creating-market.html @@ -103,94 +103,28 @@ -
- -
+
- - - - - - -
- -
- - - - - - -
- - - - - - -
- -
-
-
- -
-
- -
- - - - + + + + + + + +
+
+ + banner logo + +
- -
+
- - - - - - - + + + + + + + +
-
-

- Hi {{name}},

-
-
+
+
+

+ Hi {{name}},

+
+
-
-

- Congrats on creating your first market on Manifold! -

+ ">Did you know you create your own prediction market on Manifold for + any question you care about? +

-

- + The following is a short guide to creating markets. -

-

-   -

-

- Whether it's current events like Musk buying + Twitter or 2024 + elections or personal matters + like book + recommendations or losing + weight, + Manifold can help you find the answer. +

+

+ The following is a + short guide to creating markets. +

+ + + + + +
+ + Create a market + +
+ +

+   +

+

+ What makes a good market? -

-
    -
  • - Interesting - topic. Manifold gives - creators M$10 for - each unique trader that bets on your - market, so it pays to ask a question people are interested in! -
  • +

    +
      +
    • + Interesting + topic. Manifold gives + creators M$10 for + each unique trader that bets on your + market, so it pays to ask a question people are interested in! +
    • -
    • - + Clear resolution criteria. Any ambiguities or edge cases in your description - will drive traders away from your markets. -
    • + will drive traders away from your markets. + -
    • - + Detailed description. Include images/videos/tweets and any context or - background - information that could be useful to people who - are interested in learning more that are - uneducated on the subject. -
    • -
    • - + Add it to a group. Groups are the - primary way users filter for relevant markets. - Also, consider making your own groups and - inviting friends/interested communities to - them from other sites! -
    • -
    • - Part of a group. Groups are the + primary way users filter for relevant markets. + Also, consider making your own groups and + inviting friends/interested communities to + them from other sites! +
    • +
    • + Share it on social media. You'll earn the Sharing it on social media. You'll earn the M$500 - referral bonus if you get new users to sign up! -
    • -
    -

    -   -

    -

    - Examples of markets you should - emulate!  -

    - -

    -   -

    -

    - +   +

    + +

    + Why not - - - - create another marketcreate a market - while it is still fresh on your mind? -

    -

    - +   +

    +

    + Thanks for reading! -

    -

    - David from Manifold -

    -
+

+ +
+
+ +
+
+ +
+ +
+ + + +
+ +
+ + + + diff --git a/functions/src/emails.ts b/functions/src/emails.ts index 6768e8ea..f90366fa 100644 --- a/functions/src/emails.ts +++ b/functions/src/emails.ts @@ -1,4 +1,3 @@ - import { DOMAIN } from '../../common/envs/constants' import { Answer } from '../../common/answer' import { Bet } from '../../common/bet' @@ -192,7 +191,6 @@ Cofounder of Manifold Markets https://manifold.markets ` - await sendTextEmail( privateUser.email, 'How are you finding Manifold?', @@ -238,7 +236,8 @@ export const sendOneWeekBonusEmail = async ( export const sendCreatorGuideEmail = async ( user: User, - privateUser: PrivateUser + privateUser: PrivateUser, + sendTime: string ) => { if ( !privateUser || @@ -255,7 +254,7 @@ export const sendCreatorGuideEmail = async ( return await sendTemplateEmail( privateUser.email, - 'Market creation guide', + 'Create your own prediction market', 'creating-market', { name: firstName, @@ -263,6 +262,7 @@ export const sendCreatorGuideEmail = async ( }, { from: 'David from Manifold ', + 'o:deliverytime': sendTime, } ) } diff --git a/functions/src/on-create-contract.ts b/functions/src/on-create-contract.ts index 73076b7f..3785ecc9 100644 --- a/functions/src/on-create-contract.ts +++ b/functions/src/on-create-contract.ts @@ -1,13 +1,10 @@ import * as functions from 'firebase-functions' -import * as admin from 'firebase-admin' -import { getPrivateUser, getUser } from './utils' +import { getUser } from './utils' import { createNotification } from './create-notification' import { Contract } from '../../common/contract' import { parseMentions, richTextToString } from '../../common/util/parse' import { JSONContent } from '@tiptap/core' -import { User } from 'common/user' -import { sendCreatorGuideEmail } from './emails' export const onCreateContract = functions .runWith({ secrets: ['MAILGUN_KEY'] }) @@ -31,23 +28,4 @@ export const onCreateContract = functions richTextToString(desc), { contract, recipients: mentioned } ) - - await sendGuideEmail(contractCreator) }) - -const firestore = admin.firestore() - -const sendGuideEmail = async (contractCreator: User) => { - const query = await firestore - .collection(`contracts`) - .where('creatorId', '==', contractCreator.id) - .limit(2) - .get() - - if (query.size >= 2) return - - const privateUser = await getPrivateUser(contractCreator.id) - if (!privateUser) return - - await sendCreatorGuideEmail(contractCreator, privateUser) -} diff --git a/functions/src/on-create-user.ts b/functions/src/on-create-user.ts index dfb6edaa..844f75fc 100644 --- a/functions/src/on-create-user.ts +++ b/functions/src/on-create-user.ts @@ -6,6 +6,7 @@ dayjs.extend(utc) import { getPrivateUser } from './utils' import { User } from 'common/user' import { + sendCreatorGuideEmail, sendInterestingMarketsEmail, sendPersonalFollowupEmail, sendWelcomeEmail, @@ -22,6 +23,9 @@ export const onCreateUser = functions await sendWelcomeEmail(user, privateUser) + const guideSendTime = dayjs().add(28, 'hours').toString() + await sendCreatorGuideEmail(user, privateUser, guideSendTime) + const followupSendTime = dayjs().add(48, 'hours').toString() await sendPersonalFollowupEmail(user, privateUser, followupSendTime)
+ + + + + + +
+ +